gpt4 book ai didi

Bash:检查返回码时的 if 语句与 &&

转载 作者:行者123 更新时间:2023-11-29 09:41:54 25 4
gpt4 key购买 nike

我见过通常使用 if 语句检查返回代码:

if [ "${rc}" -ne 0 ]; then
echo "error"
exit 1
fi

我也很少看到利用 && 执行相同操作的检查:

[ "${rc}" -ne 0 ] && echo "error" && exit 1

除了可读性之外,两者之间还有区别吗?其中一个比另一个有优势吗?

最佳答案

尽管使用 echo 风险很小,但两者并不等同。第一个例子中,无论 echo 是否成功,exit 1 都会执行。在第二个例子中,echo 必须成功,exit 1 才能执行。 if 语句可以更准确地“翻译”为

[ "$rc" -ne 0 ] && { echo "error"; exit 1; }

如果您想使用 && 并且具有可读代码,请定义一个函数来生成错误消息并退出:

abort () {
echo "$1" >&2 # error messages go to standard error!
exit 1
}

[ "$rc" -ne 0 ] && abort "error"

关于Bash:检查返回码时的 if 语句与 &&,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56156218/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com