我已经搜索、搜索、搜索...但我就是想不通为什么这个简单的 BASH 函数会失败。
代码:
# Function to quickly disable or enable proxy server, system wide
proxee() {
MODE=$(gsettings get org.gnome.system.proxy mode)
echo $MODE
if [ "$MODE" = "manual" ]
then
gsettings set org.gnome.system.proxy mode 'none'
echo "Proxy Disabled"
elif [ "$MODE" = "none" ]
then
gsettings set org.gnome.system.proxy mode 'manual'
echo "Proxy Enabled"
else
echo "FAIL"
fi
}
每次我尝试运行它时,我都会得到以下输出:
'none'
FAIL
我基本上只是想将我声明的变量与字符串文字进行比较。
我是 bash 脚本的新手,我已经从 Stack Overflow 阅读了超过 15 个不同的答案(这似乎是一个常见问题)——但我就是想不通!
非常感谢任何帮助。
最佳答案
命令gsettings get org.gnome.system.proxy mode
返回 'none'
包括引号 ( '
)。
因此您必须将它们包括在比较中:
...
elif [ "$MODE" = "'none'" ]
then
...
关于linux - BASH 变量与字符串的比较总是失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36652255/