ITPub博客

首页 > Linux操作系统 > Linux操作系统 > shell学习2

shell学习2

原创 Linux操作系统 作者:seventhreecn 时间:2013-07-03 18:32:36 0 删除 编辑
      接上一回,在我写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博客 ” ,链接:https://blog.itpub.net/27633196/viewspace-765428/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: SQL Anywhere 2
下一篇: shell 和SQL_Anywhere
请登录后发表评论 登录
全部评论

注册时间:2012-08-15

  • 博文量
    28
  • 访问量
    25270