2017-07-03 17 views
0

IF条件のシェルスクリプトの処理を停止しようとしています。シェルスクリプトを終了しない

output7=${output7##*[[:space:]]} 

if [[ $output4 -gt 0 && $output5 -gt 0 && $output6 -gt 0 && $output7 -gt 0 ]] 
then echo 'Success' 
else echo 'Failure'|| exit 0 
fi 

echo 'Process Completed' 

次のメッセージも表示されていますが、次の文も実行されています。出力は次のとおりです。

Failure 
Process Completed 

誰もがスクリプトを終了しない理由を教えてください。

答えて

2

ここでの問題は、あなたがされていない、「echo 'Failure'が、その後exit 0を失敗した場合、」何をしたいと言っているということです。あなたは望むでしょう

echo 'Failure' 
exit 1 

代わりに。セクション全体の慣用的なBashスタイルは次のようになります。

if [[ $output4 -gt 0 ]] && [[ $output5 -gt 0 ]] && [[ $output6 -gt 0 ]] && [[ $output7 -gt 0 ]] 
then 
    echo 'Success' 
else 
    echo 'Failure' 
    exit 1 
fi 
関連する問題