Linux   发布时间:2022-05-08  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 链中的命令失败了什么?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我们虑以下代码:

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}"

但与第一种更通用且危险性更小的解决方案相比,我们并没有节省太多;)

大佬总结

以上是大佬教程为你收集整理的linux – 链中的命令失败了什么?全部内容,希望文章能够帮你解决linux – 链中的命令失败了什么?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:它很简单