shell脚本中如何读取配置文件中的全局变量

1、使用source读取配置文件

在Shell脚本中读取配置文件中的全局变量,一种常见的方式是建立全局配置文件(如取名为config.env),变量都写在里面,然后在脚本中使用source进行读取解析。以下是一个示例:

全局配置文件config.env示例:

# global config file : config.env

#[mysql]
Mysql_Ip="192.168.10.99"
Mysql_Port=3306

#[NFS]
Nfs_Server_Ip="192.168.10.98"
NFS_Capacity="5G"
test_ip=192.168.10.97

脚本read_conf.sh示例,作用是读取配置文件config.env,打印需要的变量。

#!/bin/bash

# 读取配置文件
source ./config.env

# 输出全局变量的值
echo $Mysql_Ip
echo $Mysql_Port
echo $NFS_Capacity
echo $test_ip

read_conf.sh脚本运行的输出结果,可以看到,达到我们的预期。

[root@others ]# sh read_conf.sh 

192.168.10.99
3306
5G
192.168.10.97

脚本能够正确读取输出全局变量的值。

通过test_ip测试还可知,IP地址加双引号和不加双引号,都能正确读取。

2、使用crudini读取

crudini的使用在我的另一篇博客有描述,这里直接放一个链接:

自动部署工作流程与注意点_70年代的生猛海鲜的博客-CSDN博客

3、两种方法的区别

crudini支持指定配置文件路径、变量的分段分节,能读取并修改配置文件;

source是shell的内置命令,相当于在当前shell中执行另外 一个文件,解析出文件中的命令和变量,并在当前shell中执行它。这样文件中定义的变量就可以在当前shell中使用,他不支持变量分节,不能修改配置。

总的说来:crudini使用灵活、专业、扩展性强;source的方法简单直接,不需要安装额外命令。读者就按需选用吧。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值