您当前的位置:首页 > 计算机 > 编程开发 > Shell

Linux Shell读取.ini形式的配置文件

时间:08-02来源:作者:点击数:

在使用Linux Shell编程或者是使用其他语言进行编程的时候,我们经常会遇到要读取配置文件的情况,配置文件是一个软件的必要组成部分,例如config.ini的内容如下:

[temperature]
warning=85
shutdown=93

那么如何读取这个配置文件的信息呢,其实很简单,采用正则表达式就可以很好的解决这个问题了。读取配置文件的属性的值的脚本read.sh的内容如下:

#!/bin/sh

#定义一个函数
GetKey(){
    #获取参数中的段
    section=$(echo $1 | cut -d '.' -f 1);
    #获取参数中的key
    key=$(echo $1 | cut -d '.' -f 2);
    #使用正则表达是获取key所对应的value
    sed -n "/\[$section\]/,/\[.*\]/{
      /^\[.*\]/d
      /^[ \t]*$/d
      /^$/d
      /^#.*$/d
      s/^[ \t]*$key[ \t]*=[ \t]*\(.*\)[ \t]*/\1/p
    }" config.ini
}

#读取实例
warning=$(GetKey "temperature.warning")
shutdown=$(GetKey "temperature.shutdown")
#下面以两种方式来输出获取的配置文件中section.key对应的值
echo "========================"
echo "warning=${warning}"
echo "shutdown=${shutdown}"
printf "%s\n" $warning
printf "%s\n" $shutdown
echo "========================"

输出结果如下所示:

========================
warning=85
shutdown=93
85
93
========================

需要具体说明的是,如果不懂上面的正则表达式,你可以去学习一下,无论是Shell脚本、C语言、C++、Java、PHP还是其他的语言,基本上都支持正则表达式,也就是说,只要是支持读取文件并且支持正则表达式的语言,你都可以用类似上面的方法来获取配置文件的内容。

也就是说,读取配置文件的方法不限于shell脚本啦。

举一反三。在我们平时的编程当中我们会遇到很多这种情况,一个功能其实很多语言都可以来实现,重要的是思想,想法,具体到程序语言当中,就是算法了,因此在平时的编程当中,我们要多提炼一些经典的算法,多学习,多理解,同时加以改进,这样才是程序员的提升之道。

ps:正则表达式真的很重要,对于文本的高效处理具有不可替代的地位,大家都好好补补吧。

ps:还有其他的配置文件读取方式,例如使用Linux中文本处理神器awk来进行处理也是可以的。方法很多,本文仅仅是介绍了其中一种,具体使用哪种方法得看你自己的实际情况了。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