Eu tenho uma série de comandos a, b, c qual estou encadeamento em conjunto com &&: a && b && c
.
Eu quero pegar a saída de todos os comandos para stdout e stderr.
a && b && c 2>&1 > capture_file
captura apenas a saída do comando c.
shell
io-redirection
TLOlczyk
fonte
fonte
2>&1
significa duplicar o destino de stdout (1) para stderr (2), por isso seria inútil, a menos que você tenha configurado o redirecionamento stdout anteriormente.2>capture_file >&2
(mas não, porque isso não é idiomático). O importante é que você redirecione um deles para o arquivo antes de duplicar esse fluxo no outro.Além de usar o agrupamento de comandos,
{}
você também pode executar os comandos em um subshell e capturar a saída (e / ou erro) de uma só vez:Exemplo:
fonte