我想在Bash中执行一个长时间运行的命令,并且都捕获它的退出状态
所以我这么做:
command | tee out.txt
ST=$?
问题在于,变量ST捕获了tee
而不是命令。我怎么解决这个问题?
发布于 2018-02-07 09:00:39
任何PIPESTATUS读物@会删除内容。如果计划检查所有管道命令的状态,则将其复制到另一个数组。“$?”与“${PIPESTATUS”的最后一个元素的值相同。@}“,并且阅读它似乎会破坏”${PIPESTATUS“@“}”,但我还没有完全证实这一点。
declare -a PSA
cmd1 | cmd2 | cmd3
PSA=( "${PIPESTATUS[@]}" )
如果管道处于子壳中,这将无法工作。
https://stackoverflow.com/questions/-100003464
复制相似问题