我正在尝试在 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 替换exec
它execp
才能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 号字体基本上毫无用处。希望这能澄清一切。