Stdoutをあるプロセスから別のプロセスのstdinだけでなく、コンソールにも送信したいのですが。たとえば、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
tee
はtee /dev/tty
を使用して現在のコンソールに複製できます
git status --short | cut -b4- | tee /dev/tty | xargs gvim --remote
または、 これは間違っています。コメントを読んでください。/dev/stdout
または/dev/stderr
を使用することもできますが、コマンドがスクリプト内にある場合はリダイレクトされます。 /dev/tty
は常にコンソールになることに注意してください(非インタラクティブシェルには存在しない場合があります)。
/dev/tty
よりも一般的なソリューション:
start cmd:> echo foo | tee /dev/stderr
foo
foo
teeコマンドを使用できます。例として、STDERRファイルを入力するだけです。
tee /dev/stderr
tee /proc/self/fd/2
その場合、あなたのエイリアスは多分:
git status --short | \
cut -b4- | tee /dev/stderr | \
xargs gvim --remote