#!/bin/bash
#Description: 获取配置中的某个属性值
#Parameters: 配置文件名 属性名
#Return: 属性值
function get_propval {
if [ -f "$1" ]; then
echo `sed -n 's/^[ \t]*'$2'=\(.*\)/\1/p' $1`
else
echo ""
fi
}
#Description: 删除配置中的某个属性值
#Parameters: 配置文件名 属性名
#Return:
function del_propval {
if [ -f "$1" ]; then
sed -i '/^[ \t]*'$2'/d' $1
fi
}
#Description: 修改配置中的某个属性值
#Parameters: 配置文件名 属性名 属性值
#Return:
function mod_propval {
update_or_insert_propval "$@"
}
#Description: 新增配置中的某个属性值
#Parameters: 配置文件名 属性名 属性值
#Return:
function add_propval {
insert_or_ignore_propval "$@"
}
#Description: 对属性值进行处理, 在/前加上\
#Parameters: 属性值
#Return: 修正后的属性值
function value_packet {
echo `echo $* | sed 's%\\/%\\\\\/%g'`
}
#Description: 内部方法, 存在时修改,不存在时无操作
#Parameters: 配置文件名 属性名 属性值
#Return:
function update_or_ignore_propval {
if [ ! -f "$1" ]; then
return
fi
local file=$1
local prop=$2
shift 2
local value=`value_packet $*`
sed -i 's/\(^[ \t]*'$prop'=\).*/\1'"$value"'/' $file
}
#Description: 检查属性是否存在
#Parameters: 配置文件名 属性名
#Return: 不存在返回空
function if_exist_propval {
if [ -f "$1" ]; then
echo `sed -n '/^[ \t]*'$2'=/p' $1`
else
echo ""
fi
}
#Description: 内部方法, 存在时无操作,不存在时新增
#Parameters: 配置文件名 属性名 属性值
#Return:
function insert_or_ignore_propval {
local find=`if_exist_propval $*`
if [ -n "$find" ]; then
return;
fi
local file=$1
local prop=$2
shift 2
if [ ! -f "$file" ]; then
echo "" > $file
fi
sed -i '$a '$prop'='$*'' $file
}
#Description: 内部方法, 存在时修改,不存在时新增
#Parameters: 配置文件名 属性名 属性值
#Return:
function update_or_insert_propval {
update_or_ignore_propval "$@"
insert_or_ignore_propval "$@"
}
operation=$1"_propval"
shift 1
$operation "$@"
shell操作配置文件
于 2022-01-14 10:38:59 首次发布