检查xCode的安装是否始终返回true

时间:2015-05-06 21:31:26

标签: linux bash

我正在尝试检查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

总是返回true。无论程序是否已安装。如果不存在,我怎么能将其归还?

1 个答案:

答案 0 :(得分:1)

您的代码的工作版本是:

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返回值反转,因为shell中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