Gostaria de enviar stdout de um processo para o stdin de outro processo, mas também para o console. Enviando stdout para stdout + stderr, por exemplo.
Por exemplo, eu tenho um git edit
alias para o seguinte:
git status --short | cut -b4- | xargs gvim --remote
Gostaria que a lista de nomes de arquivos fosse enviada para a tela e também para xargs
.
Então, existe algum tee
utilitário semelhante que faça isso? Para que eu possa fazer algo como:
git status --short | \
cut -b4- | almost-but-not-quite-entirely-unlike-tee | \
xargs gvim --remote
io-redirection
stdout
stdin
tee
Roger Lipscombe
fonte
fonte
/dev/stdout
é redirecionado. Ou seja, se você estivesse usandotee /dev/stdout
o efeito, tudo será enviadoxargs
duas vezes e nada será direcionado ao terminal./dev/stdout
não é redirecionado por um canal, ele permanecerá a saída padrão do processo atual. No entanto, se você encapsular o comando em um script e redirecionar o stdout desse script, ele/dev/stdout
será redirecionado. Em um console interativo,tee /dev/tty
etee /dev/stdout
tem o mesmo efeito, mesmo ao usar tubos.echo foo | tee /dev/stdout | tr f b
eecho foo | tee /dev/tty | tr f b
. Aqui está uma dica para você: É issotee
que interpreta o/dev/stdout
nome do arquivo.Uma solução mais geral que
/dev/tty
:fonte
start cmd:>
é seu$PS1
?PS1
, sim: hauke-laging.de/software/prompt (alemão)Você pode usar o comando tee , apenas alimente-o com o arquivo STDERR, como exemplo:
então, nesse caso, seu apelido talvez:
fonte
/proc/self/fd/2