各ステータス チェック if ステートメントの exit ステートメントは、while ループを中断せず、実際にスクリプトを終了します。ループを中断してその $STATUS コードで終了するためにできることはありますか?
編集: コードを更新しましたが、まだ機能していません。ステータス チェック if ステートメントは正常にループを中断しますが、$EXIT_STATUS を評価しようとすると、スコープと関係がある可能性が高く、常に null になります。ここで何が欠けていますか?
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