Ich habe diesen Teil eines Codes, der Zeichenfolgen aus einem assoziativen Array findet und ersetzt, das Skript funktioniert, wenn es Zeichenfolgen ersetzt, aber es funktioniert nicht, wenn die Zeichenfolge Pfad ist.kann Pfad nicht mit sed ersetzen
#!/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
ich bin immer 2 Zeilen Fehler auf den 2 Wegen, die ich sie zu ersetzen versuchen.
sed: -e expression #1, char 35: unknown option to `s'
sed: -e expression #1, char 27: unknown option to `s'
kann mir jemand sagen, was falsch ist oder wie es geht, vielen dank.
Dank. es funktionierte .. – Vagho