#!/bin/sh
url=`cat datasource.properties|grep ^monitor.url|cut -d= -f2`
echo $url
user=`cat datasource.properties|grep ^monitor.user|cut -d= -f2`
echo $user
pasd=`cat datasource.properties|grep ^monitor.pasd|cut -d: -f2`
echo $pasd
echo $1 $2 $3
sed -i "s/$url/$1/g" datasource.properties
sed -i "s/$user/$2/g" datasource.properties
sed -i "s/$pasd/$3/g" datasource.properties
报错如下:
sed: -e expression #1, char 13: unknown option to `s'
需要替换的行为:
monitor.url=http://192.168.25.100:8443/rest
查询资料得知,报错是因为替换的字符串包含有分隔符/
所以这行改一下分隔符就可以解决问题了
改成感叹号!或者| 或者, 等其他来分割
sed -i "s!$url!$1!g" datasource.properties
sed -i "s,$url,$1,g" datasource.properties
该博客讲述了如何使用shell脚本来替换`datasource.properties`配置文件中的URL、用户名和密码,并展示了遇到的sed命令分隔符错误。问题源于替换字符串中包含了分隔符`/`,解决方案是更改sed命令的分隔符为其他字符,如`!`或`,`。

980

被折叠的 条评论
为什么被折叠?



