Shell 判断结果

大神,

如下问题:


make -j8  2>&1 | tee  $LOG_FILE_PATH/build.log                                                                                               
make_result=$?
    

make_result 的结果一直是0 , $? 返回了 tee $LOG_FILE_PATH/build.log 的结果,而不是make的结果,现在想即定向 log文件又返回结果,这个怎么搞?

阅读 4.1k
1 个回答

$?返回的是上一个执行命令的返回值。
在使用pipe的情况下,可以使用PIPESTATUS这个内置的数组变量。
你这里的make是第一个就使用${PIPESTATUS[0]}就可以了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进