Linux Shell 读取key=value配置文件

1.配置文件 config.txt

server=tomcat
start=xxx/xxx/startup.sh
shutdown=xxx/xxx/shutdown.sh

server=nignx
start=xx/xxx/xxx/startup.sh
shutdown=xx/xxx/xxx/shutdown.sh

2.shell脚本

注意: %=*是取'='前面的key, #*=是取'='后面的value
#!/bin/bash
# server [server] start/shutdown
#存储的数组
SERVER_LIST_NAME=(null null) #服务器名字
SERVER_LIST_START=(null null) #服务器启动脚本
SERVER_LIST_SHUTDOWN=(null null) #服务器关闭脚本
#索引
INDEX=0
#文件配置
SERVER_LIST_CONFIG=./config.txt
function read_config() {
	while read LINE
	do 
		AIM=${LINE%=*}
		echo aim=${AIM}
		if [ -z $AIM ] #如果本行,为空格就跳过读取下一行
		then
			continue
		fi
		if [ $AIM == 'server'  ]
		then
			SERVER_LIST_NAME[INDEX]=`echo ${LINE#*=}`
			#echo server=${SERVER_LIST_ARRAY[$INDEX]}

		elif [ $AIM == 'start' ]
		then
			SERVER_LIST_START[INDEX]=`echo ${LINE#*=}`
			#echo start=${SERVER_LIST_START[$INDEX]}

		elif [ $AIM == 'shutdown' ]
		then
			SERVER_LIST_SHUTDOWN[INDEX]=`echo ${LINE#*=}`
			#echo shutdown=${SERVER_LIST_SHUTDOWN[$INDEX]}
			
			#第一个配置读取完成
			INDEX=$[INDEX+1]
		fi
		
	done < $SERVER_LIST_CONFIG
}
#执行
read_config
echo ${SERVER_LIST_NAME[*]}
echo ${SERVER_LIST_START[*]}
echo ${SERVER_LIST_SHUTDOWN[*]}

Logo

更多推荐