LinuxSir.cn,穿越时空的Linuxsir!

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

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

 关闭 [复制链接]
发表于 2004-4-11 22:04:20 | 显示全部楼层
我的环境中,也可以这样。
  1. <command> 2>logfile | cat - logfile
复制代码
发表于 2004-4-11 22:15:14 | 显示全部楼层
嗯,也是一种方法。
 楼主| 发表于 2004-4-12 09:26:13 | 显示全部楼层
最初由 r2007 发表
我的环境中,也可以这样。
  1. <command> 2>logfile | cat - logfile
复制代码



能解释一下吗?
发表于 2004-4-12 09:34:09 | 显示全部楼层
最初由 enruan 发表
能解释一下吗?

cat可以带多个文件参数,同时显示多个文件的内容。
"-"代表标准输入,logfile是管道前保存的标准错误文本。

ps:用gawk的好处还在于,可以对保存在logfile里的"标准错误"格式化输出,已区别"标准输出"。正如上面提及的,gawk是一个"中转器"。
 楼主| 发表于 2004-4-12 09:37:59 | 显示全部楼层

知道了

cat --help
...
...

With no FILE,or when FILE is -,read standard input.
 楼主| 发表于 2004-4-12 09:39:10 | 显示全部楼层
最初由 home_king 发表
cat可以带多个文件参数,同时显示多个文件的内容。
"-"代表标准输入,logfile是管道前保存的标准错误文本。

ps:用gawk的好处还在于,可以对保存在logfile里的"标准错误"格式化输出,已区别"标准输出"。正如上面提及的,gawk是一个"中转器"。


我不是太懂awk,不过,你要是乐意讲讲我也不反对,呵呵
发表于 2004-4-12 09:44:34 | 显示全部楼层
最初由 enruan 发表
我不是太懂awk,不过,你要是乐意讲讲我也不反对,呵呵

Gawk手册
http://www.linuxsir.cn/forum.php ... 7&highlight=awk
 楼主| 发表于 2004-4-12 10:21:27 | 显示全部楼层

回复: 再谢

不过,我还是想知道如果我不想要标准输出的东西,只要2的能做到吗?  

<command> 2>logfile | gawk '{print}END{while((getline<"logfile">0))print}'
<command> 2>logfile | cat - logfile



对不起,我没把问题说明白,我现在只关心2的不关心1的,所以我认识要管道符没用,
而且,我想要的是即时的输出,(不想对着一动不动的屏幕干坐着)
这一点,以上两种实现都没有做到,可以用以下命令试一下

(make;sleep 5;make) >/dev/null 2>logifle | gawk '{print}END{while((getline<"logfile">0))print}'
(make;sleep 5;make) >/dev/null 2>logifle | cat - logfile

所以,上面的两种实现对我来说,与下面这两个应该是没什么区别

<command> 2>logfile ;  gawk '{print}END{while((getline<"logfile">0))print}'
<command> 2>logfile ;  cat - logfile



请版主,还有高手们再给条出路,谢谢
很想知道,谢谢
 楼主| 发表于 2004-4-12 10:28:25 | 显示全部楼层
上面的 >/dev/null 只表我的目的,在这里没有什么实际作用
发表于 2004-4-12 10:35:05 | 显示全部楼层

exec 9>&1
cmd 2>&1 >&9 9>&&#8722; | tee logfile 9>&&#8722;
exec 9>&&#8722;

用r2007兄的命令即可。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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