条件付きループを実行するときに次のコマンドを終了する方法は?私の条件は次のとおりです。 echo 「見つかりません」と表示された場合は、そのループ以降のすべての項目が機能しないようにスクリプト全体を終了したいと思います。助けてください。私はUNIX初心者です。ありがとうございます。
if grep -q 'pattern' 'file';
then
echo "found"
else
echo "not found"
fi
答え1
これを行うには、コマンドを使用できますexit
。からman bash
:
終了[n]
シェルがn状態で終了するようにします。 nが省略された場合、終了ステータスは最後に実行されたコマンドのステータスです。 EXIT のトラップは、シェルが終了する前に実行されます。
if grep -q 'pattern' '/path/to/file'
then
echo "found"
else
echo "not found"
exit
fi
メモ:後で同じ行に別のコマンドを配置しない限り、最初の行の末尾にあるセミコロンは必要ありません。
if grep -q 'pattern' '/path/to/file'; then
echo "found"
else
echo "not found"
exit
fi
答え2
if grep -q 'pattern' '/path/to/file';
then
echo "found"
else
echo "not found"
exit 1
fi
編集する
選択する:
grep -q 'pattern' '/path/to/file'
grep_ec=$?
if [ "$grep_ec" -eq "0" ]; then
echo "found"
else
echo "not found"
exit $grep_ec
fi