基本的にSTDERRをSTDOUTにリダイレクトする関数を作成しようとしています。 私はそれのようなコマンドを実行することになると、リダイレクトに精通してる:STDERRデータをキャッチする関数
$ echo "all to out" >&2
all to out
$ echo "all to err" >&2
all to err
$ echo "err to out" 2>&1
err to out
$ echo "out to err" 1>&2
out to err
しかし、私がやろうとしているが、前のコマンドが送信されたすべてのデータをリダイレクトするために使用することができます関数を記述ですstderrに。このような何か:
$ echo -e "foo\nbar\nbaz\nquux" 1>&2 | COMMAND_HERE | grep bar
bar
私は機能でこれを持っていることを計画、直接コマンドラインから(作品)関数のソースを使用して、同じように簡単にする必要があります。
ここで私が試したいくつかのことは、仕事のどれもありません:私はそれは、その後、出力のみバーになりたかったよう2to
機能やtee
コマンドが働いた場合
$ function 2to1 { exec 2>&1; }
$ echo -e "foo\nbar\nbaz\nquux" 1>&2 | 2to1 | grep bar
foo
bar
baz
quux
$ echo -e "foo\nbar\nbaz\nquux" 1>&2 | tee >(cat 2>&1) | grep bar
foo
bar
baz
quux
。
私が見つけたカップルの記事/スレッドが多少データがあるコマンドを意味する(コマンドが実行されます前にリダイレクトとI混乱しない限り、私はコマンドが実行され後stderr
を見ることができるように文句を言わないことを意味するもの
任意の入力が感謝されます - ありがとう!