일련의 명령 a,b,c가 있고 이를 && a && b && c
:로 연결합니다.
모든 명령의 출력을 stdout 및 stderr로 캡처하고 싶습니다.
a && b && c 2>&1 > capture_file
c 명령의 출력만 캡처합니다.
답변1
{ a && b && c; } >capture_file 2>&1
리디렉션 순서에 유의하세요. 먼저 표준 출력을 리디렉션해야 합니다.
답변2
명령 그룹화를 사용하는 것 외에도 {}
서브셸에서 명령을 실행하고 출력(및/또는 오류)을 즉시 캡처할 수 있습니다.
( a && b && c ) >file.txt 2>&1
예:
$ ( 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