$* <>EOO # file cmd 0<<>>b 2>>>&c EOI cmd <<>>b 2>>>&c EOO $* <>EOO # out-merge1 cmd 1>&2 EOI cmd >&2 EOO $* <>EOO # out-merge2 cmd 1>&2 2>&1 2>a EOI cmd >&2 2>a EOO $* <>EOE != 0 # out-merge-fail1 cmd 1>&a EOI testscript:1:8: error: stdout merge redirect file descriptor must be 2 EOE $* <>EOE != 0 # out-merge-fail2 cmd 1>&1 EOI testscript:1:8: error: stdout merge redirect file descriptor must be 2 EOE $* <>EOE != 0 # out-merge-fail3 cmd 1>& EOI testscript:1:8: error: missing stdout file descriptor EOE $* <>EOO # err-merge1 cmd 2>&1 EOI cmd 2>&1 EOO $* <>EOO # err-merge2 cmd 1>&2 2>&1 >a EOI cmd >a 2>&1 EOO $* <>EOE != 0 # err-merge-fail1 cmd 2>&2 EOI testscript:1:8: error: stderr merge redirect file descriptor must be 1 EOE $* <>EOE != 0 # err-merge-fail2 cmd 2>&2 EOI testscript:1:8: error: stderr merge redirect file descriptor must be 1 EOE $* <>EOE != 0 # err-merge-fail3 cmd 2>& EOI testscript:1:8: error: missing stderr file descriptor EOE $* <>EOE != 0 # merge-fail1 cmd 1>&2 2>&1 EOI testscript:1:14: error: stdout and stderr redirected to each other EOE