&&で接続されたコマンドの出力/リダイレクトキャプチャ

&&で接続されたコマンドの出力/リダイレクトキャプチャ

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

関連情報