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

Grace ·
更新时间:2024-11-14
· 754 次阅读

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}
执行脚本文件既可

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

您可能感兴趣的文章:Shell脚本中使用for循环和cat命令实现按顺序合并文件Shell逐行读取文件的4种方法shell按行读取文件的3种方法Shell脚本一次读取文件中一行的2种写法Shell脚本读取ini配置文件的实现代码2例PowerShell读取文本文件指定行内容的方法Shell脚本读取标准ini配置文件DemoShell脚本逐行读取文本文件(不改变文本格式)利用Shell脚本循环读取文件中每一行的方法详解



shell

需要 登录 后方可回复, 如果你还没有账号请 注册新账号