我正在寻找关于stackoverflow的问题的答案,并找到了一个帖子(https://superuser.com/questions/229773/run-command-on-startup-login-mac-os-x)。这就是我发现有关launchd.plist的方法,我自己做了一个:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>js.leapmotion</string>
<key>OnDemand</key>
<false/>
<key>ProgramArguments</key>
<array>
<string>open</string>
<string>/Applications/Utilities/Terminal.app</string>
</array>
<key>LaunchOnlyOnce</key>
<true/>
</dict>
</plist>
这确实在启动我的mac后启动了我的终端。但现在我希望它导航到一个目录并在那里运行命令gulp
。
这将再次完成剩下的工作,打开一个本地主机等等......
所以最后我只需要在特定目录中运行gulp
。就这样。如果launchd.plist不是最佳方式,那么我愿意接受替代方案。
否则我想知道如何告诉终端它应该运行什么命令。
感谢提示。 欢呼声
Ĵ
答案 0 :(得分:0)
您可以使用open
命令打开终端并使用-a
标志运行脚本。例如,open -a Terminal /path/to/myscript
将打开一个新的终端窗口并运行myscript
。请注意,当myscript
完成时,会话将终止(即没有shell)。要更改它,您可以运行bash
或任何您喜欢的shell作为脚本的一部分。
在您的情况下,我建议创建一个基本脚本来执行您希望终端执行的任何操作,例如:
#!/usr/bin/env bash
cd /path/to/your/directory
/usr/bin/gulp
保存(确保它的可执行文件),然后更改你的launchd plist以匹配:
<key>ProgramArguments</key>
<array>
<string>open</string>
<string>-a</string>
<string>Terminal</string>
<string>/path/to/yourscript</string>
</array>