-
結果をファイルに記録する
sh, bash など
% program > file.log
csh, tcsh など
% program > file.log -
標準エラー出力も記録する
sh, bash など
% program > file.log 2>&1
csh, tcsh など
% program >& file.log -
標準出力と標準エラー出力を別のファイルにリダイレクト
sh, bash など
% program > file.log 2> errors.log
csh, tcsh など
% (program > file.log) >& errors.log -
コマンドの結果を別のコマンドに渡したい
sh, bash など
% program | other_program
csh, tcsh など
% program | other_program -
エラー出力も渡したい
sh, bash など
% program 2>&1 | other_program
csh, tcsh など
% program |& other_program -
画面を見ながらその結果を片っ端から記録したい
sh, bash など
% program 2>&1 | tee file.log
csh, tcsh など
% program |& tee file.log注) tee とは 標準入力からデータを読み込み、その内容を指定された
ファイルと 標準出力に出力するコマンドです。 -
画面を見ながらその結果を標準出力と標準エラー出力を分けて記録したい。
(shではできない。zshで出来ることを確認。)
% make > LOG.stdout 2> LOG.stderr >& /dev/tty
こっちは LOG.stdoutに両方書き込まれる。
% make > LOG.stdout 2> LOG.stderr |& tee -
画面を操作しながらその結果を片っ端から記録したい
script(1)コマンドは、シェルによらず動作出来るので、とても有用です。
% script file.log
これで画面への入力及び出力の全てを file.log に記録する事が出来ます。
ただし、Enter/C-p/C-nなどのシェルに対するキー入力も、コントロール
コードとして そのまま記録されてしまいます。
file.logへの記録を終えたいときは exitしてください。 -
screen を使ってログを残す方法
“$PREFIX_KEY H"でログ取り開始。
~/screenlog.0が作られる。
“$PREFIX_KEY H"でログ取り終了。
stdout と stderror まとめ
[ 当日のツイート
]