2012-01-12 53 views
0

我正在使用solaris 10並使用bash shell。爲什麼crontab有時需要shell路徑?

我有一個shell腳本,我手動運行它工作正常。

/shellscriptfullpath.sh

我已經加入同樣以crontab然後它停止工作。

後來我已經添加了shell路徑作爲第一個命令並進行了測試,它開始工作。

#!/bin/bash

我的一些腳本的運行無殼路徑也。

有什麼區別?

回答

1

在cron中添加腳本時,腳本會在默認shell(主要是csh或ksh)中執行 爲了避免這種情況,您必須添加第一行,說明您需要哪個shell。

+0

對於某些腳本,我沒有添加仍在運行的路徑。 – 2012-01-12 07:12:54

+0

如果你使用了一些shell特定的語法,那麼你將面臨問題。示例數組在bash中受支持,但在csh中不受支持。在bash和csh中導出變量的方式也不同 – Raghuram 2012-01-12 07:14:48

+1

沒有使用shebang('#!...')的腳本由'/ bin/sh'執行,它可能是也可能不是bash或ksh的符號鏈接。這是在內核中實現的,而不是由cron實現的。 – 2012-01-12 07:38:40

相關問題