bash - 为什么 conky 中的 execbar 不能使用变量
问题描述
conky 中的 execbar 似乎无法正常工作。
因此,如果我使用 bash 脚本(名为 myscript.sh)
# moc or mocp is Music on Console
totalsec=$(mocp --info | grep "TotalSec" | cut -d: -f2 | sed 's/^ //g' | sed 's/ $//g')
cursec=$(mocp --info | grep "CurrentSec" | cut -d: -f2 | sed 's/^ //g' | sed 's/ $//g')
progress=$(echo "(${cursec}*100/${totalsec})" | bc)
echo "\${execbar echo ${progress}}"
echo "${progress}" # This works and shows be the value of the integer variable.
然后使用 conky 调用 bash 脚本
conky.text = [[${execpi 3 ./myscript.sh}]];
然后不显示进度条。只有一个白色的矩形。
但是,如果将相同的 bash 脚本更改为
progress=23
echo "\${execbar echo ${progress}}"
然后它工作并显示一个恒定的23
. 不知道为什么传递整数变量不起作用。任何解决此问题的帮助将不胜感激。
解决方案
事实证明,execbar
可以使 bash 脚本工作。有点。
为了将问题集中在变量问题上,我制作了一个小脚本(myscript2.sh),它只获取当前时间的秒数以显示在栏中...
#!/bin/bash
progress=$(date --date='now' +%S)
echo \${execbar echo ${progress}}
...并且能够使用这个 conky 配置文件获得一个显示秒数的定期更新栏...
conky.config = {
alignment = 'top_left',
minimum_width = 300,
own_window = true,
own_window_hints = 'below',
own_window_type = 'desktop',
own_window_argb_visual=true,
own_window_transparent = true,
update_interval = 2.0,
}
conky.text = [[
${execpi 3 ./myscript2.sh}
]]
但是,conky 在显示条已填充到适当程度和显示条为空之间交替出现。换句话说,条形内容的显示闪烁着闪烁。呸。
作为替代方案,通过使用脚本 (myscript3.sh) 来简单地返回要在栏中显示的值...
#!/bin/bash
progress=$(date --date='now' +%S)
echo $progress
...并更改 conky 配置文件以使用execibar
而不是execpi
...
conky.config = {
alignment = 'top_left',
minimum_width = 300,
own_window = true,
own_window_hints = 'below',
own_window_type = 'desktop',
own_window_argb_visual=true,
own_window_transparent = true,
update_interval = 2.0,
}
conky.text = [[
${execibar 3 ./myscript3.sh}
]]
...它似乎按预期工作,没有任何闪烁。
推荐阅读
- node.js - Typescript 中的魔法类
- javascript - Mocha Chai with Nock:为什么在“after()”和“afterEach()”中进行清理时会出现超时错误?
- windows - 如何从 WSL(Linux 的 Windows 子系统)访问 aws 配置文件?
- c++ - Cmake 找不到创建的库(libgps)
- php - 添加到购物车下的自定义文本,但在 Woocommerce 中没有
- python - TensorFlow csv 数据集使用
- angular - compiler.js:485 未捕获错误:模板解析错误:无法绑定到“ngOutletContext”,因为它不是“ng-template”的已知属性
- java - Android In-app Subscriptions:面临测试应用内订阅的问题
- java - 如果 getter 被标记为同步,为什么这段代码会完成?
- java - Java:下载字符串 HTTP GET