我希望获得"状态124",但使用以下代码获得"状态0"
timeout 10 sleep 20 | tee -a LOG_FILE LOG_FILE2
RET=$?
echo $RET
我通过使用此代码获得了"状态0"。
我希望获得"状态124"。
此代码中发生了什么
$?
保留最后一个管道的退出状态。使用PIPESTATUS
获取前景管道的退出状态(在这种情况下,timeout
命令)。
$ timeout 10 sleep 20 | tee -a LOG_FILE LOG_FILE2
$ RET=${PIPESTATUS[0]}
$ echo $RET
124 # timed out
男人bash
pipestatus :一个数组变量(请参见下面的数组),其中包含来自最执行的前景管道中流程的退出状态值列表(仅包含一个单个命令)。<<<<<<<<<<<<<<<<<</p>