2013-10-17 89 views
9

我有一個腳本runonce.sh通過cron調用另一個腳本setup.sh。我們認爲這種情況是「TERM環境變量未設置」的理想情況。在runonce.sh腳本的輸出中可見。如何刪除「TERM環境變量未設置」

現在我面臨一個問題,那就是當調用setup.sh時,另一個第三個簡單腳本 - upgradeAndTest.sh,那個時候「TERM環境變量未設置」。在upgradeAndTest.sh腳本的輸出中可見。爲什麼如此..?

此外,如果我將setup.sh的stderr重定向到調用腳本中的stdout,那麼還會出現「TERM環境變量未設置」。顯示在控制檯上。

任何一個可以幫助我從調用腳本的stdout中刪除此行..?

回答

25

通過cron運行需要終端的程序可能會導致問題;當它由cron運行時,它不會有終端。

在有疑問的情況下,雖然,確保變量在腳本中設置,添加一行:

export TERM=${TERM:-dumb} 

如果環境變量TERM已經設置,這是一個空操作。如果不是這樣,它會將終端設置爲一個具有最小能力的標準終端 - 這可滿足抱怨TERM未被設置的程序。

+0

偉大的解決方案,非常乾淨。謝謝! –