如何正确设置isIosPublicVersion
?如果$os
,它应该评估为真
设置为ios
,$version
设置为公开。
isIosPublicVersion= [[ "${os}" == "ios" && "${version}" == "public" ]]
if [[ -n $upload ]] && [[ !$isIosPublicVersion ]]; then
echo "upload true"
else
echo "upload false"
fi
if case是否设置正确?
答案 0 :(得分:3)
[[
不会产生任何输出,因此您无法按照您的尝试分配变量。即使 生成输出,但您的语法也不正确,因为将命令输出分配给变量的方式是variable=$(command)
。
[[
的工作方式是在条件评估为true时返回成功,因此如果需要,可以使用临时布尔值,方法是将第一行更改为此类:
[[ "${os}" == "ios" && "${version}" == "public" ]] && isIosPublicVersion=1
if [[ -n $upload ]] && [[ $isIosPublicVersion -ne 1 ]]
或者,您可以使用函数:
isIosPublicVersion() { [[ "${os}" == "ios" && "${version}" == "public" ]]; }
if [[ -n $upload ]] && !isIosPublicVersion
函数的返回码等于已评估的最后一个命令的返回码。