Оболочкой, поставляемой с msysgit, является bash, которая работает в эмулируемой Unix-подобной среде.
Если вы запускаете сценарий из оболочки bash, вам нужно ввести имя сценария, которое в отношении Unix-подобной среды равно rd.sh
. .sh
не имеет особого значения в среде Unix; это просто последние три символа имени файла. Первая строка скрипта должна быть #!/bin/sh
или #!/bin/bash
; это известно как "шебанг" .
С другой стороны, если вы хотите запустить его из Windows (скажем, из командной строки cmd.exe
), то расширение .sh
используется Windows, чтобы определить, как его выполнить, и вы можете вызвать его. как rd
, если (a) он находится в каталоге вашего %PATH%
и (b) Windows настроена (в параметрах папки и / или путем установки %PATHEXT%
) для использования sh
или bash
для запуска .sh
файлов.
Если вы хотите иметь возможность запускать один и тот же сценарий из любой среды, вы можете создать символическую ссылку, которая будет распознаваться в эмулированной среде, подобной Unix. Например, если rd.sh
находится в $HOME/bin
, то это:
ln -s $HOME/bin/rd.sh $HOME/bin/rd
создаст соответствующую символическую ссылку. (Вы можете сделать rd
копию rd.sh
, но тогда изменения одного не будут применяться к другому.)
Если вам нужно только запустить его из bash, просто назовите его rd
вместо rd.sh
; как я уже говорил, что касается bash, расширение .sh
является лишь частью имени и не имеет особого значения. Это строка #!
, а не расширение .sh
, которая сообщает bash, как выполнить скрипт.
(Ну, строго говоря, это не bash, который обрабатывает #!
. В реальных системах Unix или Linux он обрабатывается ядром; я не уверен, какой именно механизм находится под msysgit.)