检查XCode的安装始终返回true



我正在尝试检查Xcode的安装。这个:

function xCodeCheck(){
    if xcode-select -p; then
        return 1
    else
        return 0
    fi
}
if xCodeCheck -eq 1; then
    echo "it's here"
else
    echo "it's not here"
fi

始终返回真实。无论是否安装程序。如果不存在的话,如何返回false?

您的代码的工作版本是:

function xCodeCheck(){
    if xcode-select -p; then
        return 0
    else
        return 1
    fi
}
if xCodeCheck; then
    echo "it's here"
else
    echo "it's not here"
fi

请注意,我倒了0/1返回值,因为外壳中的0的退出/返回状态为true,其他所有内容都是false

说整个包装功能都是毫无意义的。

您可以很容易地写:

xCodeCheck() {
    xcode-select -p
}

并让xCodeCheck直接返回xcode-select的返回值,而不是在if中捕获它并将其归一化为01

说您可以在第一个测试中只使用xcode-select -p

if xcode-select -p; then
    echo "it's here"
else
    echo "it's not here"
fi

如果您想保留手动返回,并且手动值检查您的原始代码将需要写为:

function xCodeCheck(){
    if xcode-select -p; then
        return 1
    else
        return 0
    fi
}
if xCodeCheck; [ $? -eq 1 ]; then
    echo "it's here"
else
    echo "it's not here"
fi

相关内容

  • 没有找到相关文章

最新更新