次のスクリプトを実行したいと思います。
私には「キャット」があります。 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
ゼロ以外の終了状態で終了した場合を返します。