测试以确定git clone命令是否成功

时间:2014-11-06 04:15:49

标签: git bash bitbucket

我尝试通过传递用户名,密码来克隆git存储库。那是成功的。

但我的意图是我想知道git clone命令是否已执行。 如果没有,我想在shell脚本本身处理这种错误。

我的工作shell脚本:

cd ..
git clone https://username:password@bitbucket.org/username/repositoryname.git
cd repositoryname
git checkout branchname1
cd ..
mv repositoryname newfoldername
git clone https://username:password@bitbucket.org/username/respositoryname.git
cd repositoryname
git checkout branchname2
cd ..
mv repositoryname newfoldername

如何在脚本中测试这些步骤是否成功?

3 个答案:

答案 0 :(得分:11)

返回值存储在$?中。 0表示成功,其他表示错误。

some_command
if [ $? -eq 0 ]; then
    echo OK
else
    echo FAIL
fi

我还没试过用git,但我希望这有效。

答案 1 :(得分:2)

if some_command
then
  echo "Successful"
fi

实施例

if ! git clone http://example.com/repo.git
then
  echo "Failed"
else
  echo "Successful"
fi

请参阅How to detect if a git clone failed in a bash script

答案 2 :(得分:0)

这个应该可以工作(只需将你的脚本放在下面标有“---你的脚本---”的地方):

#!/bin/bash

# call your script with set -e to stop on the first error
bash <<EOF
set -e
--- your script here ---
EOF

# test status: I don't want this part to stop on the first error,
# and that's why use the HERE document above to wrap a sub-shell for "set -e"
if [ $? -eq 0 ]; then
  echo success
else
  echo fail
fi

或者,HERE文件可以替换为:

(
  set -e
  --- your script here ---
)