shell解析⽂件
最近需要使⽤shell脚本解析配置⽂件,于是下来去来,发现以下两种⽅式都是⽐较好⽤的,但是各有各的不⾜。
1.使⽤source 解析
特点:⽅便,简单
不⾜:当⽂件中有多个同名的配置项,就不好解析了
脚本:test.sh
#!/bin/sh
source myconfig
#注意,这⾥也可以写成点 filename,即: .  filename
echo $ip
echo $port
配置⽂件:⽂件名: myconfig,  内容就包含以下两⾏就⾏:
ip=192.168.1.100
port=100
对于这样类似的配置⽂件,毫⽆疑问,这样的脚本对应这样的配置⽅式,是最简单的
shell最简单脚本但是,有个不⾜,假如我这⾥有多个这样的配置 ,
#【server 1】
ip=192.168.1.100
port=7878
#[server 2]
ip=192.168.1.100
port=7777
#[server 3]
ip=192.168.1.100
port=8888
这种情况,source就不好解析了,或许我还没到⽅法,⼤家知道的,也指教⼀下,谢谢咯
⽅式2:
先看配置⽂件,配置⽂件各个字段⽤分号分隔,⼀⾏为⼀个配置项,⽂件名:myconfig
192.168.1.100;8989;root
192.168.1.300;8888;user
192.168.1.200;8980;administrator
脚本内容: server.sh
#!/bin/sh
while read line;do
ip=$(echo $line | awk -F ';' '{print $1}')
port=$(echo $line | awk -F ';' '{print $2}')
role=$(echo $line | awk -F ';' '{print $3}')
echo $name1
echo $pwd
echo $role
#这⾥就可以放你要拿配置⽂件中的各个配置值做什么的代码
done <myconfig
实际上,这种⽅式也很简单,只是配置⽂件的可读性就差来很多,所以根据实际的情况,选择⼀个,应该就OK 最后,Thanks!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。