我想在Bash中执行一个长时间运行的命令,并且都捕获它的退出状态
所以我这么做:
command | tee out.txt
ST=$?
问题在于,变量ST捕获了tee
而不是命令。我怎么解决这个问题?
发布于 2018-02-07 07:25:17
结合PIPESTATUS[0]
以及执行exit
命令中,可以直接访问初始命令的返回值:
command | tee ; ( exit ${PIPESTATUS[0]} )
下面是一个例子:
# the "false" shell built-in command returns 1
false | tee ; ( exit ${PIPESTATUS[0]} )
echo "return value: $?"
会给你:
return value: 1
https://stackoverflow.com/questions/-100003464
复制相似问题