2014-02-27 16 views
0

我從4列表中獲取數據。如果所有4列都有某種數據(不是空的),那麼它正在工作。如果有的話,其中一列是空的,那麼它會拋出一個錯誤。從表中取出文件的名稱並將文件保存在服務器的一個目錄中,並且該文件正在通過電子郵件發送。如何處理shell腳本中的異常?

我需要做的是,假設一列爲空,其他3列不爲空,那麼它應該發送剩餘的文件,而不是發生錯誤。

回答

3

假設你使用bash,你可以使用||。和& &條件,因爲在bash中沒有try/catch。例如:

Run command2 if command1 fails: 
command1 || command2 

Run command2 if command1 is successful: 
command1 && command2 
1

要檢查最後的命令使用的返回代碼該變量:$?

例如:

echo "abc" > /dev/null 
echo $? 

返回0這意味着沒有錯誤

當你有錯誤:

cat /etc/shadow 
cat: /etc/shadow: Permission denied 
echo $? 

回報1這是錯誤,通常每一個非零返回碼是錯誤的。