13

У меня есть несколько сложная команда bash, которая включает несколько каналов и условие if-then-else, не говоря уже о вызове системной программы (такой как grep) с несколькими параметрами.

Есть ли способ создать plist, который launchd будет загружать и запускать эту сложную команду напрямую? (В отличие от ссылки на plist файл сценария bash, содержащий сложную команду)

Благодарю.

1 ответ1

16

Да. При настройке элемента ProgramArguments просто использовать bash в качестве первого аргумента, -c в качестве второго аргумента, то [your commands] (напомним , заменить все XML объекты, такие > & и так далее) , так как третий, как и :

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

Замените третий элемент массива вашей фактической командой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .