我正在使用ksh。在此链接http://www.shelldorado.com/shelltips/advanced.html#redir上,有一个示例将stdout,stderr和两者保存到3个单独的文件中。
((./program 2>&1 1>&3 | tee ~/err.txt) 3>&1 1>&2 | tee ~/out.txt) > ~/mix.txt 2>&1
我试过了,但我收到了以下错误:
ksh: syntax error: `(' unexpected
请建议。
答案 0 :(得分:2)
对我来说非常有用:
$ ksh
$ ps | grep "$$"
6987 pts/6 00:00:00 ksh
$ cat program.sh
#!/bin/sh
echo "err" 1>&2
echo "out"
$ ((./program.sh 2>&1 1>&3 | tee err.txt) 3>&1 1>&2 | tee out.txt) > mix.txt 2>&1
$ cat out.txt
out
$ cat err.txt
err
$ cat mix.txt
err
out