我有一个包含一个单词“绿色”、“黄色”或“红色”的文件(该文件通过 cron 作业更新。
我想使用该颜色在 Conky 中显示文本。实际文本将保持不变,但颜色将根据该文件更新。有人知道怎样实现这一点吗?谢谢!
答案1
创建一个输出以下内容的 bash 脚本${color yourcolor}
:
#!/bin/bash
read -r </path/to/color-file color
echo -n '${color '$color'}'
并在 conky 中运行它(每 10 秒一次):
${execpi 10 /path/to/script.sh} 此处为彩色文本 {color}
类似嵌套的东西${color ${head -1 /path/to/color-file}}
也可能有效。
答案2
请注意,你需要 execp 或 execpi 来执行上述操作,因为 exec 和 execi 不会解析脚本的输出
execp:执行 shell 命令并在 conky 中显示输出。警告:这比其他变量占用更多的资源。我建议用 C 编写所需的行为并发布补丁。这与 $exec 不同,因为它解析命令的输出,因此您可以在脚本中插入 ${color red}hi!${color} 之类的内容,并让 Conky 正确解析它。注意事项:Conky 每次循环时都会解析并评估 $execp 的输出,然后销毁所有对象。如果您尝试在 $execp 语句中使用类似 $execi 的任何东西,它将以与 $execp 语句运行相同的间隔运行,因为它在每个间隔被创建和销毁。
这也适用于简单地对文件进行 cat 操作,例如:
${execpi 15 cat /path/to/file.log}