linux – 链中的命令失败了什么?
发布时间:2020-12-14 00:01:58 所属栏目:Linux 来源:网络整理
导读:我们考虑以下代码: a b c decho "Command {xyz} ended with exit code $?" 如果一切顺利,它很简单,因为所有命令都返回0的退出代码.但是如果遇到非零退出代码,是否可以说,哪个命令返回它并打破了链 – 即. {xyz}应该是什么? PS.我知道我可以使用嵌套的条件
我们考虑以下代码:
a && b && c && d echo "Command {xyz} ended with exit code $?" 如果一切顺利,它很简单,因为所有命令都返回0的退出代码.但是如果遇到非零退出代码,是否可以说,哪个命令返回它并打破了链 – 即. {xyz}应该是什么? PS.我知道我可以使用嵌套的条件语句,但链接结构非常清晰易懂 – 我只想为它添加一些分析. 解决方法
你可以尝试类似的东西:
{ a; status1=$?; } && { b; status2=$?; } echo "status1=${status1},status2=${status2}" 如果您不需要在命令的stdout中打印输出,可以考虑这样的事情: run_and_check() { eval "$@" >/dev/null 2>&1 # you could replace /dev/null by a log file echo $? } status1=$(run_and_check "a") && status2=$(run_and_check "b") echo "status1=${status1},status2=${status2}" 但与第一种更通用且危险性更小的解决方案相比,我们并没有节省太多;) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |