我正在编写一个bash脚本来简化安装。
我想用新值替换xml文件中的旧数据库设置。 但我没有设法做到这一点。
原始字符串:url =" jdbc:oracle:thin:@localhost:1521:xe"
脚本:
read -e -p "Enter the ORACLE SID: " -i "orcl" ORACLE_SID_VALUE
sed -i '/url="jdbc:oracle:thin:@localhost:1521:xe"/c\url="jdbc:oracle:thin:@localhost:1521:$ORACLE_SID_VALUE"' /home/server/tomcat/conf/Catalina/localhost/server.xml
导致xml文件:url =" jdbc:oracle:thin:@localhost:1521:$ ORACLE_SID_VALUE"
任何人都可以帮助我吗?
答案 0 :(得分:1)
变量不会用单引号扩展。对变量使用双引号:
sed -i '/url="jdbc:oracle:thin:@localhost:1521:xe"/c\url="jdbc:oracle:thin:@localhost:1521:'"$ORACLE_SID_VALUE"'"' \
/home/server/tomcat/conf/Catalina/localhost/server.xml
答案 1 :(得分:1)
单引号内的变量不会被读取为变量。例如,echo '$a'
将在终端上打印$a
。但echo "$a"
会在终端中打印$a
的值。
在这里,我将你的变量放在单引号之外
sed -i '/url="jdbc:oracle:thin:@localhost:1521:xe"/c\url="jdbc:oracle:thin:@localhost:1521:'${ORACLE_SID_VALUE}'"' /home/server/tomcat/conf/Catalina/localhost/server.xml
虽然没有经过测试,但应该有效。