Командный (исполняемый) файл на МАС ОС

Оказалось простые задача создания исполняемого файла типа .bat или .cmd в Windows в MAC-OS вызывает затруднение и это неудивительно, в UNIX системах своя логика.
Но разобравшись один раз, на простом примере создания исполняемого bash скрипта, вы поймете как это работает и сможете использовать всю мощь  bash скрипта на вашем Макинтоше или Хакинтоше.

Обычно создание bash скриптов происходит в приложении терминал, от начала до конца, для некоторых пользователей это проблема, белое окно терминала их напрягает, кнопок нет, чего делать-непонятно.
Поэтому мануал будет почти полностью сориентирован на создание и запуск исполняемого скрипта через графический интерфейс, все предельно просто, скопировал, вставил + комментарий к операции.

Создание bash скрипта с помощь текстового редактора TextEdit

В Finder открываем программы и ищем текстовый редактор TextEdit:

Создание bash скрипта с помощь текстового редактора TextEdit

После запуска TextEdit, его надо переключить в текстовый режим, в принципе это не обязательно, но крайне желательно, это поможет впоследствии избежать непредсказуемых ошибок:

Командный исполняемый файл на МАС ОС

После того копируем и вставляем:

#!/usr/bin/env bash
ping -c 3 8.8.8.8

Создание bash скрипта с помощь текстового редактора TextEditСохраняем файл на рабочем столе (можно в любом другом месте) с именем:

knock-knock.sh

Командный исполняемый файл на МАС ОС
После сохренения, файл knock-knock.sh должен появиться на рабочем столе.
Итак, самое главное сделали, мы создали файл в котором будет запускаться ping до 8.8.8.8 (google DNS), будут отправлены 3 пакета. Конечно, вы можете написать вместо гуглевского ДНС любой IP адрес.

Делаем bash скрипт исполняемым

Тут нам понадобится Terminal — это приложение находится в Программы/Утилиты:

Делаем bash скрипт исполняемымЗапускаем Терминал и копируем в него:

chmod +x ~/Desktop/knock-knock.sh

Создание bash скрипта с помощь текстового редактора TextEdit
Теперь у нас есть есть исполняемый скрипт, аналог cmd файла в Windows, который осталось только проверить.

Перетаскиваем курсором мыши созданный вами knock-knock.sh в окно терминала и нажимаем на клавиатуре Enter

Если все сделано правильно, результат должен быть примерно таким:

Запскаем bash скриптДля полного счастья осталось назначить приложение для выполнения по умолчанию, как вы уже догадались, это должен быть Терминал. Тогда при на нажатии ПКМ (правой кнопкой мыши), будет автоматически открываться Терминал и и исполняться скрипт.

Командный (исполняемый) файл на МАС ОС — P.S. примечание
Надо сказать что статья справедлива и для другой техники Apple — IPAD, Iphone и т.д., ибо у них все на юниксе.

Расширения исполняемых файлов в macOS

  • .command — это стандартное расширение для командных файлов в macOS. Файлы с расширением .command по умолчанию открываются в терминале и выполняются как скрипты командной строки.
  • .run — другое распространенное расширение для исполняемых командных файлов. Файлы .run часто используются для запуска скриптов, установщиков и других задач автоматизации.
  • .app — это расширение для приложений в macOS. Файлы .app по сути являются папками, содержащими исполняемый файл приложения и другие вспомогательные файлы.
  • .pkg — расширение для инсталляторов macOS. Файлы с расширением .pkg обычно используются для распространения и установки программ. Они позволяют автоматизировать процесс установки.

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

Примеры создания простых скриптов командной строки

Вот несколько примеров создания простых скриптов командной строки в файле с расширением .command для автоматизации различных задач в macOS:

  1. Скрипт для создания резервной копии файлов:
#!/bin/bash

TAR_FILE=backup_$(date +%Y-%m-%d).tar.gz 
DESTINATION=/Users/username/backups 
tar -czf $DESTINATION/$TAR_FILE /Users/username/Dcuments

  1. Скрипт для очистки системных файлов кэша:
#!/bin/bash 

