我希望获得“状态124”,但使用以下代码获得“状态0”
timeout 10 sleep 20 | tee -a LOG_FILE LOG_FILE2
RET=$?
echo $RET
通过使用此代码,我得到了“状态0”。
我希望得到“状态124”。
这段代码发生了什么
答案 0 :(得分:1)
$?
保存最后一个管道的退出状态。使用PIPESTATUS
获取前台管道的退出状态(在本例中为timeout
命令)。
$ timeout 10 sleep 20 | tee -a LOG_FILE LOG_FILE2
$ RET=${PIPESTATUS[0]}
$ echo ${PIPESTATUS[0]}
124 # timed out
男子bash
PIPESTATUS :一个数组变量(请参见下面的Array),其中包含最近执行的前台管道(可能仅包含一个命令)中进程的退出状态值的列表。 / p>