iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >shell怎么读取配置文件
  • 167
分享到

shell怎么读取配置文件

2023-07-06 04:07:23 167人浏览 安东尼
摘要

本篇内容介绍了“shell怎么读取配置文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在编写启动脚本时,涉及到读取配置文件,特地记录下sh

本篇内容介绍了“shell怎么读取配置文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

在编写启动脚本时,涉及到读取配置文件,特地记录下shell脚本读取启动文件的方式。主要提供两种格式的读取方式,方式一配置文件采用“[]”进行分区,方式二配置文件中需要有唯一的配置项名称。

配置文件格式如下:

# cat -n config.ini #MYSQL配置项 [Mysql] DB_HOST=192.168.0.1 DB_PORT=3306 DB_USER=root DB_PASSWD=mysql1234 DB_NAME=system_manager1 #MYsql_1配置项 [MYSQL_1] MYSQL_DB_HOST=192.168.0.2 MYSQL_DB_PORT=2200 MYSQL_DB_USER=root MYSQL_DB_PASSWD=mysql123456 MYSQL_DB_NAME=bigdata1 MYSQL_INIT_SQL='set slave;stop backup;' #REDIS配置项 [Redis] DB_HOST=192.168.0.1 DB_PORT=6379 DB_ID=4 DB_PASSWD=redis1234

方式一:先试使用grep获取配置项的开始行、结束行。

# grep -n -E '^\[' config.ini |grep -A 1 "\[MYSQL\]"|awk -F ':' '{print $1}'|xargs2 10# grep -n -E '^\[' config.ini |grep -A 1 "\[REDIS\]"|awk -F ':' '{print $1}'|xargs19

在使用sed根据开始行、结束行获取实际配置

# sed -n "2,10 s/DB_HOST=//p" config.ini192.168.0.1# sed -n "19,$ s/DB_PORT=//p" config.ini6379

方式二:使用正则匹配唯一的配置项名称,并显示实际配置

# sed -r -n 's/(^MYSQL_INIT_SQL=)(.*)$/\2/p' config.ini'set slave;stop backup;'# sed -r -n 's/(^MYSQL_DB_HOST=)(.*)$/\2/p' config.ini192.168.0.2

完整脚本如下:

# cat config.sh#!/bin/bashset -eexit_script(){   exit 1}if [ "$#" = 0 ]; then    echo "参数错误,命令格式为:    ./config.sh configfile"    exit_scriptelse    configPath=$1fifunction get_line_num(){    local configKey=$1    grep -n -E '^\[' ${configPath} |grep -A 1 "\[${configKey}\]"|awk -F ':' '{print $1}'|xargs}function get_config(){    #local configPath=$1    local configKey=$1    local configName=$2    local line_num=$(get_line_num $configKey)    local startLine=$(echo $line_num |awk '{print $1}')    local endLine=$(echo $line_num|awk '{print $2}')    if [ ${endLine} ];then        sed -n "${startLine},${endLine} s/${configName}=//p" ${configPath}    else        sed -n "${startLine},$ s/${configName}=//p" ${configPath}    fi}if [ -f $configPath ];then    MYSQL_DB_HOST=$(get_config MYSQL DB_HOST)else    echo ${configPath}"文件不存在,请检查配置文件是否存在"    exit_scriptfiMYSQL_DB_PASSWD=$(get_config MYSQL DB_PASSWD)MYSQL_DB_USER=$(get_config MYSQL DB_USER)REDIS_DB_HOST=$(get_config REDIS DB_HOST)REDIS_DB_PASSWD=$(get_config REDIS DB_PASSWD)MYSQL_DB_HOST=$(sed -r -n 's/(^MYSQL_DB_HOST=)(.*)$/\2/p' $configPath)MYSQL_DB_NAME=$(sed -r -n 's/(^MYSQL_DB_NAME=)(.*)$/\2/p' $configPath)INIT_SQL=$(sed -r -n 's/(^MYSQL_INIT_SQL=)(.*)$/\2/p' $configPath)echo "MYSQL_DB_HOST="${MYSQL_DB_HOST}echo "MYSQL_DB_PASSWD="${MYSQL_DB_PASSWD}echo "MYSQL_DB_USER="${MYSQL_DB_USER}echo "REDIS_DB_HOST="${REDIS_DB_HOST}echo "REDIS_DB_PASSWD="${REDIS_DB_PASSWD}echo "-----------------分割线-------------"echo "使用sed读取配置:MYSQL_DB_HOST="${MYSQL_DB_HOST}echo "使用sed读取配置:MYSQL_DB_NAME="${MYSQL_DB_NAME}echo "使用sed读取配置:MYSQL_INIT_SQL="${INIT_SQL}

实际执行结果:

# ./config.sh config.i
config.i文件不存在,请检查配置文件是否存在

# ./config.sh config.ini
MYSQL_DB_HOST=192.168.0.2
MYSQL_DB_PASSWD=mysql1234
MYSQL_DB_USER=root
REDIS_DB_HOST=192.168.0.1
REDIS_DB_PASSWD=redis1234
-----------------分割线-------------
使用sed读取配置:MYSQL_DB_HOST=192.168.0.2
使用sed读取配置:MYSQL_DB_NAME=bigdata1
使用sed读取配置:MYSQL_INIT_SQL='set slave;stop backup;'

