1

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

4

2 回答 2

0

这很好用,你解释得很好

于 2021-02-07T21:10:21.520 回答
0

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

但是,conky 有一个特殊的命令来测试文件是否存在,所以你应该使用它,例如:

${if_existing /home/viridian/conky.conf}  yes
${else}   ${goto 35}MOCEX : ${color}...
${endif}

于 2021-02-07T09:23:32.403 回答