標準出力と、標準エラー出力のメモ


よく忘れるのでメモ

>&2 で、対象の出力を標準エラー出力

$ (echo "err" >&2; echo "normal") > 01.txt
err
$ cat 01.txt
normal

2>&1 で 標準エラー出力の内容を標準出力へ

$ ((echo "err" >&2; echo "normal") 2>&1 )
err
normal

標準出力と、標準エラー出力を別々のファイルに保存

$ ((echo "err" >&2; echo "normal") ) 2> 02.txt > 01.txt
$ cat 01.txt 
normal
$ cat 02.txt 
err

標準エラー出力だけ、標準出力に出力

$ ((echo "err" >&2; echo "normal") ) 2>&1 > /dev/null
err

標準出力を、標準出力と、ファイルに出力

$ echo "test" | tee 01.txt
test
$ cat 01.txt
test

tee コマンドは標準入力をファイルと、テキストに出力する

複数の標準出力を1つにまとめる

$ { echo "test1"; echo "test2" } | cat -
test1
test2