如何在bash脚本中检测git clone是否失败

Jus*_*tin 15 linux git bash shell

如何判断git clonebash脚本中是否有错误?

git clone git@github.com:my-username/my-repo.git
Run Code Online (Sandbox Code Playgroud)

如果有错误,我想简单地说exit 1;

Jo *_* So 23

这是一些常见的形式.哪个是最好的选择取决于你做什么.您可以在单个脚本中使用它们的任何子集或组合,而不会出现错误的样式.


if ! failingcommand
then
    echo >&2 message
    exit 1
fi
Run Code Online (Sandbox Code Playgroud)
failingcommand
ret=$?
if ! test "$ret" -eq 0
then
    echo >&2 "command failed with exit status $ret"
    exit 1
fi
Run Code Online (Sandbox Code Playgroud)
failingcommand || exit "$?"
Run Code Online (Sandbox Code Playgroud)
failingcommand || { echo >&2 "failed with $?"; exit 1; }
Run Code Online (Sandbox Code Playgroud)


Joh*_*ter 7

你可以这样做:

git clone git@github.com:my-username/my-repo.git || exit 1
Run Code Online (Sandbox Code Playgroud)

或者执行:

exec git clone git@github.com:my-username/my-repo.git
Run Code Online (Sandbox Code Playgroud)

后者将允许克隆操作接管shell进程,如果失败,则返回错误.你可以在这里找到更多关于exec的信息.


Kal*_*hal 6

方法一:

git clone git@github.com:my-username/my-repo.git || exit 1
Run Code Online (Sandbox Code Playgroud)

方法二:

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
Run Code Online (Sandbox Code Playgroud)