Chinaunix
标题:
如何记录管道符左边命令的退出码?【已解决】
[打印本页]
作者:
xhx321
时间:
2009-05-23 18:14
标题:
如何记录管道符左边命令的退出码?【已解决】
如下的代码:
1: make all | tee log
2: ???? # How to get the exit code of command 'make'?
由于在编译的时候想看到编译进度,所以这里用了 tee, 而没用重定向。
在第二行代码处,想知道make是否成功了。
不知该如何实现?
请高手帮忙!!
[
本帖最后由 xhx321 于 2009-5-23 23:04 编辑
]
作者:
tianlijian
时间:
2009-05-23 18:37
make && success=true
[
本帖最后由 tianlijian 于 2009-5-23 18:39 编辑
]
作者:
xhx321
时间:
2009-05-23 18:46
标题:
回复 #2 tianlijian 的帖子
现在是想把 make 的log既在屏幕上显示,有能保存到一个叫log的文件里。
然后到第2行的代码处,能知道前面 make 的退出码是什么。
作者:
ztj2247
时间:
2009-05-23 19:00
想实时的看进度 又想保存日志的话 用 make all | tee log
然后 tail -f log 就可以实时的看到编译进度了
还有那个状态不知道你说的是啥哦。。是 echo $? ?吗?
作者:
deepalley
时间:
2009-05-23 19:05
echo $? 返回的是上一个命令的状态码,应该是tee的,不是make的,所以建议你不用tee,>>到文件 ,然后tail -f 那个文件吧
作者:
xhx321
时间:
2009-05-23 19:09
标题:
回复 #4 ztj2247 的帖子
对啊!就是$? 但它记录的是上一次命令,没什么表达式能记上上次的吧?呵呵!
作者:
xhx321
时间:
2009-05-23 19:16
标题:
回复 #5 deepalley 的帖子
只是因为,在使用过程中觉得tail的方式不够直观,所以才提这个问题的!
另外,别人用这个脚本时,会看见脚本执行一段后,停在那了(make的过程中屏幕上无输出),不知道是不是脚本出错了,造成别人的误解。
作者:
deepalley
时间:
2009-05-23 19:20
标题:
回复 #7 xhx321 的帖子
恩,再等等其它人有什么更好的办法,学习学习...
作者:
寂寞烈火
时间:
2009-05-23 20:01
http://bbs.chinaunix.net/viewthr ... p;page=1#pid3647972
作者:
xhx321
时间:
2009-05-23 22:56
标题:
回复 #9 寂寞烈火 的帖子
The exit codes are provided in the PIPESTATUS special array.
cmd1 exit code is in ${PIPESTATUS[0]}, cmd3 exit code in
${PIPESTATUS[2]}, so that $? is always the same as
${PIPESTATUS: -1}.
问题解决,谢谢!
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2