Bash - 检查存储库是否存在

Bash - check if repository exists

我正在尝试创建 if 语句,该语句将检查名称为 X 的存储库是否存在,如果不存在 => 创建它。

编写了以下代码。它可以工作,但是当存储库不存在时,它会显示错误。我找不到在控制台中删除该错误的任何方法。让我使用 &>/dev/null 的方式不正确...

    myStr=$(git ls-remote https://github.com/user/repository);
    if [ -z $myStr ]
    then
        echo "OMG IT WORKED"
    fi

一旦你 completely silence git ls-remote 我会建议检查命令的退出代码 ($?) 而不是它的输出。

根据您的代码,您可以这样考虑一个函数:

check_repo_exists() {
    repoUrl=""
    myStr="$(git ls-remote -q "$repoUrl" &> /dev/null)";
    if [[ "$?" -eq 0 ]]
    then
        echo "REPO EXISTS"
    else
        echo "REPO DOES NOT EXIST"
    fi
}

check_repo_exists "https://github.com/kubernetes"
# REPO DOES NOT EXIST
check_repo_exists "https://github.com/kubernetes/kubectl"
# REPO EXISTS