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

UrE*_*rEl 13 bash launchd plist macos

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

有没有办法创建一个 plist,launchd 将直接加载和运行这个复杂的命令?(与让 plist 引用包含复杂命令的 bash 脚本文件相反)

谢谢。

Sco*_*ott 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>
Run Code Online (Sandbox Code Playgroud)

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