Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Conky文件中pre_exec命令的Lua“替换”是什么?_Linux_Lua_Conky - Fatal编程技术网

Linux Conky文件中pre_exec命令的Lua“替换”是什么?

Linux Conky文件中pre_exec命令的Lua“替换”是什么?,linux,lua,conky,Linux,Lua,Conky,我不擅长编程,但我试着摆弄一个我喜欢的conky_rc文件,我发现这似乎很简单 正如标题所述,我现在了解到,pre_exec之前的命令早已被Lua删除并取代 不幸的是,除此之外,我似乎找不到任何与此直接相关的东西。线程引用它,它的解决方案声明:基本上,没有替换,您应该使用Lua或使用非常大的interval和execi 我找到了更多的线程,它们都包含了这个函数为什么被中断的问题,但没有实际的答案。所以,重申一下我的观点,我对Lua完全不了解,我以前听说过Lua,现在我已经添加了一些网站,明天再看

我不擅长编程,但我试着摆弄一个我喜欢的conky_rc文件,我发现这似乎很简单

正如标题所述,我现在了解到,pre_exec之前的命令早已被Lua删除并取代

不幸的是,除此之外,我似乎找不到任何与此直接相关的东西。线程引用它,它的解决方案声明:基本上,没有替换,您应该使用Lua或使用非常大的interval和execi

我找到了更多的线程,它们都包含了这个函数为什么被中断的问题,但没有实际的答案。所以,重申一下我的观点,我对Lua完全不了解,我以前听说过Lua,现在我已经添加了一些网站,明天再看,因为我已经花了晚上的大部分时间试图弄明白这件棘手的事情,我可能会放弃,做我的电脑可以处理的execi选项,但我觉得它效率太低了

是否有合适的Lua选项?如果是这样的话,请有人告诉我手册或维基,或者解释一下?还是正确的Lua解决方案就是这样

@Vincent-C对脚本不起作用是因为函数 我没接到电话。从我做的几次快速测试来看 lua_startup_hook需要函数位于另一个 使用lua_加载加载,不确定钩子如何运行 所有的工作都是因为我只是直接使用配置作为lua,因为它 我是卢阿

基本上只需调用io.popen的东西并将其转换为conky.text

conky.text = [[ a lot of stuff... ${color green} ]];

o = io.popen('fortune -s | cowsay', 'r') conky.text = conky.text ..
o:read('*a')
您引用的第一页上的内容似乎提供了答案,但稍作解释可能会有所帮助

asl97提供了以下通用Lua函数,用作$pre_exec的替代品,前面是require语句,以使io可供函数使用:

require 'io'

function pre_exec(cmd)
    local handle = io.popen(cmd)
    local output = handle:read("*a")
    handle:close()
    return output
end
将此代码块添加到您的conky配置文件将使该函数可在其中使用。为了进行测试,我将其添加到conky.config={…}部分的上方

调用Lua pre_exec函数将返回一个字符串,其中包含传递给它的命令的输出。来自[[to]]的conky.text部分也是一个字符串,因此可以使用..将其转换为pre_exec返回的字符串。。操作员,如asl97提供的用法部分所示

在我的测试中,我做了下面的愚蠢的一点,正如预期的那样,显示Hello World!以及日期函数的输出,在my conky显示屏的顶部各有上下间距:

conky.text = pre_exec("echo; echo Hello World!; echo; date; echo")..[[
    -- lots of boring conky stuff --
]]
当然,更重要的命令可以与pre_exec一起使用,如asl97所示

< ASL97没有解释的一件事是如何提供连接,以便PrimeExcel输出位于CKY显示的中间,而不仅仅是开始。我测试并发现,您可以按照以下方式进行:

conky.text = [[
    -- some conky stuff --
]]..pre_exec("your_important_command")..[[
    -- more conky stuff --
]]
您引用的第一页上的内容似乎提供了答案,但稍作解释可能会有所帮助

asl97提供了以下通用Lua函数,用作$pre_exec的替代品,前面是require语句,以使io可供函数使用:

require 'io'

function pre_exec(cmd)
    local handle = io.popen(cmd)
    local output = handle:read("*a")
    handle:close()
    return output
end
将此代码块添加到您的conky配置文件将使该函数可在其中使用。为了进行测试,我将其添加到conky.config={…}部分的上方

调用Lua pre_exec函数将返回一个字符串,其中包含传递给它的命令的输出。来自[[to]]的conky.text部分也是一个字符串,因此可以使用..将其转换为pre_exec返回的字符串。。操作员,如asl97提供的用法部分所示

在我的测试中,我做了下面的愚蠢的一点,正如预期的那样,显示Hello World!以及日期函数的输出,在my conky显示屏的顶部各有上下间距:

conky.text = pre_exec("echo; echo Hello World!; echo; date; echo")..[[
    -- lots of boring conky stuff --
]]
当然,更重要的命令可以与pre_exec一起使用,如asl97所示

< ASL97没有解释的一件事是如何提供连接,以便PrimeExcel输出位于CKY显示的中间,而不仅仅是开始。我测试并发现,您可以按照以下方式进行:

conky.text = [[
    -- some conky stuff --
]]..pre_exec("your_important_command")..[[
    -- more conky stuff --
]]

非常感谢你们一起写这篇文章!你知道如何在每次预执行调用后避免换行吗?啊,对不起,我刚刚意识到我需要在cat命令的末尾执行一个| tr'\n''来删除换行,所以预执行没有问题。非常感谢大家一起写这篇文章!你知道如何在每次预执行调用后避免换行吗?啊,对不起,我刚刚意识到我需要在cat命令末尾执行一个| tr'\n''来删除换行,这样预执行就不会有问题了