shell学习2

      接上一回,在我写tarball的时候,因为没有考虑到GUI,所以在选择DB的时候,随便写了个select,现在考虑到GUI的静默安装,采用readUserinput函数。
      花了一天的时候搞定sed的使用,在我使用sed替换配置PATH的时候,遇到一个问题,我无法传参,而且关键问题是参数是含有“/"的,参考网上的资料,使用双引号是必须的,但是还是不能传参,即使使用"\"来标意特殊字符,还是不行,然后发现传参里面还有一个参数是含有"/"的,所以一直不成功。
      经过steven的帮忙,使用新的方法,即使用别的特殊符号,避开"/",那就是使用”%“符号,
原来是
D2B=$HOME/bj/enterprise/odbc.ini
sed -i s/"ODBCINI=.*"/"ODBCINI=$D2B"/ denv.sh
改成%之后成为
D2B=$HOME/bj/enterprise/odbc.ini
sed -i s%"ODBCINI=.*"%"ODBCINI=$D2B"% denv.sh
这样就避免了路径的改变问题。


下面我再给出一个函数,可以通过函数改变这个问题。
replaceProperty()
{
        local var=$1
        local val=$2
        local file=$3
        local secret=${4:-0}

        local val1=$val
        if [ $secret -ne 0 ]
        then
                val1=`echo $val1 | sed -r s/"."/"*"/g`
        fi
        echo "Replacing value of $var to $val1 in file $file ..."
        sed -i "s|^$var=.*$|$var=\"$val\"|" $file
}
$1是参数的名称即路径的名称或者指定文件的名称
$2是要修改之后的路径或修改之后的路径的文件
$3是文件的名称。
通过调用上面的函数,可以批量的修改路径问题。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/27633196/viewspace-765428/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/27633196/viewspace-765428/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值