我尝试通过传递用户名,密码来克隆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
如何在脚本中测试这些步骤是否成功?
答案 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
答案 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 ---
)