2012-05-25 27 views

回答

2

的launchd并不在其.plists执行上的值任何替换,所以这不能以你想要做的形式完成。你可以做的是将你想运行的命令发送到一个shell,然后让它执行变量替换并运行该命令。举例来说,你可以替换Program键与此:

<key>ProgramArguments</key> 
<array> 
    <string>/bin/sh</string> 
    <string>-c</string> 
    <string>exec $HOME/tmp/myscript</string> 
</array> 

(注意:exec前缀是不是真的有必要,这只是一个小的优化它使外壳与脚本替换本身,而不是开始。该脚本作为子流程,然后等待它完成。)

3

EnableGlobbing启用了用于ProgramArguments(但不是程序)的代字号和通配符扩展。

<key>EnableGlobbing</key> 
<true/> 
<key>ProgramArguments</key> 
<array> 
    <string>~/bin/myscript</string> 
</array> 

ProgramArguments只能是一个字符串数组而不只是一个字符串。默认情况下,Tilde扩展也适用于WatchPath。