我创建了一个名为“script.sh”的shell脚本,它读取数组元素并在终端上打印它。该脚本如下:shellscript的数组声明在计划的cron作业中不起作用?
arr=("hello" "world")
for i in ${arr[@]}
do
echo $i;
done
它详细介绍了在终端执行它预期的输出即的“Hello World”,但如果我在crontab作业调度在相同的脚本得到自动执行每分输出存储在另一个文件,作业失败并给出
/home/vikash/script.sh: 1: Syntax error: "(" unexpected
错误。
crontab的任务执行脚本的每一分钟,并存储在另一个文件中的输出如下:
* * * * * $HOME/script.sh >> $HOME/output.log 2>&1
如何在这种情况下使用阵列?请帮忙。
你在'script.sh'的顶部有'#!/ bin/bash'吗? – chepner 2013-03-04 19:48:17
...或者,也可以在你的crontab中使用'SHELL =/bin/bash'行,假设你的cron版本支持这个版本,大多数现代Linux发行版似乎... – twalberg 2013-03-04 19:53:34
哦!是的,我没有添加#!/ bin/bash。感谢它现在的工作。 – vikash 2013-03-05 04:25:18