Ответы:
Откройте терминал, введите sh /path/to/file
и нажмите Enter.
Быстрее ввести sh
и пробел, а затем перетащить файл в окно и выпустить значок в любом месте окна.
shell shell_script
строка shebang игнорируется. Оболочка читает первую строку как комментарий.
sh /path/to/file
семантически отличается от альтернативы /path/to/file.sh
?
В качестве альтернативы, вы также можете сделать
cd /directory/with/executable
chmod +x executable # only required if your file is not already executable
./executable
который также запустит исполняемый файл с указанной оболочкой (если указан в shebang #!/bin/(shell)
chmod u+x myfile.sh
cp myfile.sh /usr/local/bin
отредактируйте ~/.bash_profile
и добавьте следующую строку:
alias myfile=./myfile.sh
выполнить следующую командную строку:
source ~/.bash_profile
тогда вы сможете запустить свой файл как программу
$ myfile
#~/bin/sh
, в то время как в OSX
скрипте должно быть .sh
расширение и a alias
для каждого из них. : -O
Выполните следующие шаги для запуска файлов сценария:
Щелкните правой кнопкой мыши на файле .sh.
Наведите курсор на Open With .
Выберите Другие ... .
Вы должны быть в папке Приложения . Откройте папку Utilities и выберите Terminal.app.
Если вы не можете выбрать Terminal.app, измените включенные приложения с Рекомендуемые приложения на Все приложения . Это в нижней части окна.
Если вы хотите открыть каждый .sh
файл с помощью Terminal.app, установите флажок Всегда открывать с помощью .
Нажмите кнопку Открыть в правом нижнем углу окна.
Причина, по которой он не работает после загрузки, заключается в том, что права доступа к файлам не позволяют это сделать. Чтобы включить разрешения на выполнение, откройте Терминал и введите
chmod 755 /path/to/script
. Вместо того, чтобы вводить полный путь, вы можете перетащить скрипт в окно терминала из Finder. Затем, чтобы выполнить, просто введите
/path/to/script
. Опять же, вы можете перетащить файл в окно терминала. Этот синтаксис должен выполнять скрипт, используя правильную оболочку, как определено в первой строке скрипта.
sh
обозначает сценарий оболочки, а не «запускайте сценарий в этой оболочке».