首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么conky中的execbar不能使用变量

在conky中,execbar是一个用于执行命令并显示其输出的功能。然而,execbar不能直接使用变量的原因是因为conky的执行顺序和变量赋值的顺序不同。

在conky中,变量的赋值是在配置文件的顶部进行的,而execbar的执行是在配置文件的底部。这意味着当execbar执行时,变量的值可能还没有被赋值,导致无法使用变量。

为了解决这个问题,可以使用${execpi}命令来代替execbar,并结合使用conky的定时器功能。${execpi}命令可以在每次conky刷新时执行命令,并将其输出作为变量的值。

下面是一个示例配置,演示如何使用${execpi}命令和定时器来实现类似execbar的功能:

代码语言:txt
复制
conky.config = {
    -- 其他配置项
    update_interval = 1,  -- 刷新间隔,单位为秒
}

conky.text = [[
    ${execpi 1 echo ${cpu} | cut -d'.' -f1}%
    ${execpi 1 echo ${memperc} | cut -d'.' -f1}%
    ${execpi 1 echo ${fs_used_perc /} | cut -d'.' -f1}%
    ${execpi 1 echo ${execi 10 sensors | grep 'Core 0' | awk '{print $3}'}}

    -- 其他文本输出
]]

在上面的示例中,${execpi 1}命令用于执行命令,并将其输出作为变量的值。1表示每秒执行一次命令。${cpu}${memperc}${fs_used_perc /}${execi 10 sensors | grep 'Core 0' | awk '{print $3}'}是一些示例变量,用于展示如何使用变量。

需要注意的是,由于conky的执行顺序是从上到下,所以在使用${execpi}命令时,要确保相关的变量已经被赋值。另外,为了保证conky的性能,建议适当调整刷新间隔和命令执行频率。

希望以上解答能够帮助你理解为什么conky中的execbar不能使用变量,并提供了一种替代方案。如果你对conky的其他功能或者云计算领域的其他问题有进一步的了解需求,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

为什么阿里强制 boolean 类型变量不能使用 is 开头?

,后者是包装类,为什么不推荐使用isXXX来命名呢?...开发手册中就写明了,强制规定,布尔类型数据,无论是boolean还是Boolean都不准使用isXXX来命名 对于非boolean类型参数,getter和setter方法命名规范是以get和set...1.其实javaBeans规范对这些均有相应规定,基本数据类型属性,其getter和setter方法是getXXX()和setXXX,但是对于基本数据布尔类型数据,又有一套规定,其getter...工作中使用基本类型数据好还是包装类好 咱们举个例子,一个计算盈利系统,其盈利比例有正有负,若使用了基本类型bouble定义了数据,当RPC调用时,若出现了问题,本来应该返回错误,但是由于使用了基本类型...其实阿里java开发手册对于这个也有强制规定: 因此,这里建议大家POJO中使用包装数据类型,局部变量使用基本数据类型。

80120

Javastatic用法,static、public为什么不能修饰局部变量?

人为规定,记住就好。 其实这些变量都之所以叫局部变量,其作用域也只限于声明它方法体内。在方法被调用时,这些局部变量获得内存空间,到方法执行结束时,他们所占据内存空间就被释放。 用完就释放。...静态变量在类加载时候创建,随着类消失而消失。 2.调用方式不同 成员变量只能被对象调用。 静态变量能被对象调用,也能被类名调用。 3.别名不一样 成员变量叫实例变量。...静态变量叫类变量。 4.数据存储不一样 成员变量储存在堆内存对象,也叫对象特有数据。 静态变量储存在方法区静态区,所有也叫对象共享数据。...静态方法不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法是可以访问静态成员方法/变量。当然静态可以访问静态,非静态可以访问非静态。...可以直接通过类名来访问,访问语法为: 类名.静态方法名(参数列表…) 类名.静态变量名 static代码块 static代码块在jvm加载类时候会自动执行,但是static代码块不能在方法内

2.6K10

为什么在静态方法不能使用this

看到这个标题读者,在你们心里多多少少都有自己答案,下面说一下我答案....在JVM运行时数据区中有个虚拟机栈(或Java栈),在它里面是由栈帧'叠加'而成.栈帧由局部变量表,操作数栈,动态连接,方法返回地址等组成. 那么我们就从局部变量表角度解答下这个问题....= 12; String address = "Jiangsu"; System.out.println(address); } 执行编译,如下 查看字节码,如下 详细看下两个方法局部变量表...query方法局部变量表,如下 shadow方法局部变量表,如下 我们发现,非静态方法shadow局部变量表中有this,而在静态方法query局部变量没有this....因此也就解答了文章开头提出问题. 在普通方法,在它局部变量第一个槽存放了this, 而静态方法局部变量没有存放this.

