Latest post of the previous page:
А если подменить шеллset comspec=c:\cygwin\bin\bash
? Спрашиваю чисто из академического интереса. Может кто уже пробовал.
Latest post of the previous page:
А если подменить шеллset comspec=c:\cygwin\bin\bash
? Спрашиваю чисто из академического интереса. Может кто уже пробовал.Спасибо за наводку на ComSpec! Озадачился этим вопросом. Завёл новую тему тут: http://forum.farmanager.com/viewtopic.p ... 18#p137318Smitis wrote:А если подменить шеллset comspec=c:\cygwin\bin\bash
? Спрашиваю чисто из академического интереса. Может кто уже пробовал.
Code: Select all
assoc .sh=UNIXShell.Script
ftype UNIXShell.Script="C:\cygwin64\bin\bash.exe" "%1" %*
Было бы интересней, связать с bash запуск скриптов без расширений, которых полно в bin. Хотя это и решается обходным путём созданием копий скриптов с расширением sh.gene.pavlovsky wrote:Если юзать cmd как шелл, то запуск скриптов (скажем .sh) без указывания расширения возможен. Во-первых, надо .sh добавить в переменную среды PathExt. Во вторых, надо связать тип файла .sh с выполнением через bash
PATHEXT определяет, какие расширения пытаться подставлять, если пользователь ввёл в интерпретаторе только имя, а не что считать исполняемыми файлами в принципе.
А разве возможно связать с программой исполнение файла без расширения? Если б это было возможно, я думаю в Cygwin User Guide об этом непременно бы сказали. Было бы удобно сделать в винде поддержку UNIX shebang `#!/path/to/interpreter`.Smitis wrote:Было бы интересней, связать с bash запуск скриптов без расширений, которых полно в bin. Хотя это и решается обходным путём созданием копий скриптов с расширением sh.
Code: Select all
#!/bin/sh
install_path=/usr/local/bin
test "$1" = '-f' -o "$1" = '--force' && force=1
cd "$(dirname "$0")/.."
dir="$(cygpath -aU .)"
dir=${dir%/}
shopt -s nullglob
for ext in sh awk sed js; do
for i in *.$ext; do
test -f "$i" || continue
i=${i%.$ext}
test -z "$force" -a -f "$install_path/$i" && continue
ln -sfv "$dir/$i.$ext" "$install_path/$i"
done
done
Я в курсе. Но зачем было делать это переменной среды? Переменная среды подразумевает, что её можно поменять для текущего процесса. Например, добавить .sh. Но добавление таким образом ничего не изменит, надо добавлять ассоциацию в реестр, а это уже глобальная настройка, действующая для всех процессов.DrKnS wrote:Smitis wrote:PATHEXT определяет, какие расширения пытаться подставлять, если пользователь ввёл в интерпретаторе только имя, а не что считать исполняемыми файлами в принципе.
К сожалению, нет. Это былы мечты...gene.pavlovsky wrote:А разве возможно связать с программой исполнение файла без расширения? Если б это было возможно, я думаю в Cygwin User Guide об этом непременно бы сказали. Было бы удобно сделать в винде поддержку UNIX shebang `#!/path/to/interpreter`.