Можно ли вызвать .sh
файл из командной строки Windows с помощью любой из этих программ?
Например:
msys myscript.sh
Или
c:\temp\msys.exe myscript.sh
Возможно ли это? Поскольку я хотел бы создать пакетный файл, запускающий .sh скрипты на одной из моих систем.
решение1
msys.exe
один из ряда портов инструментов командной строки Unix. Я им не пользовался, но, msys.exe
похоже, это пакет установки, поэтому вам нужно запустить и настроить его. Если вы хотите, чтобы инструменты были легкодоступны, а установщик этого не делает, вам нужно будет добавить установленный каталог в свою PATH
переменную.
Для интерпретации скрипта оболочки вам необходимо bash
, поэтому в вашем примере вы должны ввести:
bash -c myscript.exe
Если все ваши скрипты заканчиваются на .sh
(в Unix нет необходимости в определенном расширении, а часто его просто нет), вы можете связать расширение .sh
с bash
, чтобы затем можно было просто ввести или дважды щелкнуть имя скрипта.
В качестве альтернативы вы можете запустить его bash
в интерактивном режиме, cmd
и тогда все ваши команды будут выполняться так, как если бы они были в Unix.
Два момента, на которые стоит обратить внимание:
- Если скрипты импортированы из Unix, они будутинтерпретировалправильно, но не будут работать, если они вызывают команды или ресурсы, которые либо не существуют в Windows, либо имеют другие функции.
- Unix использует
/
в качестве разделителя каталогов и-
для обозначения параметров команды, тогда как Windows использует\
и/
. Некоторые порты команд Unix пытаются приспособить оба стиля, но поскольку/
имеет два разных значения, это обязательно плохой компромисс. Я понятия не имею,msys
пытается ли это сделать.