为什么我的 zsh 脚本可以独立运行,但在被 launchd 调用时却不能运行?

时间:2021-07-17 23:17:10

标签: zsh launchd

我寻求帮助,在我的 imac 上使用 macOS Big Sur v11.4 设置定期作业。 我想要做的是每 60 秒使用 bash 或 zsh 脚本删除给定文件夹的所有内容。哪一个都无所谓。终端的默认设置为 zsh。所以我用 zsh 试了一下。

我目前的方法是有两个文件。一个删除文件夹内容的 zsh 脚本,对于“launchd”,我有一个 plist,它应该定期调用该脚本。

如果我在终端中调用 zsh 脚本,它可以正常工作并删除文件夹内容。 但是当它被launchd调用时,它返回“未找到匹配项”,我不知道问题出在哪里。

因此,如果有人可以帮助我,那就太好了。

/Library/LaunchDaemons/com.deleteGCODE.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.deleteGCODE.plist</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/deleteGCODE.sh</string>
    </array>
    <key>StartInterval</key>
    <integer>60</integer>
    <key>StandardErrorPath</key>
        <string>/tmp/mycommand.err</string>
    <key>StandardOutPath</key>
        <string>/tmp/mycommand.out</string>
</dict>
</plist>

/usr/local/bin/deleteGCODE.sh:

#!/bin/zsh
dir="/Users/simon/Documents/Simplify3D/GCODE/"
rm -rf "$dir"*

/tmp/mycommand.out 的输出:

/usr/local/bin/deleteGCODE.sh:3: no matches found: /Users/simon/Documents/Simplify3D/GCODE/*

附言 非常抱歉,我在错误的部分发布了我之前的消息。 希望这次是正确的。

0 个答案:

没有答案