あるプロセスの標準出力を別のプロセスの標準入力とコンソールに送信したいと思います。たとえば、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