LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: enruan

如何将标准错误输出重定向到一个文件的同时在屏幕上也显示,谢谢[基本解决]

 关闭 [复制链接]
 楼主| 发表于 2004-4-12 18:21:31 | 显示全部楼层

回复: Faint,why

最初由 enruan 发表

  1. root # [color=green](make;date;sleep 5;make;date) 2>logfile | cat logfile[/color]
  2. -bash: make: command not found
  3. root # [color=green]more logfile[/color]
  4. -bash: make: command not found
  5. -bash: make: command not found
复制代码


为什么前面只有一个错误输出,而logfile里却是两个,谢谢
发表于 2004-4-12 18:26:27 | 显示全部楼层
最初由 enruan 发表
这样不行,logfile 里只要2的,不要1的

command 2>logfile|tee
 楼主| 发表于 2004-4-12 18:26:51 | 显示全部楼层
最初由 home_king 发表
你是要看输出,为什么要把输出放到/dev/tty呢?这样不是很矛盾嘛?


[code]
exec 9>&1
cmd 2>&1 >&9 9>&- | tee logfile 9>&-
exec 9>&-


(make;date;sleep 5;make;date) 2>&1 >/dev/tty | tee logfile

对于父进程来讲,通常应该是以/dev/tty做标准输出的
这样就不用fd9了
 楼主| 发表于 2004-4-12 18:29:20 | 显示全部楼层
最初由 javalee 发表
command 2>logfile|tee


还是不行,这样就无法在屏幕上显示fd2的输出了
 楼主| 发表于 2004-4-12 18:30:50 | 显示全部楼层

回复: 回复: 晕,怎么成[已解决]了,还有没明白的东东啊

最初由 home_king 发表
sorry,在下今天下午要上课。
希望以后兄弟要耐心点,另外,要把问题说明白。
我是根据你的回复,而且你要求的功能的确已经实现了呀。才把帖子置成已解决的。如果有不对的地方,还请你多多包涵。我现在把它置回原状,ok。


Yes,sir!

我没别的意思,
就是没人理我,我湿着急,呵呵
发表于 2004-4-12 18:51:58 | 显示全部楼层

回复: 回复: 回复: 晕,怎么成[已解决]了,还有没明白的东东啊

最初由 enruan 发表
Yes,sir!

我没别的意思,
就是没人理我,我湿着急,呵呵

还没有人理你?! ....晕~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
 楼主| 发表于 2004-4-12 18:55:56 | 显示全部楼层

回复: 回复: 回复: 回复: 晕,怎么成[已解决]了,还有没明白的东东啊

最初由 javalee 发表
还没有人理你?! ....晕~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`


呵呵,不是啊,
很多人帮我,很感谢

在电脑上趴了一下午啊,我自己都睡着了
呵呵

我是说下午,可能你们也都去睡觉了吧
发表于 2004-4-12 18:57:07 | 显示全部楼层

回复: And that one

最初由 enruan 发表
root # (make;date;sleep 5;make;date) 2>logfile | cat logfile
-bash: make: command not found
root # more logfile
-bash: make: command not found
-bash: make: command not found

请仔细分析一下你的代码,这个疑问应该可以自己回答。在这先卖个关子,想想shell是如何处理管道两边的命令的?
 楼主| 发表于 2004-4-12 18:58:27 | 显示全部楼层
呵呵,好啊,你是哪儿人啊

能加你QQ吗?
发表于 2004-4-12 19:00:49 | 显示全部楼层
最初由 enruan 发表

  1. exec 9>&1
  2. cmd 2>&1 >&9 9>&- | tee logfile 9>&-
  3. exec 9>&-
复制代码


(make;date;sleep 5;make;date) 2>&1 >/dev/tty | tee logfile

对于父进程来讲,通常应该是以/dev/tty做标准输出的
这样就不用fd9了

如果不论父进程的标准输出重定向到何处都不与理睬,楼主的做法可行。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表