Ответы:
Откройте терминал, введите 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обозначает сценарий оболочки, а не «запускайте сценарий в этой оболочке».