Gra*_*Fox 2 linux bash scripting if-statement
我已经搜索,搜索和搜索了......但我无法弄清楚为什么这个简单的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
}
Run Code Online (Sandbox Code Playgroud)
每次我尝试运行它时,我得到以下输出:
'none'
FAIL
Run Code Online (Sandbox Code Playgroud)
我基本上只是想将我声明的变量与字符串文字进行比较.
我是bash脚本的新手,我从Stack Overflow中读过15个不同的答案(这似乎是一个常见的问题) - 但我无法理解它!
任何帮助深表感谢.
该命令gsettings get org.gnome.system.proxy mode
返回'none'
包括引号('
).
因此,您必须将它们包含在比较中:
...
elif [ "$MODE" = "'none'" ]
then
...
Run Code Online (Sandbox Code Playgroud)