首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在lua脚本中加载host.conf文件变量

如何在lua脚本中加载host.conf文件变量
EN

Stack Overflow用户
提问于 2021-01-13 03:33:21
回答 2查看 42关注 0票数 0

我需要从lua脚本中的.conf文件加载配置变量,并使用这些变量连接到数据库。我尝试过使用:

代码语言:javascript
运行
复制
require "host.conf"
loadfile("host.conf") - error with unexpected token '#' 
os.execute("pathToConfFile/host.lua") - and I have created a lua host file with variables in bash shell
io.popen("host.conf") etc..

这些解决方案都不是有效的。有没有办法在lua中使用现有的host.conf文件,并避免意外的令牌错误?谢谢你的建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-16 05:40:40

代码语言:javascript
运行
复制
local original = io .open('host.conf')
local hostconf = {}  --  copy contents into Lua table

for line in original :lines() do
    table .insert( hostconf, line )
end ; io .close( original )

print( hostconf[1] )  --  prints line 1

您还没有指定host.conf的格式,但是您可能希望更好地解析它,而不仅仅是在列表中抛出内容。也许可以根据分隔符(逗号、空格,变量和值之间的任何字符)将每行分成头/尾。

票数 0
EN

Stack Overflow用户

发布于 2021-01-19 19:28:29

感谢每一个帮助过我们的人。我的问题不准确,在我问之前我有更多的东西要学,对此我深表歉意。这就是我用来解决问题的方法。

代码语言:javascript
运行
复制
local open = io.open

local function read_file(path)
    local file = open(path, "r")
    if not file then return nil end
    local content = file:read "*a" -- *a or *all reads the whole file

    local lines = {}

    for line in io.lines(path) do
        --print(line);
        if(line:find(var)~=nil)then
           local varStart=string.len(var)+2
           local varEnd=string.len(line)
           var=string.sub(line,varStart,varEnd)
           print(var);
        end
--repeat for every line
    
    end
    file:close()
    return lines;
end

local fileContent = read_file("path");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65690831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档