shell操作配置文件

#!/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 "$@"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值