我有一个有限的busybox单元,只有/ bin / sh,所以没有bash并且没有PIPESTATUS
尝试运行命令:
upgrade.sh 2>&1 | tee -a log.log | udplogger
现在,我需要获取upgrade.sh的退出代码,才能继续进行其他升级或停止。
任何想法如何?在bash上,您有pipestatus,在这里我可以得到第一个命令的结果,但是只有/ bin / sh我不知道。
谢谢
如果您可以在子Shell中执行该管道,可以使用这样的重定向:
{ status=$( { { upgrade.sh 2>&1; echo $? >&4; } | tee -a log.log | udplogger >&3; } 4>&1 ); } 3>&1
echo $status
您可以拆分流吗?
up_out=$(upgrade.sh 2>&1)
up_status=$1
echo "${up_out}" | tee -a log.log | udplogger
echo "${up_status}"