在 macOS 上创建一个定时任务来执行 .sh 脚本,可以使用 launchd 。以下是详细步骤:
步骤 1:编写你的 .sh 脚本
首先,确保你的 Shell 脚本已经编写好,并具有执行权限。例如,假设你的脚本名为 myscript.sh ,路径为 /path/to/myscript.sh 。
sh
#!/bin/bash
echo "Hello, World!" >> /path/to/output.txt
确保脚本具有执行权限:
sh
chmod +x /path/to/myscript.sh
步骤 2:创建 Launch Agent Property List 文件
创建一个 .plist 文件来配置 launchd ,例如 com.example.myscript.plist 。
sh
touch ~/Library/LaunchAgents/com.example.myscript.plist
编辑这个文件并添加以下内容:
xml
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.myscript</string>
<key>ProgramArguments</key>
<array>
<string>/path/to/myscript.sh</string>
</array>
<key>StartInterval</key>
<integer>1500</integer>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
注意:
- Label:任务的唯一标识符。可以使用类似 com.example.myscript 的格式。
- ProgramArguments:脚本的路径,请替换为你的实际脚本路径。
- StartInterval:执行间隔时间(以秒为单位),25分钟等于 1500 秒。
- RunAtLoad:确保在加载时立即运行任务。
步骤 3:加载配置文件
将 .plist 文件移动到 ~/Library/LaunchAgents/ 目录下:
sh
mv ~/Library/LaunchAgents/com.example.myscript.plist ~/Library/LaunchAgents/
使用 launchctl 加载任务:
sh
launchctl load ~/Library/LaunchAgents/com.example.myscript.plist
步骤 4:验证任务是否成功加载
你可以使用以下命令查看任务是否已加载:
sh
launchctl list | grep com.example.myscript
如果任务已正确加载,你会在输出中看到任务的标识符 com.example.myscript 。
步骤 5:卸载任务
如果你需要卸载任务,可以使用以下命令:
sh
launchctl unload ~/Library/LaunchAgents/com.example.myscript.plist
全部步骤总结
- 编写你的 Shell 脚本并确保它具有执行权限。
- 创建一个 .plist 文件来配置 launchd。
- 将 .plist 文件移动到 ~/Library/LaunchAgents/ 目录下。
- 使用 launchctl load 命令加载任务。
- 验证任务是否成功加载。
完成这些步骤后,你的 Shell 脚本将每隔 25 分钟在 macOS 上自动执行一次。