Главная
» MAC OS X
»
Как запустить скрипт оболочки (.sh) в macOS
Как запустить скрипт оболочки (.sh) в macOS
Чтобы запустить скрипт оболочки в macOS , откройте Терминал, перейдите в папку, содержащую .shфайл, и запустите его с помощью интерпретатора. Например, bash hello.shзапускает скрипт Bash без изменения его прав доступа. Если вы хотите запустить его как команду, сделайте его исполняемым с помощью команды `make` chmod +x hello.sh, а затем запустите `make` ./hello.sh. Эти методы работают в текущих версиях macOS.
Перед запуском проверьте скрипт.
Скрипт оболочки — это текстовый файл, содержащий команды. Эти команды выполняются с правами вашей учетной записи пользователя, поэтому скрипт может редактировать или удалять файлы, устанавливать программное обеспечение или передавать данные по сети. Перед запуском скрипта обязательно прочтите его, особенно если он запрашивает пароль администратора или использует команду ` sudo.`. Запускайте скрипты только из источников, которым вы доверяете; изменение прав доступа к файлу не делает его содержимое безопасным.
Это самый простой способ запустить скрипт Bash. Предварительно добавлять права на выполнение не требуется.
Создайте или найдите скрипт. Скрипт оболочки можно написать в любом текстовом редакторе. Для быстрой проверки откройте TextEdit, выберите Формат > Сделать обычным текстом и введите следующие две строки:
#!/bin/bash
echo "Hello from macOS"
Сохраните файл как hello.sh. В диалоговом окне сохранения убедитесь, что имя файла заканчивается на .shи что TextEdit не добавил .txt. Первая строка — это shebang: она идентифицирует Bash как интерпретатор при прямом запуске скрипта. Вторая строка выводит короткое сообщение.
В примере файла hello.sh содержится shebang, за которым следует команда, выводящая текст.
Откройте Терминал и перейдите в папку с файлом. Нажмите Command-Space, введите Terminal и нажмите Return. Если вы сохранили файл в папке «Загрузки», введите:
cd ~/Downloads
Нажимайте Enter после каждой команды. Вы можете ввести команду lsдля вывода списка файлов и подтверждения их hello.shналичия. Перейдите Downloadsв папку, которую вы фактически использовали. Если имя папки или файла содержит пробелы, заключите путь в кавычки, например cd "$HOME/My Scripts", .
Используйте команду `cd`, чтобы открыть папку, содержащую скрипт, затем проверьте его имя с помощью команды `ls`.
Запустите скрипт с помощью Bash. Введите имя скрипта после bash:
bash hello.sh
В терминале должно отобразиться Hello from macOS. Если скрипт использует синтаксис Zsh вместо Bash, запустите zsh hello.sh. В терминале в интерактивном режиме обычно открывается оболочка Zsh, но это не значит, что каждый скрипт следует запускать с помощью Zsh; используйте интерпретатор, для которого был написан скрипт. В шебанге скрипта часто указывается этот интерпретатор.
Предоставьте разрешение на выполнение. В том же окне терминала и в той же папке выполните следующую команду:
chmod +x hello.sh
Это добавляет файлу права на выполнение. Это одноразовое изменение, если права доступа не будут впоследствии сброшены. Избегайте использования более широких настроек прав доступа, чем необходимо; chmod +xэтого достаточно для личного скрипта, принадлежащего вам.
Команда chmod +x помечает файл hello.sh как исполняемый.
Запустите из текущей папки. Введите:
./hello.sh
Эта команда ./указывает оболочке запустить файл в текущем каталоге. Без неё оболочка обычно ищет файлы в папках, указанных в файле, PATHа не в текущей папке. Если вы находитесь в другом месте, используйте команду cdдля возврата в папку скрипта или введите его полный путь, например ~/Downloads/hello.sh, .
Запуск команды ./hello.sh запускает исполняемый скрипт и отображает его вывод.
Распространенные ошибки и способы их устранения
После использования команды `pip install -pip` возникает ошибка «Доступ запрещен» ./hello.sh: подтвердите имя файла, затем запустите `pip install -pip` chmod +x hello.sh. Или используйте `pip install -pip`, bash hello.shесли это скрипт Bash и вам не требуется прямое выполнение.
«Нет такого файла или каталога»: подтвердите папку с помощью команды `npm install` pwd, выведите список ее содержимого с помощью команды `npm lsinstall` и проверьте орфографию и регистр букв. Убедитесь, что файл на самом деле не называется ` hello.sh.txt.`.
Сообщение «Команда не найдена» внутри скрипта: скрипт может использовать утилиту, которая отсутствует или не включена в PATH. Перед установкой чего-либо проверьте документацию скрипта.
Ошибка «Неверный интерпретатор» или сообщение об ошибке , указывающее ^Mна то, что первая строка может указывать на недоступный интерпретатор, или файл может использовать символы конца строки в стиле Windows. Проверьте shebang и сохраните файл с символами конца строки Unix (LF).
Какой метод следует использовать?
Используйте bash hello.shдля быстрого запуска, если вы знаете, что это скрипт Bash. Используйте chmod +x hello.shс последующим, ./hello.shесли хотите запустить его напрямую и позволить его shebang выбрать интерпретатор. Ни один из этих методов не устанавливает недостающие зависимости, не исправляет несовместимые команды и не проверяет, является ли скрипт надежным.