シェルスクリプトのエラー抑制

シェルスクリプトのエラー抑制

次のスクリプトを実行したいと思います。

私には「キャット」があります。
result=command $i |awk '{print $2}' ## 正確な答えを出すことも、「コマンドが見つかりません」などのエラーを与えることもできます。
echo "$i - $result"  
完璧

それぞれについて$i以下を印刷したいと思います。

$i - $result # 成功した場合
$i - NO RESULT# コマンドが見つからないというエラーが発生した場合

ベストアンサー1

while read -r cmd; do
    result=$( command $cmd 2>/dev/null || echo "Just a boring error" )
    printf '%s\t- %s\n' "$cmd" "$result"
done

Readはシェルの標準入力から1行ずつ読みます。を使用しようとすると、ループの一部が実行される前にプロセスを終了する必要がありますfor cmd in $(cat)cat上記のループを使用すると、ラインが標準入力に達すると各反復が完了します。

このresult変数はコマンド置換の出力を取得します。コマンド置換は、コマンドの出力を返すか、echoコマンドが$cmdゼロ以外の終了状態で終了した場合を返します。

おすすめ記事