ksh 根据值中断并继续

ksh 根据值中断并继续

我正在 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。

答案1

不要忘记定义$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

相关内容