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
我正在尝试创建 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