今日やったこと

bash でスクリプトを実行した際に、コンソール出力をログファイルにも記録するコマンド

./script.sh 2>&1 | tee -a app.log

学んだこと

./script.sh 2>&1 | tee -a app.log のそれぞれのコマンドの意味について

  • ./script.sh : スクリプトを実行する
  • 2>&1: エラー出力も通常出力に混ぜる
  • | 左側の出力を右側のコマンドに渡す
  • tee -a app.log: 画面に表示しつつ、app.log に追記する

やっていること

  1. script.sh を実行する
  2. 通常出力 stdout と エラー出力 stderr をまとめる
  3. まとめた出力を tee に渡す
  4. tee が画面に表示する
  5. 同時に app.log に追記する

Linux / Bash では、出力には主に次の種類がある

番号 名前 意味
0 標準入力 キーボード入力など
1 標準出力 通常の出力
2 標準エラー出力 エラーや警告の出力