2013-03-04 47 views
0

我创建了一个名为“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 

如何在这种情况下使用阵列?请帮忙。

+2

你在'script.sh'的顶部有'#!/ bin/bash'吗? – chepner 2013-03-04 19:48:17

+1

...或者,也可以在你的crontab中使用'SHELL =/bin/bash'行,假设你的cron版本支持这个版本,大多数现代Linux发行版似乎... – twalberg 2013-03-04 19:53:34

+1

哦!是的,我没有添加#!/ bin/bash。感谢它现在的工作。 – vikash 2013-03-05 04:25:18

回答

1

脚本的第一行前补充一点:

#!/bin/bash 
0

,如果这个问题仍然有效,只是

bash script.sh 

运行脚本,我也与SH莫名其妙地试了一下它是不是与sh一起工作,但与bash它太阳光滑。