从配置文件中获取字符串值 - LuCI

Tom*_*eck 4 lua openwrt

我正在尝试为Luci构建一个OpenWRT模块的Web界面.我有以下代码:

m = Map("amld_cbi", translate ("amld_status"))
s = m:section(TypedSection, "amld_conf","Status")
fqdn = s:option(DummyValue, "fqdn", "FQDN value")
Run Code Online (Sandbox Code Playgroud)

这适用于在屏幕上显示fqdn(位于amld_cbi内)的值.现在我想要String值本身.

当我尝试做的时候:

m = Map("amld_cbi", translate ("amld_status"))
s = m:section(TypedSection, "amld_conf","Status")
fqdn = s:option(DummyValue, "fqdn", "FQDN value")

luci.sys.call("amld " .. fqdn)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

The called action terminated with an exception:
/usr/lib/lua/luci/model/cbi/amld/amld_status.lua:25: attempt to concatenate global 'fqdn' (a table value)
stack traceback:
    [C]: in function 'assert'
    /usr/lib/lua/luci/dispatcher.lua:448: in function 'dispatch'
    /usr/lib/lua/luci/dispatcher.lua:195: in function </usr/lib/lua/luci/dispatcher.lua:194>
Run Code Online (Sandbox Code Playgroud)

有人知道如何从变量fqdn获取实际值吗?

Tom*_*eck 6

刚想通了,看起来你必须添加以下内容:

m = Map("amld_cbi", translate ("amld_status"))
s = m:section(TypedSection, "amld_conf","Status")
fqdn = s:option(DummyValue, "fqdn", "FQDN value")

fqdn_string = uci.get("amld_cbi", "amld", "fqdn")

luci.sys.call("amld " .. tostring(fqdn_string)) **the tostring function may not be necessary **
Run Code Online (Sandbox Code Playgroud)

我的amld_cbi文件看起来像这样:

config amld_conf 'amld'
    option fqdn 'www.google.com'
Run Code Online (Sandbox Code Playgroud)