1.9K30

为什么ArrayList集合不能使用foreach增删改?

使用自己Itr内部类,并且实现了Iterator接口 迭代器本质是先调用hasNext()方法判断存不存在下一个元素,然后再使用next()方法取下一个元素 ?...因为它在remove元素1之后,它size - 1变成1,然后Itr内部cursor变量由0变成1 此时1 = 1,循环结束,所以成功了。...arraylist2为什么remove失败呢,因为他在循环第二次时候,也remove成功了,但是第三次判断next时候cursor值为2导致不等于现在size 1,所以执行了next方法,最重要来了...,之前remove操作导致ArrayListmodCount值加1,然后Itr类expectedModCount保持不变,所以会抛出异常。...同理可得,由于add操作也会导致modCount自增,所以不允许在foreach删除、增加、修改ArrayList元素。

70210

为什么ArrayList集合不能使用foreach增删改?

找到ArrayList类iterator()方法 使用自己Itr内部类,并且实现了Iterator接口 迭代器本质是先调用hasNext()方法判断存不存在下一个元素,然后再使用next()方法取下一个元素...因为它在remove元素1之后,它size - 1变成1,然后Itr内部cursor变量由0变成1 此时1 = 1,循环结束,所以成功了。...arraylist2为什么remove失败呢,因为他在循环第二次时候,也remove成功了,但是第三次判断next时候cursor值为2导致不等于现在size 1,所以执行了next方法,最重要来了...,之前remove操作导致ArrayListmodCount值加1,然后Itr类expectedModCount保持不变,所以会抛出异常。...同理可得,由于add操作也会导致modCount自增,所以不允许在foreach删除、增加、修改ArrayList元素。

71930

为什么Java成员变量不能被重写?成员变量在Java能够被重写么?不会重写成员变量,而是隐藏成员变量访问隐藏域方法

我们看下面这个例子,我们创建了两个子对象,一个使用是子对象引用,一个使用是父对象引用。...Paste_Image.png 按照我们已有的多态概念,第二个应该是输出sub才对,但却输出了super。这是为什么呢?...意思就是: 在一个类,子类成员变量如果和父类成员变量同名,那么即使他们类型不一样,只要名字一样。父类成员变量都会被隐藏。在子类,父类成员变量不能被简单用引用来访问。...其实,简单来说,就是子类不会去重写覆盖父类成员变量,所以成员变量访问不能像方法一样使用多态去访问。...访问隐藏域方法 就是使用父类引用类型,那么就可以访问到隐藏域,就像我们例子代码 就是使用类型转换System.out.println(((Super)c1).s); 翻译自http://www.programcreek.com

3.5K40

Sql 变量使用

很简单,直接把上面代码日期改一下就可以了。...那我们先来看一下 Mysql 数据库怎么设置变量,以下是在 Mysql 设置变量day几种写法: set @day = "2019-08-01"; set @day := "2019-08-01"...; select @day := "2019-08-01"; 注意,如果使用 select 关键词进行变量赋值时,不可以使用 = 号,因为会默认把它当作比较运算符,而不是赋值,但是用关键词 set 进行变量赋值时是可以直接用...我们再来看看Hql(Hive-sql)变量赋值怎么设置,变量赋值时候也是用关键词 set,在变量引用那里和 Mysql 稍有不同,需要多加一个参数 hiveconf。...hiveconf:day} and time3 = ${hiveconf:day} and time4 = ${hiveconf:day} 以上就是关于 Mysql 和 Hql 这两种数据库变量使用方法

11.4K50

解决QProcess使用setProcessEnvironment环境变量不能生效问题

使用QProcess运行进程时,为了方便使用运行程序,直接使用程序名字运行。但是这时候需要设置环境变量。可是使用 setProcessEnvironment怎么设置也不能设置成功。...不能正确使用环境变量代码 QProcess* myProcess = new QProcess(this); QProcessEnvironment env = QProcessEnvironment..." + env.value("PATH")); myProcess->setProcessEnvironment(env); myProcess->start("App.exe"); 可以正确设置环境变量代码...", path.toStdString().c_str()); myProcess->setProcessEnvironment(env); myProcess->start("App.exe"); 为什么会这样...虽然它确实改变了生成过程环境, 但是却无法设置搜索可执行文件环境。 怎么正确设置可执行文件环境变量使用 qgetenv与 qputenv设置。

2.6K30

MySQL变量定义和变量赋值使用

