ini 初始化配置文件
ini格式如下:
[Section1]
Key1=val1
Key2=val2
[Section2]
Key1=val1
Key2=val2
... ...
shell读写操作脚本
#!/bin/bash
echo "ini file read/write."
# 读取键值
ini_read_key() {
file=$1;
section=$2;
key=$3;
val=$(awk -F ' = ' '/\['${
section}'\]/{a=1} (a==1 && "'${
key}'"==$1){
a=0;print $2}' ${file})
echo ${val}
}
# 写入键值
ini_write_key() {
file=$1;
section=$2;
key=$3;
val=$4
awk -F ' = ' '/\['${section}'\]/{a=1} (a==1 && "'${key}'"==$1){gsub($2,"'${val}'");a=0} {print $0}' ${file} 1<>${file}
}
# 读取所有section
ini_read_section() {
file=$1;
val=$(awk '/\[/{
printf("%s ",$1)}' ${file} | sed 's/\[//g' | sed 's/\]//g')
echo ${val}
}
# 读取所有section
ini_read_section odbc.ini
# 读取SERVER字段
ini_read_key odbc.ini mysql SERVER
# 修改SERVER的值
ini_write_key odbc.ini mysql SERVER 192.168.12.125
# 读取SERVER字段
ini_read_key odbc.ini mysql SERVER
以odbc.ini为例,测试
odbc.ini:
[mariadb]
Description = The Database for mariadb
Trace = On
TraceFile = stderr
Driver = mariadb
SERVER = 192.168.12.1
USER = root
PASSWORD = 1234
PORT = 3306
DATABASE = test
charset = UTF8
[mysql]
Description = The Database for mysql
Trace = On
TraceFile = stderr
Driver = mysql
SERVER = 192.168.12.124
USER = root
PASSWORD = 1234
PORT = 3306
DATABASE = test
charset = UTF8
测试结果
eric@eric-PC:~/Documents/linux/shell$ ./shell2.sh
ini file read/write.
mariadb mysql
192.168.12.124
192.168.12.125
eric@eric-PC:~/Documents/linux/shell$ cat odbc.ini
[mariadb]
Description = The Database for mariadb
Trace = On
TraceFile = stderr
Driver = mariadb
SERVER = 192.168.12.1
USER = root
PASSWORD = 1234
PORT = 3306
DATABASE = test
charset = UTF8
[mysql]
Description = The Database for mysql
Trace = On
TraceFile = stderr
Driver = mysql
SERVER = 192.168.12.125
USER = root
PASSWORD = 1234
PORT = 3306
DATABASE = test
charset = UTF8