每个状态中的 exit 语句检查 if 语句不会中断 while 循环并真正退出脚本。我可以做些什么来打破循环并使用 $STATUS 代码退出?
编辑:我已经更新了我的代码,但它仍然无法正常工作。如果语句成功中断循环,则状态检查,但是当我尝试评估 $EXIT_STATUS 时,它始终为空,可能与范围有关。我在这里想念什么?
if [ $RESTART -le $STEP ]; then
. tell_step
while read XML_INPUT; do
XML_GDG=`get_full_name $GDG_NAME P`
cp $XML_INPUT $XML_GDG
STATUS=$?
EXIT_STATUS=$STATUS
if [ $STATUS -ne 0 ]; then
break
fi
add_one_gen $XML_GDG
STATUS=$?
EXIT_STATUS=$STATUS
if [ $STATUS -ne 0 ]; then
break
fi
done < $XML_STAGE_LIST
echo $EXIT_STATUS
if [ $EXIT_STATUS -ne 0 ]; then
exit $EXIT_STATUS
fi
fi