说明:现在市面上定义变量教程和书籍基本都放在存储过程上说明,但是存储过程上变量只能作用于begin…end块,而普通变量定义和使用都说比较少,针对此类问题只能在官方文档才能找到讲解。...2、以declare关键字声明变量,只能在存储过程中使用,称为存储过程变量,例如: declare var1 int default 0; 主要用在存储过程,或者是给存储传参数。...注意上面两种赋值符号,使用set时可以用“=”或“:=”,但是使用select时必须用“:=赋值” 用户变量与数据库连接有关,在连接声明变量,在存储过程创建了用户变量后一直到数据库实例接断开时候...在此连接声明变量无法在另一连接中使用。 用户变量变量形式为@varname形式。 名字必须以@开头。 声明变量时候需要使用set语句,比如下面的语句声明了一个名为@a变量。...全局变量作用于server整个生命周期,但是不能跨重启。即重启后所有设置全局变量均失效。要想让全局变量重启后继续生效,需要更改相应配置文件。

8.2K41

nextline函数_在JAVAScannernext()和nextLine()为什么不能一起使用

很好实现 …… 就继续在这里记录一下 Scanner 坑吧 一、next & nextLine 区别next不能得到带有空格字符串 一定要读到有效字符后才可以结束,结束条件是碰到空格、tab 键、...: 输入 1: 2 abc cba 结果 1: str[0] = “abc” str[1] = “cba” 原因:next() 方法在遇到有效字符前所遇到空格、tab 键、enter 键都不能当作结束符...输入 2: 2 abc cba efg gfe 结果 2: str[0] = “abc” str[1] = “cba” 原因:next() 方法在遇到有效字符前所遇到空格、tab 键、enter 键都不能当作结束符...回车符 “\r” 它被丢弃在缓冲区,现在缓冲区,只有一个 \r ,于是 下一次 nextLine 扫描时候就又扫描到了 \r,返回它之前内容,也是啥都没有 “” ,然后再把 \r 去掉, 对于...这个扫描器在扫描过程判断停止依据就是“结束符”,空格,回车,tab 都算做是结束符 而坑点在于 next 系列,也就是下面这些函数:next nextInt nextDouble nextFloat

2.6K10

在vuev-for,key为什么不能用index?

写在前面在前端,主要涉及基本上就是 DOM相关操作 和 JS,我们都知道 DOM 操作是比较耗时,那么在我们写前端相关代码时候,如何减少不必要 DOM 操作便成了前端优化重要内容。...、控制转移到了框架内部,那么在学会使用框架后,如果想要更加深入学习框架,那就需要搞懂框架封装底层原理,其中非常核心一部分就是虚拟DOM(virtual DOM)什么是虚拟 DOM简而言之,就是通过...DOM 更新操作Vue 源码 diff 算法patch.js 路径Vue diff 算法相关代码主要在 patch.js 文件,路径如下图图片patch 函数图片1、如果新节点不存在(vnode...,如果定义属性非常多的话,触发更新将会导致非常大性能损耗,因此,在使用 v-for 时候,建议使用类似 id 这种唯一标识字段替代 index,避免不必要性能损耗!...,体会到了前端对于性能极致追求,通过通读 vdom 源码,基本能够从更加深刻角度去理解采用 VDOM 目的,以及 key 值在 diff 算法真正作用,也能够从更加底层角度理解为什么不推荐使用

1K10

在vuev-for,key为什么不能用index?4

写在前面在前端,主要涉及基本上就是 DOM相关操作 和 JS,我们都知道 DOM 操作是比较耗时,那么在我们写前端相关代码时候,如何减少不必要 DOM 操作便成了前端优化重要内容。...、控制转移到了框架内部,那么在学会使用框架后,如果想要更加深入学习框架,那就需要搞懂框架封装底层原理,其中非常核心一部分就是虚拟DOM(virtual DOM)什么是虚拟 DOM简而言之,就是通过...DOM 更新操作Vue 源码 diff 算法patch.js 路径Vue diff 算法相关代码主要在 patch.js 文件,路径如下图图片patch 函数图片1、如果新节点不存在(vnode...,如果定义属性非常多的话,触发更新将会导致非常大性能损耗,因此,在使用 v-for 时候,建议使用类似 id 这种唯一标识字段替代 index,避免不必要性能损耗!...,体会到了前端对于性能极致追求,通过通读 vdom 源码,基本能够从更加深刻角度去理解采用 VDOM 目的,以及 key 值在 diff 算法真正作用,也能够从更加底层角度理解为什么不推荐使用

1K50

为什么 Vuex mutation 和 Redux reducer 不能做异步操作?

(() => { state.count++ }) } } 现在想象,我们正在 debug 一个 app 并且观察 devtool mutation 日志。...然而,在上面的例子 mutation 异步函数回调让这不可能完成:因为当 mutation 触发时候,回调函数还没有被调用,devtools 不知道什么时候回调函数实际上被调用——实质上任何在回调函数中进行状态改变都是不可追踪...Redux 先从Redux设计层面来解释为什么Reducer必须是纯函数 如果你经常用React+Redux开发,那么就应该了解Redux设计初衷。...所以整个Redux都是函数式编程范式,要求reducer是纯函数也是自然而然事情,使用纯函数才能保证相同输入得到相同输入,保证状态可预测。...所以Redux有三大原则: 单一数据源,也就是state state 是只读,Redux并没有暴露出直接修改state接口,必须通过action来触发修改 使用纯函数来修改state,reducer

