GIT,检查命令的返回码(bash脚本)

时间:2015-06-25 11:14:12

标签: git bash

我正在开发一个大型项目,它在许多存储库中被拆分。

我正在考虑制作一个小的bash脚本来迭代并检查每个存储库中的特定远程或本地分支或标记,如果由于分支不存在而失败,则有第二个选项标记/存储库的结帐。

#!/bin/bash
printf "\n ### Checkout Tag ### \n \n"

for repo in rep1 rep2 ...
do

checkout $1 
(check if that fails somehow, and if it fails, checkout $2)

done

printf "\n ### DONE ### \n \n"

exit 0

或者,您有其他想法吗?

谢谢

2 个答案:

答案 0 :(得分:2)

#!/bin/bash
printf "\n ### Checkout Tag ### \n \n"

for repo in rep1 rep2 ... ; do
    checkout $1
    if [[ $? != 0 ]]; then
        checkout $2
        if [[ $? != 0 ]]; then
            echo "Failed to checkout $1 and $2"
        fi
    fi
done

printf "\n ### DONE ### \n \n"
exit 0

答案 1 :(得分:1)

您无需手动检查返回代码。只需使用||连接命令即可。

#!/bin/bash
printf "\n ### Checkout Tag ### \n \n"

for repo in rep1 rep2 ...
do
    checkout $1 || checkout $2 || echo "Error"
done

printf "\n ### DONE ### \n \n"

exit 0
仅当先前失败时,

||才会执行以下命令。 把它想象成"其中一个命令必须成功"。如果第一个成功,你很好,不必检查以下内容。

仅当前一个成功时,

&&才会执行以下命令。 把它想象成"所有命令都必须成功"。如果第一个失败,您已经丢失,无需检查以下内容。

在我看来,这个解决方案比接受的答案更清晰,更容易。