在 crontab 中调度脚本时出现错误错误替换

Sri*_*wer 3 linux cron substitution

a=$(iostat | awk 'FNR==4 {print $1}')
b=$(iostat | awk 'FNR==4 {print $2}')
c=$(iostat | awk 'FNR==4 {print $3}')
d=$(iostat | awk 'FNR==4 {print $4}')
e=$(iostat | awk 'FNR==4 {print $5}')
f=$(echo "scale=2;$a+$b+$c+$d+$e" | bc)
f=${f::-3}
echo $f >> /home/srikanth/tst
Run Code Online (Sandbox Code Playgroud)

这是我的代码。我是为了CPU负载而写的。我想在 crontab 中安排它每分钟运行一次。当我手动执行它时,它工作正常。但是当我在 crontab 中安排它时,它正在创建带有错误的 dead.letter

/home/srikanth/srk.sh: 7: /home/srikanth/srk.sh: 错误替换

谁能帮我摆脱这个困境

谢谢.....

sca*_*cai 6

Bad replacement ”听起来你的 shell 无法处理你的脚本。你用什么shebang ?我假设 cron 使用与您正在使用的不同的 shell 运行您的脚本,例如 dash 而不是 bash。

尝试将以下 shebang 添加到脚本的开头,看看它是否可以解决您的问题:

#!/bin/bash
Run Code Online (Sandbox Code Playgroud)