stderrとstdoutを別のファイル記述子にリダイレクトする

stderrとstdoutを別のファイル記述子にリダイレクトする

exec 6>&1ファイル記述子1〜6をコピーします。

しかし、stderrとstdout(1と2)をファイル記述子6にコピーする方法は?

答え1

stdoutを6にリダイレクトし、stderrをstdoutにリダイレクトします(したがって、さらに6にリダイレクトされます)。

command >&6 2>&1

答え2

2つのファイル記述子を1つにリダイレクトすることはできませんが、1つのファイルを指す2つのファイル記述子を使用できます。

exec 1>./all.txt
exec 2>./all.txt

答え3

以下を試してください。

command &>&6

&>filename  
    # Redirect both stdout and stderr to file "filename."  
    # This operator is now functional, as of Bash 4, final release.  
M>&N  
    # "M" is a file descriptor, which defaults to 1, if not set.  
    # "N" is another file descriptor.  

関連情報