gpt4 book ai didi

bash - 在 Lua 中执行传感器命令(lm-sensor)

转载 作者:行者123 更新时间:2023-12-04 19:25:25 24 4
gpt4 key购买 nike

我最初有这个 Lua 脚本

function temp_watch()

warn_value=60
crit_value=80

temperature=tonumber(conky_parse("${hwmon 1 temp 1}"))

if cpu_tmp<warn_value then
settings_table[1]['fg_colour']=normal
elseif cpu_tmp<crit_value then
settings_table[1]['fg_colour']=warn
else
settings_table[1]['fg_colour']=crit
end
end
但由于某种原因,hwmon 1 temp 1 只是卡住了报告 25C。出于这个原因,我切换到传感器。在 conky 我正在使用这个执行它:
${exec sensors | grep 'Package id 0' | cut -d ' ' -f 5 | cut -c 2,3,4,5,6,7}
我尝试使用此解决方案: https://unix.stackexchange.com/questions/666250/how-to-use-conky-variable-with-external-command .基本上,将 temperature=tonumber... 替换为
temperature=tonumber(conky_parse("${eval $${exec sensors | grep 'Package id 0' | cut -d ' ' -f 5 | cut -c 2,3,4,5,6,7}}"))
我也试过这个: is it possible to pipe output from commandline to lua? .将温度=tonumber...替换为
local cpu_tmp = io.popen("exec sensors | grep 'Package id 0' | cut -d ' ' -f 5 | cut -c 2,3,4,5,6,7")
temperature=tonumber(cpu_tmp)
两者都输出了这个错误:
llua_do_call:函数 conky_main 执行失败:/home/joe/conky/conky-grapes/rings-v2_gen.lua:530:尝试将 nil 与数字进行比较
我错过了一些变量转换还是有任何其他语法可以在 lua 中执行 bash?
提前致谢 :-)

最佳答案

lua.org 给了我一个答案。 The Complete I/O Model .

local file= io.popen("sensors -u | awk '/temp1_input:/ {print $2; exit}'")
local temperature = tonumber(file:read('*a'))
<SOME CODE HERE>
file:close()
end
它并不优雅,但似乎有效。我将运行 lua 脚本相当长的一段时间以确保它不会有 too many open files错误
非常感谢@Fravadona 为我指明了正确的方向:-)

关于bash - 在 Lua 中执行传感器命令(lm-sensor),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71619052/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com