0
我想创建一个bash脚本来更改应用程序的配置文件。该脚本将读取一个变量并将要更改的设置的值替换为变量值。在bash脚本中用变量替换字符串
#!/bin/bash
mysqlurlenv1="jdbc:mysl://xx.xx.xx.xx:3306
mysqlurlenv2="jdbc:mysl://xx.xx.xx.xz:3306
configFile=app.conf
pattern=$1
case "$pattern" in
1)
sed -i.bak "s/^\(mysql.db.url =\).*/\1 ${mysqldburl_env1}/"
;;
2)
sed -i.bak "s/^\(mysql.db.url =\).*/\1 ${mysqldburl_env2}/"
;;
*)
echo "Wrong input...try again"
esac
我有以下项
mysql.db.driver = com.mysql.jdbc.Driver
mysql.db.url = jdbc:mysql....
mysql.db.uname = admin
一个配置文件,当我跑我得到这个错误 的sed脚本:-e表达式#1,焦炭40:未知的选项为'S'
如何在配置文件中获取那些已定义的变量?任何帮助将赞赏
RGDS 声浪
你真不该使用的sed像这样的扩展型变量。你所引用的变量有/参考也被sed用作分隔符,因此sed错误。 –
前两个变量未终止。 – tarsis