测试语句和 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 文件放在目录中,它会显示“是”。这部分有效。当我将其移出时,它将显示我布置的变量。这不起作用。不能以这种方式显示变量还是我做错了什么?

解决方法

$exec 的输出没有被 conky 解析,所以你不能在 echo 中使用像 $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}

,

效果很好,你解释得很好