LinuxSir.cn,穿越时空的Linuxsir!

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

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

 关闭 [复制链接]
 楼主| 发表于 2004-4-12 19:05:38 | 显示全部楼层
恩,有9会更通用些
 楼主| 发表于 2004-4-12 19:07:44 | 显示全部楼层

回复: 回复: And that one

最初由 r2007 发表
请仔细分析一下你的代码,这个疑问应该可以自己回答。在这先卖个关子,想想shell是如何处理管道两边的命令的?


想不出,
我只记得管道中所有进程好象都是并行,
由shell提供通信

再就不知道了
发表于 2004-4-12 19:11:07 | 显示全部楼层

回复: 回复: 回复: And that one

最初由 enruan 发表
想不出,
我只记得管道中所有进程好象都是并行,
由shell提供通信

再就不知道了

那么cat logfile时,logfile可能为空也可能有几行。
 楼主| 发表于 2004-4-12 19:18:22 | 显示全部楼层
你是说输出的是第一个错误,
然后,在sleep里,cat认为文件只有一行,
所以就只有一行,然后cat就结束了
等第二个错误传来时,cat以不在了,是吧?
 楼主| 发表于 2004-4-12 19:19:53 | 显示全部楼层
能告诉我,程序是怎么判断文件结束的吗?


  1. (make;date;sleep 5;make;date) 2>&1 >/dev/tty | tee logfile
复制代码


为什么这个没有像

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

的情况呢?
发表于 2004-4-12 23:59:55 | 显示全部楼层

  1. #!/bin/sh
  2. headit(){
  3.         while true;do
  4.                 tmpvar=$(fuser logfile)
  5.                 if [ -z "$tmpvar" ];then
  6.                         break
  7.                 fi
  8.         done
  9.         cat logfile
  10. }
  11. (make;date;sleep 5;make;date) 2>logfile | headit
复制代码
 楼主| 发表于 2004-4-13 15:42:09 | 显示全部楼层
不是吧,
04-12-2004 23:59
你还真能干,哈哈,谢了,先看看,不懂再问
 楼主| 发表于 2004-4-13 15:56:43 | 显示全部楼层
最初由 enruan 发表
恩,差不多明白一点儿了,
试一下这个命令就明白了
  1. make 2>1 1>/dev/null
复制代码


这个&根C语言里的取址差不多


这个代码是错的,5555

只把标准错误重定向到  1 ,唉@&^%#@%#$@^%$#
这个 1 只是个文件名,晕啊,自己真是太笨了
 楼主| 发表于 2004-4-13 15:59:52 | 显示全部楼层
最初由 home_king 发表

  1. #!/bin/sh
  2. headit(){
  3.         while true;do
  4.                 [color=red]tmpvar=$(fuser logfile)
  5.                 if [ -z "$tmpvar" ];then[/color]
  6.                         break
  7.                 fi
  8.         done
  9.         cat logfile
  10. }
  11. (make;date;sleep 5;make;date) 2>logfile | headit
复制代码


红的这两句是什么意思?
 楼主| 发表于 2004-4-13 16:33:26 | 显示全部楼层
版主好象去LFS论坛看过,

那就一起帮我看看这个吧,谢谢了
编译gcc-3.3.1时的标准错误输出的信息,请看看有什么不对的地方,谢谢

binutil还勉强算是编译完了
这个就死活不行了

这才是第二个包啊,
严重打击了我想用LFS的想法
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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