我正在尝试将变量与字符串进行比较,但我还没有找到方法,该变量是函数的结果,结果可以是“终端”或“服务器”,我可以毫无问题地打印,问题是我找不到将它与字符串进行比较的方法,这是我的代码:
function seleccionar(){
osascript <<EOT
set rTipo to the button returned of (display dialog "$1" buttons {"Terminal", "Servidor"} default button "Servidor")
if(rTipo = "Terminal")then
return rTipo
do shell script "echo 'type=terminal'> ~/Desktop/type.txt"
end if
if(rTipo = "Servidor")then
return rTipo
do shell script "echo 'type=servidor'> ~/Desktop/type.txt"
end if
EOT
}
value="$(seleccionar 'Selecciona el tipo de instalacion:')"
echo $value
我想像这样比较它:
if value == "Servidor ; then
if lsof -Pi :3306 -sTCP:LISTEN -t >/dev/null ; then #comprueba el puerto 3306
echo "El puerto 3306 ya se encuentra en uso"
exit 1
fi
fi
有什么办法吗?
补充您自己对问题的回答。
除了 [[ 您还可以使用 test 或 [ 例如,比较一个字符串,就像您所做的那样,
[[ "$value" = "Terminal" ]]
您可以使用以下相同的方式:test
并且[
是 bash 自己的命令的同义词。相反[[
,它是 [ 的更新版本,但它不可移植。有关这些命令的更多信息,您可以参考以下链接。
https://unix.stackexchange.com/questions/306111/what-is-the-difference-between-the-bash-operators-vs-vs-vs
https://unix.stackexchange.com/questions/306111/what-is-the-difference-between-the-bash-operators-vs-vs-vs
我找到了方法,这里有一个例子: