2016-09-08 12 views
-1

完全なwhileループが正常に実行された後、「SUCCESS」を1回だけ印刷する方法。 何らかのエラーがループの中に発生した場合に、ループや印刷を終了はBashスクリプト:whileループでの印刷の成功または失敗

NOTEを「失敗」: - ループがある一方、私のコードはループで成功を毎回印刷し、私はちょうどそれを一度に印刷する、全体を一度されます成功し

+7

いくつかのコードを表示できますか? – Ahmad

+1

ブール値フラグまたはカウンタを使用する – cdarke

答えて

0
result='NOTHING TO DO' 
if <condition>; then 
    result=SUCCESS 
    while <same condition>; do 
    <task> 
    if <error condition>; then 
     result=FAILED 
    fi 
    done 
fi 
echo $result 

を実行する(これは、これまでFAILEDとしてタスク数を失敗し、NOTHING TO DOとしてwhileループの回数を入力して、少なくとも一回の作業を行うと、SUCCESSとしてすべての反復回数のためのタスクに成功しないことを前提としています。)

+0

非常に最初から ''が 'false'と評価された場合、これは何も表示されません。おそらく、 'result'は' while'ループの前に '' SUCCESS "'として一度だけ初期化するべきです。 –

+0

良い点!今修正されました。 – webb

+0

私はこれがいくつかのケースではうまくいくことを知っています。しかし、私の場合は、それがループに入る場合です。ループ中に何らかのエラーが発生した場合はどうなりますか?次に、失敗したとして結果を返し、すべてのループを正常に完了し、その後終了した場合、結果は成功として返されます。 – Rose

関連する問題