Shell

ksh 根據值中斷並繼續

  • November 16, 2020

我在 KSH shell 中執行下面的腳本。我想執行循環6次來呼叫Java程序,如果沒有發現異常,那麼它應該返回= 0。如果在所有 6 次迭代中,我們發現任何異常,那麼它應該返回 3。

integer max=7;i=1

while [[ $i -lt $max ]]
do
   Java call statement;
   error_cnt=`$processing_file | grep -i excption | wc -l `
   if (( $error_cnt == 0 ))
   then
       return_code=0;
       break
   else
      Continue with java call 
   fi 
   (( i = i + 1 ))
done

如果在所有 6 次迭代中我們仍然發現異常,那麼它應該返回 3。

不要忘記定義$processing_file. 另外,您可以直接grep使用該文件

然後,如果沒有錯誤,則您將跳出循環,如果有錯誤則要跳出。然後,在您的循環中斷或完成後,您想要實際返回$return_code.

integer max=7;i=1
integer return_code=0

while [[ $i -lt $max ]]
do
   Java call statement;
   error_cnt=`grep -i exception $processing_file | wc -l`
   if (( $error_cnt != 0 ))
   then
       return_code=3;
       break
   # you don't need an else here, since continuing is the default
   fi
   (( i = i + 1 ))
done
# return with the code you specify
return $return_code

引用自:https://unix.stackexchange.com/questions/619317