Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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.

  • 4 Wochen später...
Geschrieben

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...