コマンドの後にコマンドを終了

コマンドの後にコマンドを終了

条件付きループを実行するときに次のコマンドを終了する方法は?私の条件は次のとおりです。 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

関連情報