Function 如何正确地将文件路径从Conky传递到lua函数

Function 如何正确地将文件路径从Conky传递到lua函数,function,lua,parameter-passing,conky,Function,Lua,Parameter Passing,Conky,我正在通过将显示逻辑重构为lua函数来简化我的conky,但我找不到任何关于如何传递文件路径的示例,而且我的猜测也会产生脚本错误 我试图做的是在我的面板上显示关于每个fs的以下内容:root、home和其他3个挂载的文件系统。每行的当前工作conky逻辑类似于/home的这一行: ${goto 10}${voffset 4}${font StyleBats:size=8}4${font} Home: ${goto 90}${color1}${fs_bar 6,100 /home}${

我正在通过将显示逻辑重构为lua函数来简化我的conky,但我找不到任何关于如何传递文件路径的示例,而且我的猜测也会产生脚本错误

我试图做的是在我的面板上显示关于每个fs的以下内容:root、home和其他3个挂载的文件系统。每行的当前工作conky逻辑类似于/home的这一行:

    ${goto 10}${voffset 4}${font StyleBats:size=8}4${font}   Home: ${goto 90}${color1}${fs_bar 6,100 /home}${color} ${goto 150}${alignr}${fs_free /home}
每个后续行仅在标签和2个硬编码路径(在fs_栏和fs_自由部分)中不同

所以,我正在尝试这样的函数调用:

    ${lua conky_display_fs("Home", "/home")}
使用lua功能:

    function conky_display_fs (fname, fpath)
    local outstring = conky_parse("${goto 10}${voffset 4}${font StyleBats:size=8}4${font}   " .. fname .. ": ${goto 90}${color1}${fs_bar 6,100 " .. fpath .. "}${color} ${goto 150}${alignr}${fs_free " .. fpath .."}")

    print (outstring)
    return outstring
结束

但它始终无法在conky调试日志中显示以下内容

    conky: llua_do_call: function conky_display_fs("Home", execution failed: attempt to call a nil value
因此,我猜问题在于如何传递路径字符串,因为它只显示错误中的第一个值。我想到了字符串转义等,但在conky配置的其他部分中使用的文件名不需要任何转义,例如:

    lua_load = "~/conky-manager/MyConky/functions.lua",
我找不到任何传递文件路径,甚至传递多个字符串参数的示例,只有使用vars的简单示例


这适用于现有的conky配置,其中第一个代码块中显示的成功的conky文本可以完美地工作。我已经尝试了几种不同的调用,改变引号、逗号/不逗号、不同的参数名称以避免关键字…

在大约20次不同的实验后解决了这个问题。答案是,尽管需要在config部分引用字符串,包括luaconfig,但在lua调用中不能引用它们。此外,我删除了paren

因此,使用字符串调用lua函数的正确方法如下:

  ${lua conky_display_fs Home, /home}