как создать приложение AppleScript для запуска набора команд терминала - PullRequest
6 голосов
/ 01 июля 2010

Как мне создать команду AppleScript, чтобы при запуске сценария (или двойном щелчке по нему в Finder?) Он выполнял набор команд терминала? Набор команд полностью удаляет MySQL, и постоянно писать их становится больно. Команды:

sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm /etc/my.cnf

Есть также другая команда sudo nano /etc/hostconfig, которая открывает файл, и мне нужно удалить строку из файла, но кажется, что это будет слишком сложно для кодирования, поэтому я думаю, что я могу сделать это вручную. Но было бы очень полезно сделать это автоматически с помощью одного скрипта.

Это будет просто набор этих команд?

do shell script (...)

Спасибо, Христо

Ответы [ 3 ]

15 голосов
/ 01 июля 2010

На самом деле вам не нужно использовать AppleScript для этого - просто поместите все команды оболочки в текстовый файл и присвойте ему суффикс .command и убедитесь, что он исполняемый (например, chmod +x my_script.command) - это сделает его двойным -нажмите в Finder.

15 голосов
/ 01 июля 2010

Да, вы бы использовали do shell script.

Однако для команд, которые вы выполняете как суперпользователь (sudo), вы бы вместо этого использовали with administrator privileges.Таким образом, для sudo rm /usr/local/mysql вы должны сделать:

do shell script "rm /usr/local/mysql" with administrator privileges

Если ваш список команд длинный, тогда может быть проще поместить все ваши команды в один файл сценария оболочки, а затем выполнить этосценарий оболочки с использованием do shell script:

do shell script "/path/to/shell/script" with administrator privileges
0 голосов
/ 29 ноября 2015

Я считаю, что файлы .scpt работают лучше, но это просто предпочтение.

Откройте «Редактор скриптов» и добавьте следующую команду:

sudo rm -rf /usr/local/mysql; sudo rm -rf /usr/local/mysql*; sudo rm -rf /Library/StartupItems/MySQLCOM; sudo rm -rf /Library/PreferencePanes/My*; sudo rm -rf /Library/Receipts/mysql*; sudo rm -rf /Library/Receipts/MySQL*; sudo rm /etc/my.cnf; say job completed successfully" with administrator privileges
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...