geloescht_JesterDay Geschrieben 26. Juni 2006 Teilen Geschrieben 26. Juni 2006 Also, ich hab mir hier ein Script geschrieben, welches die Apache-Config um einen eintrag Erweitert und anschließend die Config neu lädt. Das ist soweit auch kein Problem gewesen, nur hab ich zum Testen immer nur nonsense verwendet. Bei der Angabe eines richtigen Pfades (geht um das Hinzufügen von Location-Anweisungern) kommt es zu Problemen mit den Slashes (/) im Pfad. Hier mal mein skript: !/bin/bash # 1 Parameter = Location Pfad if [ $# = 1 ]; then # Apache Config-Datei die geändert wird CONF_PATH=/etc/apache2/sites-available/vhost.conf # Config Datei kopieren cp ${CONF_PATH} ${CONF_PATH}.bak # neue Location in Config-Datei # Ende von VirtualHost finden und durch neuen Eintrag ersetzen sed "/<\/VirtualHost>/s// <Location $1>\n DAV svn\n SVNParentPath \/srv\/subversion$1\n <\/Location>\n<\/VirtualHost>/" ${CONF_PATH} > ${CONF_PATH}.new # neue Datei umbenennen mv -f ${CONF_PATH}.new ${CONF_PATH} # Apache Config neu einlesen apache2ctl graceful else echo "Anzahl Parameter nicht ok!" fi Das funktioniert soweit auch, nur wenn ich als Parameter "/pfad" o.ä. angebe, meckert sed wegen dem Slash. Auch die Angabe von "\/pfad" als Parameter ändert nichts. Hat jemand eine Idee, wie ich das anders tun könnte? Mit tr ersetzen hab ich auch schon probiert, aber tr ersetzt nur 1 Zeichen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
s3ns1 Geschrieben 20. Juli 2006 Teilen Geschrieben 20. Juli 2006 moin! Das Problem tritt auf, weil sed dein / als sonderzeichen nicht korrekt interpretiert, dazu musste dein Script anpassen: --Weil das Zeichen "/" für sed ein Sonderzeichen ist, muss jedem "/" ein "\" vorangestellt werden. Manchmal wird dies benötigt, um einem Sonderzeichen die besondere Bedeutung zu "entziehen". Außerdem sind die einfachen Anführungszeichen (') vor und hinter dem Ersetzungskommando wichtig, weil die Shell sonst versucht, einige der Zeichen wie '#', '$' oder '\' zu ersetzen bevor sie an sed weitergereicht werden. Unter Windows müssen Sie doppelte Anführungszeichen verwenden ("). Windows ersetzt Zeichen wie '%' grundsätzlich, hier müssen Sie eventuell ein wenig experimentieren.-- ---hier--- Ergo musst du dein Script noch ein wenig anpassen, dann sollte das ganze auch laufen. Gruss s3sn1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.