如何在Bash脚本中判断git clone
是否出错?
git clone git@github.com:my-username/my-repo.git
如果有错误,我只想简单地使用exit 1
退出;以下是一些常见的表单。选择哪种最好取决于你做什么。你可以在单个脚本中使用它们的任何子集或组合,而不会出现不良样式。
if ! failingcommand
then
echo >&2 message
exit 1
fi
failingcommand
ret=$?
if ! test "$ret" -eq 0
then
echo >&2 "command failed with exit status $ret"
exit 1
fi
failingcommand || exit "$?"
failingcommand || { echo >&2 "failed with $?"; exit 1; }
你可以这样做:
git clone git@github.com:my-username/my-repo.git || exit 1
或者执行它:
exec git clone git@github.com:my-username/my-repo.git
如果克隆操作成功,后者将允许shell进程被接管;如果失败,则返回错误。您可以在此处了解更多关于exec的信息。
exit 1
?我尝试过:|| echo "ERROR message here" && exit 1
,但它总是退出,即使成功了。谢谢。 - Justinfailingcommand || { echo message && exit 1; }
,因为 &&
的优先级不如 ||
。然后最好使用 failingcommand || { echo message; exit 1; }
。 - Jo So方法一:
git clone git@github.com:my-username/my-repo.git || exit 1
if ! (git clone git@github.com:my-username/my-repo.git) then
exit 1
# Put Failure actions here...
else
echo "Success"
# Put Success actions here...
fi
exit
时,不带参数的exit
和exit $?
是相同的。 - jordanmecho
调用本身修改。因此,简单的exit
将以零状态退出。 - Nemo