捕获由 && 链接的命令的输出/重定向

捕获由 && 链接的命令的输出/重定向

我有一系列命令 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

除了使用命令分组之外,{}您还可以在子 shell 中运行命令并立即捕获输出(和/或错误):

( 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

相关内容