Bash

「bash -x sample.sh」のデバッグ情報は標準エラー出力に出力されている

シェルスクリプト内で実行されたコマンドとその結果をすべて出力してくれるのがbash-xオプション。「わざわざロギングをコーディングするほどではないが、とはいえログが何もないのはなんとなく気が引ける」場合、あるいは「書いたシェルスクリプトをデバッグしたい」場合などにわたしはよく使います。

さてbash -x sample.shとターミナルに打ち込んだとして、出力される情報をターミナルで目検するだけではなく、ログファイルなどに保存しておきたいという場合にはどうすればよいでしょうか?

答えは簡単。bash -xが吐き出すデバッグ情報は実のところ標準エラー出力に出力されています。よってそのデバッグ情報をファイルに保持したいという場合は、たとえば以下のようにして標準エラー出力を目的のファイルへリダイレクトしてやればよいということになります。

bash -x sample.sh &> sample.log

以上、ちょっとしたTIPSでした(´・ω・`)