欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

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

程序员文章站 2023-10-30 10:05:22
ini文件格式一般都是由节、键、值三部分组成 格式: [第一节 ] 第一个键 = 值 第二个键 = 第二个值 [第二节 ] 第一个键 = val1,val2,v...

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}

执行脚本文件既可

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