“shell怎么读取配置文件”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: shell怎么读取配置文件

本文链接: https://www.lsjlt.com/news/357667.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • shell怎么读取配置文件
    本篇内容介绍了“shell怎么读取配置文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在编写启动脚本时,涉及到读取配置文件,特地记录下sh...
    99+
    2023-07-06
  • Shell中怎么读取ini格式配置文件
    Shell中怎么读取ini格式配置文件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。代码如下:[COM]KINGGOO = jb51.net其实这个作用没那么特...
    99+
    2023-06-09
  • Shell脚本怎么读取标准ini配置文件Demo
    这篇文章主要讲解了“Shell脚本怎么读取标准ini配置文件Demo”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell脚本怎么读取标准ini配置文件Demo”吧!ini DEMO代码如...
    99+
    2023-06-09
  • springboot怎么读取配置文件
    在Spring Boot中,可以通过`@Value`注解、`Environment`接口、`@ConfigurationProper...
    99+
    2023-10-25
    springboot
  • Python怎么读取配置文件
    这篇文章主要讲解了“Python怎么读取配置文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python怎么读取配置文件”吧!一、 yaml1、 准备支持的数据类型:字典、列表、字符串、布...
    99+
    2023-07-05
  • java怎么读取properties配置文件
    在Java中,可以使用`java.util.Properties`类来读取.properties配置文件。下面是一个简单的示例代码:...
    99+
    2023-09-20
    java
  • java怎么读取xml配置文件
    在Java中,读取XML配置文件有多种方法,其中比较常用的是使用DOM解析器或者SAX解析器。1. 使用DOM解析器:```java...
    99+
    2023-09-11
    java
  • java怎么读取yml配置文件
    在Java中读取YAML配置文件可以使用SnakeYAML库。以下是一个简单的示例,演示了如何读取YAML配置文件:1. 首先,确保...
    99+
    2023-08-18
    java
  • Android怎么读取并配置文件
    这篇文章主要讲解了“Android怎么读取并配置文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android怎么读取并配置文件”吧!配置properties文件先创建properties...
    99+
    2023-06-05
  • Shell脚本读取标准ini配置文件Demo
    ini DEMO [TESTFTP] host=127.0.0.1 name=my pass=mylove type=ftp [TESTSSH] host=127.0.0.1 name=my pass=m...
    99+
    2022-06-04
    配置文件 脚本 标准
  • .NETCore读取配置文件
    1. 说明 默认情况下读取配置Configuration的默认优先级:ConfigureAppConfiguration(自定义读取)>CommandLine(命令行参数)&g...
    99+
    2022-11-13
  • ASP.NETCore读取配置文件
    ASP.NET Core 中,可以使用 ConfigurationBuilder 对象来构建。 主要分为三部:配置数据源 -> ConfigurationBuilder -&g...
    99+
    2022-11-13
  • Python读取配置文件
    文章目录 Python读取配置文件一、 yaml1、 准备2、 操作数据2.1 读取数据2.2 写入数据 二、 ini1、准备2、 操作数据2.1 读取数据2.2. 写数据 ...
    99+
    2023-09-03
    python 开发语言
  • Unity 读取文件 TextAsset读取配置文件方式
    1 支持文件类型 .txt .html .htm .xml .bytes .json .csv .yaml .fnt 2 寻找文件 1 //Load texture from d...
    99+
    2022-11-12
  • 怎么用dom4j读取xml配置文件
    本篇内容主要讲解“怎么用dom4j读取xml配置文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用dom4j读取xml配置文件”吧!实现步骤以及源码:1、写xml文件读取类读取xml文档内...
    99+
    2023-06-03
  • springboot怎么读取外部配置文件
    Spring Boot可以通过使用@PropertySource注解来读取外部配置文件。以下是一种常见的方法:1. 创建一个配置类,...
    99+
    2023-09-25
    springboot
  • tomcat怎么读取外部配置文件
    Tomcat可以通过以下几种方式读取外部配置文件:1. 使用`context.xml`文件:可以在Tomcat的`conf/Cata...
    99+
    2023-09-28
    tomcat
  • shell怎么读取文件内容
    在shell脚本中,可以使用多种方法来读取文件的内容,下面是一些常用的方法:1. 使用cat命令:cat命令可以用于将文件的内容输出...
    99+
    2023-09-14
    shell
  • Shell实现读取ini格式配置文件方法
    ini文件格式一般都是由节、键、值三部分组成 格式: [第一节 ] 第一个键 = 值 第二个键 = 第二个值 [第二节 ] 第一个键 = val1,val2,val3 例子: [COM] KINGGOO...
    99+
    2022-06-04
    配置文件 格式 方法
  • 怎么在VBS中读取配置文件的配置项
    怎么在VBS中读取配置文件的配置项?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。以下是一个读取配置文件的函数:本函数仅适用于以下格式的配置文件(.ini,.txt,.inf...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作