一連のコマンド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