如何创建AppleScript应用程序以运行一组终端命令

时间:2010-07-01 01:18:58

标签: macos shell applescript

如何创建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 个答案:

答案 0 :(得分:15)

是的,您可以使用do shell script

但是,对于以超级用户(sudo)身份执行的命令,您将使用with administrator privileges。所以,对于sudo rm /usr/local/mysql你要这样做:

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

如果您的命令列表很长,那么将所有命令放入单个shell脚本文件中可能会更容易,然后使用do shell script执行该shell脚本:

do shell script "/path/to/shell/script" with administrator privileges

答案 1 :(得分:15)

你实际上并不需要使用AppleScript - 只需将所有shell命令放在一个文本文件中并给它一个.command后缀并确保它是可执行的(例如chmod +x my_script.command) - 这个将使其在Finder中双击。

答案 2 :(得分:0)

我发现.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