2012-01-03 78 views
0

我想創建一個KornShell(ksh)腳本來檢查進程的狀態。 如果狀態是「通過」,它只會回顯「通過」。 如果狀態爲「失敗」,它將發送警報。KornShell檢查使用退出代碼

我能想到的方法有兩種:

  1. 捕獲進程狀態到一個臨時文件,在該文件中,並相應地採取行動

    例如搜索術語「合格」或「不合格」

    servicename > tmp.file 
    grep pass tmp.file 
    
    if exists, echo "pass" 
    
  2. grep的爲「通過」或「失敗」,並使用退出代碼用於其它操作

    例如

    servicename | grep pass 
    
    if exit $? = 0, echo "pass" 
    
    else do something 
    

你認爲上述兩種方法有什麼,你會如何處理呢? 任何代碼片斷將不勝感激。

+0

是否'servicename'設置其在失敗時退出狀態爲非零? – sarnold 2012-01-03 10:32:31

回答

1

假設servicename失敗時返回非零退出代碼,你可以這樣做:

if servicename > /dev/null 2>&1 
then 
    echo pass 
else 
    # do something 
fi 

如果servicename沒有正確設置它的退出代碼:

if servicename | grep -q pass 
then 
    echo pass 
else 
    # do something 
fi