Como obter um pld launchd para executar diretamente um comando bash complexo de 1 linha?

13

Eu tenho um comando bash um tanto complexo que inclui alguns canais e uma cláusula if-then-else, sem mencionar o programa do sistema de chamada (como grep ) com múltiplos parâmetros.

Existe uma maneira de criar um plist que o launchd carregará e executará este comando complexo diretamente? (Ao contrário de ter a referência plist, um arquivo de script bash contendo o comando complexo)

Obrigado.

    
por UrEl 18.05.2011 / 16:39

1 resposta

15

Sim. Ao configurar o elemento ProgramArguments , basta usar bash como primeiro argumento, -c como segundo argumento e, em seguida, [your commands] (lembrando-se de substituir entidades XML, como > , & e assim on) como o terceiro, assim:

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

Substitua o terceiro elemento da matriz pelo seu comando atual.

    
por 18.05.2011 / 17:03