如何让 launchd plist 直接运行复杂的 1 行 bash 命令?

如何让 launchd plist 直接运行复杂的 1 行 bash 命令?

我有一个有点复杂的 bash 命令,其中包括一些管道和 if-then-else 子句,更不用说grep使用多个参数调用系统程序(例如)。

有没有办法创建一个 plist,以便 launchd 直接加载并运行这个复杂命令?(而不是让 plist 引用包含复杂命令的 bash 脚本文件)

谢谢。

答案1

是的。设置元素时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>

将数组的第三个元素替换为您的实际命令。

相关内容