シェルスクリプトから前のコマンドの出力を読み取るには? [コピー]

シェルスクリプトから前のコマンドの出力を読み取るには? [コピー]

「成功的に完了」または「完了失敗」で終わるシェルスクリプトでコマンドを実行しました。スクリプトからどのように読み、条件ifと組み合わせて使用​​できますか?else

答え1

この試み:

your_command | \
tee >(sleep; [[ `tail -n1` =~ 'completed successfully' ]] && echo OK || echo NOTOK)

説明する:

  1. teeyour_command出力を(i)>(...)と(ii)の2つに分割します。stdout
  2. sleep:(オプション)1秒ほど待ってから1s必要なものに変更してください。
  3. tail -n1: 最後の行の抽出
  4. =~:テストを一致させ、必要に応じてテストを変更します。
  5. echo OKecho NOTOK:例だけで、必要に応じて変更してください。

関連情報