Captura de saída / redirecionamento de comandos encadeados por &&

8

Eu tenho uma série de comandos a, b, c que estou encadeando com & & amp ;: a && b && c .

Eu quero pegar a saída de todos os comandos para stdout e stderr. a && b && c 2>&1 > capture_file apenas captura a saída do comando c.

    
por TLOlczyk 18.08.2015 / 03:14

2 respostas

8
{ a && b && c; } >capture_file 2>&1

Observe a ordem dos redirecionamentos: você precisa redirecionar a stdout primeiro.

    
por 18.08.2015 / 03:16
1

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:

( a && b && c ) >file.txt 2>&1

Exemplo:

$ ( echo foo && echo bar && echo baz && echos foo ) >check 2>&1

$ cat check
foo
bar
baz
No command 'echos' found, did you mean:
 Command 'echo' from package 'coreutils' (main)
echos: command not found
    
por 19.08.2015 / 00:13