Dan*_*Dan 2 macos bash shell terminal cron
我正在运行 macoS Ventura (13.1)。Bash 是我的默认 shell。请耐心等待 - 我仍然是一个 shell 菜鸟。
我的系统上有一个存储在文件中的 shell 脚本。我可以从终端成功运行 shell 脚本:
sh ~/Documents/4\ Project\ Folders/Shell\ Script\ Project\ Files/cronjob_test.sh
在几次不成功的运行之后,我删除了一些代码来简化它 - 但仍然没有什么乐趣。这是简化的脚本:
#! /bin/bash
DEVICE_NAME="MBP "
# Get battery percent charge
BATTERY_PERCENT=55
# Append to log
timestamp() {
date +"%Y-%m-%d %H:%M:%S"
}
TIMESTAMP=$(timestamp)
echo "$TIMESTAMP,$DEVICE_NAME,$BATTERY_PERCENT,Cronjob Test" >> ~/crontab_log.csv
exit 0
Run Code Online (Sandbox Code Playgroud)
当我按上述方式运行脚本时,新的 csv 行将添加到 crontab_log.csv 中。但是当我尝试从 crontab 调用这个脚本时,我收到一个错误,这是来自mail:
bin/bash: /Users/nadnosliw/Documents/4 Project Folders/Shell Script Project Files/cronjob_test.sh: Operation not permitted
如果你能帮我解决这个问题那就太棒了!谢谢阅读。
以下是我从 crontab 调用脚本的失败尝试(每 4 小时一次):
0 */4 * * * bash ~/Documents/4\ Project\ Folders/Shell\ Script\ Project\ Files/battery_check.sh
0 */4 * * * bin/bash ~/Documents/4\ Project\ Folders/Shell\ Script\ Project\ Files/battery_check.sh
0 */4 * * * sh ~/Documents/4\ Project\ Folders/Shell\ Script\ Project\ Files/battery_check.sh
0 */4 * * * ~/Documents/4\ Project\ Folders/Shell\ Script\ Project\ Files/battery_check.sh
Run Code Online (Sandbox Code Playgroud)
我希望该脚本能够被执行,并将一行新数据添加到我的 csv 文件中。
根据这个问题[/sf/ask/2185191851/]我也尝试过:
chmod +x ~/Documents/4\ Project\ Folders/Shell\ Script\ Project\ Files/cronjob_test.sh #! /bin/bash
echo "running"
Run Code Online (Sandbox Code Playgroud)
仍然收到同样的错误:
sh: /Users/nadnosliw/Documents/4 Project Folders/Shell Script Project Files/cronjob_test.sh: Operation not permitted