ユーザーごとのエージェントを起動しました。$HOME
.plistで、環境変数を使用したいと思います。
出来ますか?
(これは「プログラム」キーであり、「$ HOME / bin / myscript」として定義したい)
launchdは、.plistsの値に対して置換を実行しないため、実行しようとしている形式でこれを実行することはできません。実行するコマンドをシェルに渡して、変数の置換を実行させてコマンドを実行することができます。たとえば、そのProgram
キーを次のように置き換えることができます。
<key>ProgramArguments</key>
<array>
<string>/bin/sh</string>
<string>-c</string>
<string>exec $HOME/tmp/myscript</string>
</array>
(プレフィックスは実際には必要ないことに注意してくださいexec
。これはマイナーな最適化です。これにより、スクリプトをサブプロセスとして開始して終了するのを待つのではなく、シェルがスクリプトに置き換えられます。)
EnableGlobbingは、ProgramArguments(Programではない)のチルダおよびワイルドカード拡張を有効にします。
<key>EnableGlobbing</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>~/bin/myscript</string>
</array>
ProgramArgumentsは、文字列だけではなく、文字列の配列にすることができます。チルダ拡張は、デフォルトでWatchPathsでも機能します。