sudo rm -rf /private/var/folders/* 
sudo rm -rf /Library/Caches/*

  1. Скрипт для изменения раскладки клавиатуры:
#!/bin/bash 

defaults write -g AppleKeyboardLayoutID -int 1

Эти простые примеры показывают, как с помощью скриптов командной строки можно автоматизировать рутинные задачи в macOS.

Как добавлять параметры и аргументы в командные файлы

Чтобы сделать командные файлы в macOS более гибкими, в них можно добавлять параметры и аргументы командной строки. Вот несколько способов это сделать:

  1. Использовать встроенные переменные $1, $2, $3 и т.д. для получения аргументов скрипта:

#!/bin/bash 
echo "Первый параметр: $1" 
echo "Второй параметр: $2"
  1. Получить все аргументы через переменную $*:

#!/bin/bash 
echo "Все параметры: $*"
  1. Использовать опции командной строки для параметров со значениями:

#!/bin/bash 
while getopts ":a:b:c" opt; do 
  case $opt in 
  a) 
    echo "Параметр -a $OPTARG" 
  ;; 
  b) 
    echo "Параметр -b $OPTARG" 
  ;; 

  c) 
    echo "Флаг -c установлен" 
  ;; 
  esac 
done
  1. Запросить ввод параметров через команду read:

#!/bin/bash 

echo "Введите имя:"
read name 
echo "Введите возраст:" 
read age 
echo "$name - $age лет"

Таким образом можно сделать скрипты более гибкими для разных сценариев использования.

Как сделать командный файл самовыполняющимся и автоматически запускающим задачи

Чтобы сделать командный файл в macOS самовыполняющимся и автоматически запускающим задачи, можно воспользоваться следующими способами:

  • Добавить команду запуска скрипта в сам скрипт. Например:

#!/bin/bash 

# Команды скрипта 
sh /path/to/script.command
  • Использовать функцию autostart в plist файле:

Создать plist файл в папке ~/Library/LaunchAgents, добавить ключи:

<key>RunAtLoad</key> 
<true/> 

<key>ProgramArguments</key> 
<array> 
    <string>/path/to/script.command</string> 
</array>
  • Добавить скрипт в crontab с @reboot:

@reboot /path/to/script.command
  • Использовать автозагрузку в настройках пользователя:

Системные настройки — Пользователи и группы — Вход — добавить скрипт

  • Поместить в папку запуска приложений:
/Applications/StartupItems
  • Запуск через лаунч-агенты в папке (скрытой):
~/Library/LaunchAgents

Таким образом скрипт будет запускаться автоматически при старте системы или пользователя.

Заключение — Командные файлы и скрипты bash в macOS

Командные файлы (command files) — это исполняемые скрипты в macOS, позволяющие автоматизировать задачи с помощью командной строки.

Расширения командных файлов

  • .command — стандартное расширение для командных скриптов в macOS. Файлы .command открываются в терминале.
  • .run — распространенное расширение для исполняемых командных файлов.
  • .app — расширение для приложений в macOS.
  • .pkg — расширение инсталляторов приложений.

Структура командного файла

Командный файл имеет простую текстовую структуру и содержит команды shell scripting на bash.

Пример скрипта:

#!/bin/bash

echo "Hello World"

Первая строка указывает интерпретатор команд.

Далее идут команды bash.

Создание скриптов командной строки

Примеры скриптов автоматизации:

  • Резервное копирование файлов
  • Очистка кэша
  • Установка приложений
  • Изменение настроек системы

Скрипт может принимать параметры:

#!/bin/bash 

echo "First parameter: $1" 
echo "Second parameter: $2"

Запуск командных файлов

Способы запуска в Terminal:

  • bash имя_файла.command
  • ./имя_файла.command
  • source имя_файла.command
  • Через файл .plist в папке LaunchAgents
  • Через crontab с @reboot
  • Через автозагрузку пользователя

Автозапуск скриптов

Чтобы скрипт запускался автоматически, можно:

  • Добавить в crontab
  • Использовать лаунч-агенты
  • Запустить скрипт в самом скрипте
  • Добавить в автозагрузку пользователя

Таким образом, командные файлы и bash скрипты позволяют автоматизировать задачи в macOS.

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