2.8K30

为什么你写拦截器不能注入Java bean?

这时候就需要提供一个验证token有效性接口,在拦截器验证token,由于拦截器是Spring提供,因此很容易想到使用@Component注解将拦截器注成一个 bean。...然后使用@Autowired注解将验证token类注入到拦截器进行验证。...明明代码写没问题,为什么不能正常注入TokenUtil呢?...token业务类,然后在初始化拦截器时候将业务类通过构造器带入拦截器,这样就不用把拦截器注成Spring Bean对象了。...这是一种错误做法。我们需要保证是在WebMvc配置类添加拦截器是Spring 一个bean对象,也就是说我们需要将拦截器注成一个bean,同时将这个bean添加WebMvc配置类

88430

为什么 GROUP BY 之后不能直接引用原表

为什么 GROUP BY 之后不能直接引用原表(不在 GROUP BY 子句)列 ? 莫急,我们慢慢往下看。...通过上图,相信大家也都能看到,这里不做更深入讲解了,有兴趣可以去查相关资料。 为什么聚合后不能再引用原表列   很多人都知道聚合查询限制,但是很少有人能正确地理解为什么会有这样约束。...阶"行集合",此时,行属性便不能使用了。...SQL 世界其实是层级分明等级社会,将低阶概念属性用在高阶概念上会导致秩序混乱,这是不允许。此时我相信大家都明白:为什么聚合后不能再引用原表列 。...SELECT 子句中不能直接引用原表原因;   3、一般来说,单元素集合属性和其唯一元素属性是一样

1.7K10

Python变量定义使用和特点

变量使用可以分为三个步骤来和大家讲解一下,一是定义变量、二是如何使用变量、三是总结变量特点,下面我们就来用代码一个一个说明一下吧。...一、定义变量 语法: 变量名 = 值 注意变量命名规范,一般个人习惯是用小驼峰命名和下划线 myName = ‘Python自学网’ # 定义变量,存储数据Python自学网【小驼峰命名】 my_name...= ‘Python’ # 定义变量,存储数据Python【下划线命名】 二、使用变量 这里用最简单打印方法来看看结果,注意使用变量不用加单引号或者双引号,想要使用变量前提是先定义一个变量 #定义变量...myName = 'Python自学网' #打印变量使用变量) print(myName) #定义变量 my_name = 'Python' #打印变量使用变量) print(my_name)...变量值发生变化的话那么变量名存储数据值也会发生变量,所以以后要修改某个某个数据时候只需要变量值不用修改变量

2.3K10

为什么很多“智能合约”使用场景是不能实现

但是在区块链风口,智能合约确也是一热点,那么为什么multichain不考虑呢?...这个听起来很简单实现方法,放到区块链里面是不能实现为什么呢?...不需要由智能合约发起向外部源请求,而改为某些信任方(“先知”)在链创建交易把它取到信息加到链来。这样的话每个节点就是拿到这份数据拷贝,从而可以执行职能合约结算了。...所以针对这个智能合约能做什么问题:智能合约是能被用在区块链一些不能使用比特币类型事务限制(transactionconstraints)使用场景。...无可厚非,这是个有用东西,对于数据库共享安全也是一个必要保证,除此之外智能合约不能做更多事情,也不能逃离它们生存这个分享数据库边界。

60820

【说站】java变量使用注意

java变量使用注意 说明 1、每个变量都有类型,类型可以是基本类型,也可以是引用类型。 2、变量名必须是合法标识符。 3、变量声明时一条完整语句,因此每一个声明都必须以分号结束。...实例 public class demo04 {     //类变量     static double salary =2500;     // 属性   变量     //实例变量:从属于对象;如果不进行初始化...,这个类型默认值为0,0.0。     ...i);         //使用实例变量         //变量类型  变量名字 = new Demo04();         demo04 demo04 = new demo04();  //alt...salary);     }          //其他方法     public void add(){         System.out.println(1);     } } 以上就是java变量使用注意

64720
领券