Как запускать команды терминала из скрипта в macOS

Чтобы запускать команды Терминала из скрипта в macOS, поместите их в текстовый скрипт оболочки, сделайте его исполняемым, а затем запустите из Finder или Терминала. Используйте .commandрасширение для открытия скрипта двойным щелчком. Скрипт не обходит средства контроля конфиденциальности macOS и не предоставляет права администратора.

Окно текстового редактора, отображающее шебанг zsh и команду echo в файле MyScript.command.
Короткий скрипт оболочки начинается с шебанга, который выбирает zsh.

1. Запишите команды в текстовый файл.

Скрипт оболочки — это текстовый файл, содержащий команды. Он запускается с помощью shebang — первой строки, которая указывает macOS, какая оболочка должна интерпретировать файл. В настоящее время оболочкой по умолчанию для новых окон Терминала является zsh, хотя администратор может установить другую оболочку по умолчанию, как объясняет Apple в своем руководстве по Терминалу . В этом примере явно используется zsh:

#!/bin/zsh
# Print a message when the script runs
echo "Script is running"

Команды следует размещать на отдельных строках после шебанга. Шебанг выбирает интерпретатор, поэтому используйте поддерживаемый им синтаксис; например, скрипт Bash может начинаться с ` #!/bin/bash.`. В руководстве Apple по скриптам командной оболочки объясняются основы.

Вы можете использовать TextEdit, но убедитесь, что файл представляет собой обычный текст: новые документы TextEdit могут быть в формате RTF. Выберите «Формат» > «Сделать обычным текстом» или установите формат нового документа TextEdit на «Обычный текст» в его настройках. Форматирование RTF — это не командная строка. Apple описывает эти параметры в своем руководстве по TextEdit . Также можно использовать редактор кода или редактор командной строки, например nano.

Диалоговое окно сохранения в macOS, в котором файл MyScript.command выбран как обычный текстовый файл на рабочем столе.
Сохраните скрипт с расширением .command в легкодоступном месте.

2. Сохраните его с помощью .commandрасширения.

Сохраните текстовый файл с описательным именем, например MyScript.command, `.`. Расширение `.` поможет Finder открыть скрипт в Терминале при двойном щелчке. В архивной документации для разработчиков Apple описан этот алгоритм двойного щелчка для скриптов оболочки. Проверьте окончательное имя в Finder: если оно заканчивается на `.` .command.txt, переименуйте его так, чтобы окончательное расширение было просто ` .command.`. Сохраните пример в таком месте, как рабочий стол, пока будете его настраивать.

Если macOS спросит, какое расширение использовать, сохраните .commandи убедитесь, что Finder его не добавил .txt.

3. Сделайте скрипт исполняемым.

Откройте Терминал и предоставьте своей учетной записи разрешение на выполнение файла. Для примера, сохраненного на рабочем столе, введите:

chmod u+x "$HOME/Desktop/MyScript.command"

Нажмите Enter. u+xЭто добавит разрешение на выполнение для владельца; кавычки защищают пути пробелами. При необходимости замените пример пути. Перетащите файл в Терминал или используйте меню Finder (Option+клик), чтобы скопировать его путь. Apple показывает тот же метод в своих инструкциях по исполняемым файлам .

Окно терминала, отображающее применение команды chmod u+x к файлу MyScript.command на рабочем столе.
Команда `chmod` добавляет права на выполнение для владельца файла.

4. Запустите скрипт.

Дважды щелкните MyScript.commandв Finder, чтобы запустить его в Терминале. Вывод и ошибки отобразятся там. Или введите полный путь к файлу:

"$HOME/Desktop/MyScript.command"

Или сначала перейдите в папку, а затем добавьте перед именем файла двоеточие ( ./:).

cd "$HOME/Desktop"
./MyScript.command

Эта команда ./указывает оболочке запустить файл в текущей папке. В руководстве по команде Terminal от Apple объясняется, как запустить исполняемый файл по пути к нему.

В окне терминала запущен скрипт MyScript.command, и отображается сообщение "Скрипт выполняется".
Запустите файл, указав его путь, и проверьте результат в Терминале.

Устранение распространенных ошибок

  • «Отказано в доступе»: Убедитесь, что вы выполнили команду chmod u+xдля правильного файла. При необходимости повторите команду, используя точный путь к файлу. Предоставление файлу права на выполнение не разрешает выполнение всех команд внутри него.
  • «Нет такого файла или каталога»: подтвердите местоположение и правильность написания, включая расширение. Файл, случайно сохраненный как [укажите имя MyScript.command.txtфайла], не будет соответствовать приведенной выше команде. Перетаскивание файла в Терминал может помочь вставить его путь.
  • Команда работает при вводе, но не в скрипте: скрипт может использовать другую оболочку или полагаться на псевдонимы, переменные окружения или рабочий каталог из вашей интерактивной сессии Терминала. Используйте правильный shebang, избегайте использования псевдонимов и явно указывайте пути к файлам. Если командам требуется определенная папка, добавьте соответствующую cdстроку в начале скрипта.

