2つのforループを使用する次のスクリプトがあります。何らかの理由で、それらは繰り返され、繰り返されません。
#! /bin/ksh
CURR_PATH='/main/nedcor/flexcube'
cd $CURR_PATH
for DIR1 in 'WIP' 'INPUT';do
echo $DIR1
for DIR in $(find . -name $DIR1);do
RESULT=`ls -A $DIR | egrep -v "BKUP|BKP"`
echo $DIR
echo $RESULT
echo $RESULT1
if [ -z "$RESULT" ] ;
then
echo "No Files found"
exit 0
else
echo file $RESULT found
exit 1
fi
done
done
答え1
exit
ループ内で使用しないでくださいfor
。これによりスクリプトが終了し、結果が1つだけ表示されます。を使用する必要がありますcontinue
。これにより、現在のループの継続を停止しますが、for
ループの次の要素に移動します。
2つのexit
ステートメントを交換すると、continue
探しているものと一致する非常に異なる動作を見つける必要があります。