测试语句和conky变量



我想让conky变量只"打开";在一定条件下。我尝试了如下的测试语句

${exec test -e /home/viridian/conky.conf && echo "yes" || echo "${goto 35}MOCEX : ${color}${fs_used /home/viridian/mocex}/${fs_size /home/viridian/mocex} ${alignr}${fs_used_perc /home/viridian/mocex}% ${fs_bar 4,100 /home/viridian/mocex}"}

实际上应该发生的是,我将复制的conf文件放在目录中,它将显示"yes"。这部分是有效的。当我将它移出时,它将显示我已经布局的变量。这行不通。它是不可能显示这样一个变量还是我做错了什么?

$exec的输出不会被conky解析,因此您不能在回显中使用$color这样的命令,因为它只会显示为文本"$color"。在您的示例中,您实际上看不到任何东西,因为shell正在抱怨${fs_used /home/viridian/mocex}的语法,因为它将其解释为变量替换(${variable/pattern/replacement})。你应该用单引号而不是双引号。

然而,conky有一个特殊的命令来测试文件是否存在,所以你应该使用它,例如:
${if_existing /home/viridian/conky.conf}  yes
${else}   ${goto 35}MOCEX : ${color}...
${endif}

效果很好,你解释得很好

最新更新