原帖由 "shaoping0330" 发表:
8、 cmd >a 2>a 和 cmd >a 2>&1 为什么不同?
cmd >a 2>a :stdout和stderr都直接送往文件 a ;
cmd >a 2>&1 :stdout直接送往文件a ,stderr是继承了FD1的管道之后,再被送往文件a 。
我想:他们的不同点在于:
cmd >a 2>a 相当于使用了两个管道;
而cmd >a 2>&1 只使用了一个管道。
从IO效率上来讲,cmd >a 2>&1 效率应该更高!
原帖由 "一梦如是" 发表:
Solaris 8下测试不能用此法恢复,请教该怎么恢复?
对我来说太难了,一点都看不懂。 请教一下,如何把错误即输出到屏幕,有输出到文件 〔但普通输出不要输出到文件〕?
原帖由 "shaoping0330" 发表:
exec 4>&1
cmd1 2>&1 1>&4|tee -a ufile
exec 4>&-
如果加两个条件:
(1)要求cmd1和cmd2并行运行;
(2)将cmd1的返回值赋给变量 ss。
则为:
exec 3>&1;exec 4>&1
ss=$(((ls you no 2>&1 1>&3 3>&-;echo $? >&4)|egrep \* >file) 4>&1)
exec 3>&-;exec 4>&-
原帖由 "shaoping0330" 发表:
cmd >a 2>a :stdout和stderr都直接送往文件 a ,a文件会被打开两遍,由此导致stdout和stderr互相覆盖。
cmd >a 2>&1 :stdout直接送往文件a ,stderr是继承了FD1的管道之后,再被送往文件a ?.........
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) | Powered by Discuz! X3.2 |