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

Hri*_*sto 6 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
Run Code Online (Sandbox Code Playgroud)

还有另一个sudo nano /etc/hostconfig打开文件的命令,我需要从文件中删除一行,但这似乎太难编码,所以我想我可以手工完成.但是使用单个脚本自动执行此操作将是一个巨大的帮助.

它只是一堆这些命令吗?

do shell script (...)
Run Code Online (Sandbox Code Playgroud)

谢谢,Hristo

Pau*_*l R 16

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

  • `.command`后缀还不够 - 你还必须包含一个shebang(即添加`#!/ bin/bash`作为文本文件的第一行)并为文件添加执行权限(即运行) `chmod + x/path/to/file.command`).顺便说一下,使用它与AppleScript相比的一大优势是它在终端中运行,因此您可以实际与脚本进行交互(如果您想使用例如`nano`来编辑文件,这非常重要). (4认同)

ind*_*gie 15

是的,你会用do shell script.

但是,对于以超级用户(sudo)身份执行的命令,您可以使用with administrator privileges.所以,对sudo rm /usr/local/mysql你来说:

do shell script "rm /usr/local/mysql" with administrator privileges
Run Code Online (Sandbox Code Playgroud)

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

do shell script "/path/to/shell/script" with administrator privileges
Run Code Online (Sandbox Code Playgroud)