Saya ingin mengirim stdout dari satu proses ke stdin dari proses lain, tetapi juga ke konsol. Mengirim stdout ke stdout + stderr, misalnya.
Sebagai contoh, saya mendapatkan git edit
alias sebagai berikut:
git status --short | cut -b4- | xargs gvim --remote
Saya ingin daftar nama file yang akan dikirim ke layar juga xargs
.
Jadi, apakah ada tee
utilitas seperti yang akan melakukan ini? Sehingga saya bisa melakukan sesuatu seperti:
git status --short | \
cut -b4- | almost-but-not-quite-entirely-unlike-tee | \
xargs gvim --remote
io-redirection
stdout
stdin
tee
Roger Lipscombe
sumber
sumber
/dev/stdout
yang diarahkan. Artinya, jika Anda menggunakantee /dev/stdout
efeknya adalah bahwa semuanya dikirim kexargs
dua kali, dan tidak ada yang masuk ke terminal./dev/stdout
tidak dialihkan oleh pipa, itu akan tetap pada output standar proses saat ini. Namun, jika Anda merangkum perintah dalam skrip dan kemudian mengarahkan stdout skrip ini, maka/dev/stdout
akan diarahkan. Di konsol interaktif,tee /dev/tty
dantee /dev/stdout
memiliki efek yang sama, bahkan saat menggunakan pipa.echo foo | tee /dev/stdout | tr f b
danecho foo | tee /dev/tty | tr f b
. Inilah petunjuk untuk Anda: Ini adalahtee
yang mengartikan/dev/stdout
nama file.Solusi yang lebih umum daripada
/dev/tty
:sumber
start cmd:>
adalah Anda$PS1
?PS1
, ya: hauke-laging.de/software/prompt (Jerman)Anda dapat menggunakan perintah tee , cukup beri makan dengan file STDERR, sebagai contoh:
jadi dalam hal ini alias Anda mungkin:
sumber
/proc/self/fd/2