在 Mac 用户登录上打开终端和 运行 命令

Open terminal and run commands on Mac User Login

我正在尝试自动化启动脚本的一部分,该脚本将打开一个终端 window,该终端将 运行 命令并在登录时向用户显示一堆文本。

我试图在 /Library/LaunchAgent 中创建一个 plist,但似乎没有成功

/LaunchAgents/blah.blah.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "..........">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>terminal.menu</string>
    <key>RunAtLoad</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/bash</script>
        <string>/Library/Scripts/Startup.sh</string>
    </array>
</dict>
</plist>

Startup.sh 看起来像这样

osascript -e 'tell app "Terminal"
    do script "echo blah blah ; ssh blah blah"
end tell'

根据 here 中的信息,您可以对 .plist 进行一些修改:

  1. label 值应与您的 .plist 的名称匹配,在本例中为 "blah.blah",或者您应将 .plist 保存为 "terminal.menu.plist".

  2. 您指定了 ProgramArguments,但没有指定 Program。也许如果你改变这个:

    <key>ProgramArguments</key>
    <array>
        <string>/bin/bash</script>
        <string>/Library/Scripts/Startup.sh</string>
    </array>
    

    对此:

    <key>Program</key>
    <string>/Library/Scripts/Startup.sh</string>
    

所以您的 blah.blah.plist 定义现在看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "..........">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>blah.blah</string>
        <key>Program</key>
        <string>/Library/Scripts/Startup.sh</string>
        <key>RunAtLoad</key>
        <true/>
    </dict>
</plist>