Прежде чем делиться информацией, ознакомьтесь с правами доступа.

Бит выполнения отделен от прав доступа к конфиденциальной информации. Скрипт обычно запускается от имени вашей учетной записи; используйте его sudoтолько для команд, требующих прав администратора.

macOS может запрашивать доступ к защищенным папкам или другим приложениям. Проверяйте каждый запрос и разрешайте только то, что необходимо. Проверьте меню Apple > Системные настройки > Конфиденциальность и безопасность для файлов и папок и связанных с ними параметров конфиденциальности . Разрешение зависит от запрашиваемого доступа и запрашивающего приложения; это не общие разрешения для каждой команды и не передаются вместе с общим скриптом.

Перед запуском или распространением скрипта внимательно прочтите каждую строку и убедитесь, что понимаете, что она изменяет. .commandФайл удобен тем, что может быть запущен сразу после открытия, поэтому используйте только файлы из источников, которым вы доверяете.

Оставить комментарий

Как сделать скриншот на Mac: подробное руководство

Как сделать скриншот на Mac: подробное руководство

Узнайте, как делать скриншоты на Mac с помощью сочетаний клавиш для всего экрана, области или окна, а также советы по использованию приложения «Скриншот», буфера обмена, редактирования и сохранения.

Как добавить несколько изображений в один PDF-файл на macOS

Как добавить несколько изображений в один PDF-файл на macOS

Объедините несколько изображений в один PDF-файл на macOS с помощью Finder или Preview. Управляйте порядком страниц, избегайте обрезки и исправляйте отсутствующие страницы без дополнительного программного обеспечения.

Как отобразить FPS на macOS: Steam и интерфейс Metal от Apple.

Как отобразить FPS на macOS: Steam и интерфейс Metal от Apple.

Узнайте, как отображать FPS на Mac с помощью оверлея производительности Steam или HUD производительности Metal от Apple, а также как исправить ошибки, когда счетчик не отображается.

Как принудительно завершить работу приложения на Mac: 5 быстрых способов закрыть приложение

Как принудительно завершить работу приложения на Mac: 5 быстрых способов закрыть приложение

Используйте комбинацию клавиш Option–Command–Esc, чтобы принудительно завершить работу зависшего приложения на Mac, или закройте его из меню Apple, Dock, Монитора активности или Терминала.

Как использовать режим разделенного экрана на Mac: разместите два приложения рядом.

Как использовать режим разделенного экрана на Mac: разместите два приложения рядом.

Настройте режим разделенного экрана, измените размер или замените панель, используйте Mission Control и узнайте, когда мозаичное расположение окон рабочего стола лучше подходит для вашего Mac.

Как удалить данные EXIF ​​из фотографий на macOS

Как удалить данные EXIF ​​из фотографий на macOS

Узнайте, как удалить данные EXIF ​​из фотографий на macOS, скрыть местоположение в приложении «Фотографии», очистить экспортированные копии JPEG с помощью ExifTool и проверить результат.

Как безопасно синхронизировать две папки на Mac

Как безопасно синхронизировать две папки на Mac

Синхронизируйте две папки на Mac с помощью SyncTwoFolders, выберите одностороннее или двустороннее обновление и просмотрите изменения перед заменой или удалением файлов.

Как сделать резервную копию блога Tumblr на Mac

Как сделать резервную копию блога Tumblr на Mac

Создайте резервную копию блога Tumblr на своем Mac с помощью функции экспорта в веб-версию Tumblr. Скачайте и распакуйте ZIP-архив, сохраните записи и медиафайлы в безопасности и узнайте, что не вошло в архив.

Как пользоваться Google Maps на настольном компьютере Mac

Как пользоваться Google Maps на настольном компьютере Mac

Используйте Google Maps на своем Mac в Safari или Chrome, находите места и маршруты, переключайте слои карты и добавляйте веб-приложение Safari в Dock на macOS Sonoma 14 или более поздней версии.

5 лучших бесплатных конвертеров WAV в MP3 для Windows и macOS

5 лучших бесплатных конвертеров WAV в MP3 для Windows и macOS

Сравните пять бесплатных конвертеров WAV в MP3 для Windows и macOS, учитывая ограничения на размер файлов в онлайн-режиме, инструменты для пакетной обработки и удобные настройки экспорта.