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

文章介绍了在Shell脚本中读取配置文件的两种方法:一是使用source命令,通过source./config.env来读取全局变量;二是使用第三方工具crudini,该工具支持更灵活的配置文件路径和分段分节操作。source是内置命令,简单直接但不支持变量分节和修改配置,而crudini则更专业且扩展性强,但需要额外安装。根据需求,读者可以选择适合的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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年代的生猛海鲜的博客-优快云博客

3、两种方法的区别

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

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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值