我正在尝试检查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。无论程序是否已安装。如果不存在,我怎么能将其归还?
答案 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
中,并将其标准化为0
或1
。
话虽如此,你可以在第一次测试中使用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