如果是/ then / else shell脚本,则为true / false

时间:2017-04-17 10:46:02

标签: bash shell

这是我的剧本:

#!/bin/bash
result=$(xfconf-query -c xsettings -p /Gtk/ShellShowsMenubar)

if $result == "false" 
then 
   xfconf-query -c xsettings -p /Gtk/ShellShowsMenubar -n -t bool -s true
else
   xfconf-query -c xsettings -p /Gtk/ShellShowsMenubar -n -t bool -s false
fi

它不输出任何错误,但它也不起作用。

2 个答案:

答案 0 :(得分:4)

你的专栏:

if $result == "false"

尝试运行名为truefalse的命令,这两个命令都是bash中的有效关键字,因此您不会收到错误。额外的论据==false没有做任何有用的事情。

正在运行true会返回&#34;成功&#34;退出代码,因此当$resulttrue时,您的代码将遵循if分支,当它为false时,它将跟随else分支。< / p>

要测试字符串的值,请使用标准语法:

if [ "$result" = false ]

或特定于bash:

if [[ $result = false ]]
bash支持

==,但您也可以在任何地方使用标准运算符=

答案 1 :(得分:-4)

xfconf-query -c xsettings -p /Gtk/ShellShowsMenubar -T