2012-09-05 32 views
1

爲了將腳本輸出記錄到文件中,我在shell腳本的頂部附近添加了以下命令。這工作沒有問題,當我運行該腳本爲我的用戶,JSMITH,但是當腳本運行在一個crontab根,我收到一個錯誤:exec命令的Linux shell腳本語法錯誤

syntax error near unexpected token: 

exec &> >(tee $LOG_PATH$TIMESTAMP.log) 

我有兩個$ LOG_PATH和$ TIMESTAMP正確定義在命令之上:

LOG_PATH="/home/jsmith/script/logs/" 
TIMESTAMP="$(date -d "today" +"%Y-%m-%d-%H:%M")" 

任何想法?謝謝!

回答

1

通常,Linux具有多種shell(sh,csh,dash,bash等),它們有細微的語法差異。你可能用bash測試你的腳本,而crontabs是用破折號執行的。

我建議你如下:

  1. 檢查什麼外殼腳本需要(着眼於第一線)
  2. 告訴cron來使用該shell,即在你的crontab的開頭設定SHELL=/bin/my_shell(詳情請參閱manpage)。
+0

謝謝,我會試試看。我的腳本需要bash(#!/ bin/bash) – littleK