当前位置 博文首页 > Shell实现读取ini格式配置文件方法

    Shell实现读取ini格式配置文件方法

    作者:admin 时间:2021-06-30 18:33

    ini文件格式一般都是由节、键、值三部分组成

    格式:

    [第一节 ]
    第一个键 = 值
    第二个键 = 第二个值
    [第二节 ]
    第一个键 = val1,val2,val3
    例子:

    复制代码 代码如下:

    [COM]
    KINGGOO = jb51.net

    其实这个作用没那么特别大,但多个shell如果每个配置信息都在shell文件里面写,懂的人还好,半懂+不仔细的人要如何改,改几个地方估计脚本就不能运行了。所以这样单独哪出来比较好些,而且可以多个shell使用一个ini文件(与扩展名无关)来做配置也可以的。只需要在shell里面加一个自定义函数就可以了。
    复制代码 代码如下:

    # __readINI [配置文件路径+名称] [节点名] [键值]
    function __readINI() {
     INIFILE=$1; SECTION=$2; ITEM=$3
     _readIni=`awk -F '=' '/\['$SECTION'\]/{a=1}a==1&&$1~/'$ITEM'/{print $2;exit}' $INIFILE`
    echo ${_readIni}
    }

    使用方法:
    复制代码 代码如下:

    __readINI file.ini SECTION KEY

    例子:有一个ini格式文件kinggoo.ini,内容如下
    复制代码 代码如下:

    [IP]
    ip = jb51.net

    [MAILLIST]
    mail = admin@jb51.net


    脚本文件内容:
    复制代码 代码如下:

    #!/bin/bash
    # __readINI [配置文件路径+名称] [节点名] [键值]
    function __readINI() {
     INIFILE=$1; SECTION=$2; ITEM=$3
     _readIni=`awk -F '=' '/\['$SECTION'\]/{a=1}a==1&&$1~/'$ITEM'/{print $2;exit}' $INIFILE`
    echo ${_readIni}
    }
    # 使用方法:
    # Net address
    _IP=( $( __readINI kinggoo.ini IP ip ) )
    echo ${_IP}
    # mail send
    _mailList=( $( __readINI kinggoo.ini MAILLIST mail ) )
    echo ${_mailList}

    执行脚本文件既可

    当自己使用时,请验证后使用。

    js
    下一篇:没有了