zsh - 为什么我的 zsh 脚本可以独立工作,但在被 launchd 调用时却不能?
问题描述
我寻求帮助以使用 macOS Big Sur v11.4 在我的 imac 上设置定期作业。我想要做的是使用 bash 或 zsh 脚本每 60 秒删除给定文件夹的所有内容。不管是哪一个。终端的默认设置为 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/*
ps 非常抱歉,我在错误的部分发布了我之前的消息。希望这次是正确的。
解决方案
推荐阅读
- python - JSON 加载返回字符串
- c# - 设置 ErrorProvider 后无法单击任何位置
- verilog - 如何在 Verilog 运行时捕获键盘输入?
- azure - 如何使用 .Net Fluent SDK 设置 Azure 容器实例托管服务标识参数
- reactjs -
所以这段代码之前可以工作,但我不得不使用 npm 重新安装 react-stripe-elements,之后我开始收到错误。当我删除 . 该代码再次起作用。任何想法为什么?
- mysql - Select rows with duration calculation in the where clause
- react-native - FormData 是一个具有数组数组的对象
- postgresql - 何为 Google Cloud SQL Postgresql 实例建立连接 URL
- django - 如何将我的 sqlite 数据传递给 django 并制作图表?
- javascript - 从外部脚本访问 React DOM 元素