记录一下自己使用sed遇到的问题

    xiaoxiao2021-03-25  47

    由于写shell脚本使用sed替换某些配置文件,所以使用到了sed命令:(下面是整行替换,只是头部一样所以看起来像替换‘=’后面的值)

     sed -i  "s/^mir.sdk.jdbc.url=.*/mir.sdk.jdbc.url=$MYSQL_CONNECTION_URL/g" /usr/local/tomcat/webapps/mir-pack/WEB-INF/mir-pack.conf

    初步看这命令没有毛病,但是仔细一看$MYSQL_CONNECTION_URL 这个值里面如果存在sed 保留字符,问题就来了。如果MYSQL_CONNECTION_URL是定义为如下:

     MYSQL_CONNECTION_URL="jdbc:mysql://$MYSQL_IP_ADDRESS:3306/mir-pack?useUnicode=yes&&characterEncoding=utf8&autoReconnect=true"

    执行之后就有问题了。如果要运行正常的话 MYSQL_CONNECTION_URL的值应该这样:

    MYSQL_CONNECTION_URL="jdbc\:mysql\:\/\/$MYSQL_IP_ADDRESS:3306\/mir-pack\?useUnicode\=yes\&\&characterEncoding\=utf8\&autoReconnect\=true"

    需要把特殊字符进行转义。

    转载请注明原文地址: https://ju.6miu.com/read-300136.html

    最新回复(0)