web-dev-qa-db-ja.com

起動したplistを取得して、複雑な1行のbashコマンドを直接実行するにはどうすればよいですか?

複数のパラメーターを使用してシステムプログラム(grepなど)を呼び出すことは言うまでもなく、いくつかのパイプとif-then-else句を含むやや複雑なbashコマンドがあります。

Launchdがこの複雑なコマンドを直接ロードして実行するplistを作成する方法はありますか? (plistに複雑なコマンドを含むbashスクリプトファイルを参照させるのとは対照的に)

ありがとう。

13
UrEl

はい。 ProgramArguments要素を設定するときは、最初の引数としてbashを使用し、2番目の引数として-cを使用し、次に[your commands](XMLエンティティなどを置き換えることを忘れないでください)を使用します。 >&など)のように、3番目のように:

<key>ProgramArguments</key>
<array>
        <string>/bin/bash</string>
        <string>-c</string>
        <string>ls -1 | grep *.txt | echo &gt; allTextFiles</string>
</array>

配列の3番目の要素を実際のコマンドに置き換えます。

16
Scott