我正在尝试检查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
中捕获它并将其归一化为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