代码之家  ›  专栏  ›  技术社区  ›  Hristo

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

  •  6
  • Hristo  · 技术社区  · 15 年前

    我如何创建一个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 回复  |  直到 9 年前
        1
  •  15
  •   indragie    15 年前

    是的,你会用 do shell script .

    但是,对于以超级用户身份执行的命令( sudo )你应该用 with administrator privileges . 所以,为了 sudo rm /usr/local/mysql 你会这样做:

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

    如果命令列表很长,那么将所有命令放入单个shell脚本文件中,然后使用 做shell脚本 :

    do shell script "/path/to/shell/script" with administrator privileges
    
        2
  •  15
  •   Paul R    12 年前

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

        3
  •  0
  •   Tunaki    9 年前

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