Conky 的 ${eval} 问题

Conky 的 ${eval} 问题

我正在尝试在 Conky 中使用 ${eval} 做一些事情,但即使是一个最小的例子也遇到了问题:

${eval ${exec echo '${font DejaVu Sans Mono :size=6}hey!'}}

据我所知,我相信我应该看到用“DejaVu Sans Mono”字体打印的字符串“hey!”,但我得到的输出却是这样的:

${font DejaVu Sans Mono :size=6}hey!

我希望能够像在终端中一样执行某些操作,然后将其解析为 Conky 语句。$eval 的整个想法不就是再次解析该字符串吗?如果是这样,是我做错了什么,是我误解了它的工作原理,还是这是 $eval 中的一个错误?

答案1

我不知道哪里出了问题${eval},Conky 聊天室中也没有人能向我解释,但是他们建议使用${execpi},它确实满足了我的要求 :)

答案2

我遇到了同样的问题。在您的示例中,您需要用 inside 替换execexecp才能eval按预期工作。

答案3

我认为你需要

${font DejaVu Sans Mono :size=6}${exec echo 'hey!'}

Conky 格式不像 HTML 那样嵌套。相反,您设置格式后,它会一直保留,直到您更改它为止。因此,我们首先设置字体和大小 ( ${font DejaVu Sans Mono :size=6}),然后告诉它要输出什么 ( ${exec echo 'hey!'}),在本例中是命令的输出echo 'hey'

所以,如果我把这个

 ${font DejaVu Sans Mono :size=6}${font DejaVu Sans Mono :size=20}${exec echo 'hey!'}

“hey” 会以 20 号字体打印,而 6 号字体基本上毫无用处。希望这能澄清一切。

相关内容