1
이 결합 부분의 문자열을 찾아 교체하는 코드 부분을 가지고 있는데, 문자열을 대체 할 때 스크립트가 작동하지만 문자열이 path 일 때 작동하지 않습니다. sed를 사용하여 경로를 바꿀 수 없습니다
#!/bin/bash
tomcatDirName="tomcat801"
tomcatSvcName="tomcatSvc"
tomcatSvcUser="tomcatUsr"
tomcatSvcGrp="tomcatGrp"
installationPath="/opt/app"
tomcatDirPath="$installationPath/$tomcatDirName"
initDTomcatFilePath="/root/scripts/tomcat801"
javaDirName="java"
javaDirPath="$installationPath/$javaDirName"
jdkDirPath="$javaDirPath/jdk1.8.0_45"
declare -A TomcatInitD=(
\t ["^CATALINA_HOME.*"]="CATALINA_HOME=$tomcatDirPath"
\t ["^TOMCAT_USER.*"]="TOMCAT_USER=$tomcatSvcUser"
\t ["^TOMCAT_SVC.*"]="TOMCAT_SVC=$tomcatSvcName"
\t ["^JAVA_PATH.*"]="JAVA_PATH=$jdkDirPath"
)
for i in "${!TomcatInitD[@]}"
do
\t value="${TomcatInitD[$i]}"
\t key="$i"
\t sed -i -e "s/$key/$value/" $initDTomcatFilePath
done
sed: -e expression #1, char 35: unknown option to `s'
sed: -e expression #1, char 27: unknown option to `s'
어떤 사람이 나에게 무엇이 잘못되었거나 어떻게해야하는지 가르쳐 줄 수 있습니다. 많은 감사드립니다.
감사 :
당신은 당신의
sed
대안 구분 기호를 사용하여 변경할 수 있습니다. 그것은 일했다 .. – Vagho