2013-03-04 81 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它太陽光滑。