標準出力を標準エラーに接続しますか?

標準出力を標準エラーに接続しますか?

あるプロセスの標準出力を別のプロセスの標準入力とコンソールに送信したいと思います。たとえば、stdoutをstdout + stderrに送信します。

git editたとえば、次のエイリアスがあります。

git status --short | cut -b4- | xargs gvim --remote

ファイル名のリストも画面に送信したいと思いますxargs

それでは、teeこれを行うことができる同様のユーティリティがありますか?これにより、次のことができます。

git status --short | \
    cut -b4- | almost-but-not-quite-entirely-unlike-tee | \
    xargs gvim --remote

答え1

tee以下を使用して現在のコンソールにコピーできます。tee /dev/tty

git status --short | cut -b4- | tee /dev/tty | xargs gvim --remote

/dev/stdoutまたは、またはを使用できますが、/dev/stderrコマンドがスクリプト内にある場合はリダイレクトできます。これは/dev/tty常にコンソールであることに注意してください(非対話型シェルにはないかもしれません)。間違った内容です。コメントを読んでください。

答え2

以下より一般的な解決策/dev/tty

start cmd:> echo foo | tee /dev/stderr 
foo
foo

答え3

あなたはそれを使用することができますティーコマンドを実行するには、STDERRファイルを入力してください。たとえば、次のようになります。

tee /dev/stderr
tee /proc/self/fd/2

したがって、この場合、エイリアスは次のようになります。

git status --short | \
    cut -b4- | tee /dev/stderr | \
    xargs gvim --remote

関連情報