我看到通常使用if
语句检查返回码:
if [ "${rc}" -ne 0 ]; then
echo "error"
exit 1
fi
我还很少看到使用&&
进行相同检查的支票:
[ "${rc}" -ne 0 ] && echo "error" && exit 1
除了可读性之外,两者之间是否还有其他区别?一个人比另一个人有好处吗?
答案 0 :(得分:5)
两者并不相等,尽管使用exit 1
的风险很小。首先,echo
将执行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"
并且具有可读代码,请定义一个函数以产生错误消息并退出:
DECLARE var_month number; IF (INSERTING OR DELETING OR UPDATING) AND var_month <= 1 THEN