我有一个launchd per-user代理。在它的.plist中,我想使用$HOME
环境变量。如何访问launchd plist中的环境变量
可能吗?
(这是“纲要”的关键,我想将其定义为“$ HOME /斌/的MyScript”)
我有一个launchd per-user代理。在它的.plist中,我想使用$HOME
环境变量。如何访问launchd plist中的环境变量
可能吗?
(这是“纲要”的关键,我想将其定义为“$ HOME /斌/的MyScript”)
的launchd并不在其.plists执行上的值任何替换,所以这不能以你想要做的形式完成。你可以做的是将你想运行的命令发送到一个shell,然后让它执行变量替换并运行该命令。举例来说,你可以替换Program
键与此:
<key>ProgramArguments</key>
<array>
<string>/bin/sh</string>
<string>-c</string>
<string>exec $HOME/tmp/myscript</string>
</array>
(注意:exec
前缀是不是真的有必要,这只是一个小的优化它使外壳与脚本替换本身,而不是开始。该脚本作为子流程,然后等待它完成。)
EnableGlobbing启用了用于ProgramArguments(但不是程序)的代字号和通配符扩展。
<key>EnableGlobbing</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>~/bin/myscript</string>
</array>
ProgramArguments只能是一个字符串数组而不只是一个字符串。默认情况下,Tilde扩展也适用于WatchPath。