mal wieder escape probleme bei script

Diskutiere mal wieder escape probleme bei script im Shell-Skripte Forum im Bereich Programmieren unter Linux/Unix; bzw. bash einzeiler: ich versuche über ssh einen sed zu machen. natürlich frisst sed den so nicht. mir ist nur nicht ganz klar was ich escapen...

  1. tco

    tco sysinstall/noob

    Dabei seit:
    22.01.2007
    Beiträge:
    20
    Zustimmungen:
    0
    bzw. bash einzeiler:

    ich versuche über ssh einen sed zu machen. natürlich frisst sed den so nicht. mir ist nur nicht ganz klar was ich escapen muss...
    kann sich das mal einer anschauen?

    Code:
    ssh user@host "/usr/bin/sed -e 's!<sysproperty key="hostname" value1="." value2="."/>!<sysproperty key="hostname" value="$newvalue1" value2="false"/>!g' -e 's!<sysproperty key="hostname" value="$newvalue1" value2="."/>!<sysproperty key="hostname" value1="$nrmihostname" value2="true"/>!g' path/file.xml.saved > path/file.xml"
    da sed wohl immer nur eine anweisung ausführt sind zwei anweisungen dabei. value1 und value2 sind dabei schon gesetzt. value2 idR mir false. ich versuch mit dem '.' beide fälle abzufangen.
    however, lokal funktiert das. über ssh nicht mehr...

    danke schonmal!
     
  2. #2 bitmuncher, 25.08.2011
    Zuletzt bearbeitet: 25.08.2011
    bitmuncher

    bitmuncher Der Stillgelegte

    Dabei seit:
    08.05.2007
    Beiträge:
    3.175
    Zustimmungen:
    3
    Da du den Befehl mit doppelten Anführungszeichen einleitest, müssen sämtliche weiteren bis zu den schliessenden doppelten Anführungszeichen escaped werden. Sonst ist nämlich der Befehl, den du via SSH ausführst, der folgende: "/usr/bin/sed -e 's!<sysproperty key=". Alles was danach kommt gehört dann für die Shell nicht mehr zum Befehl.

    Ausserdem wird die Shell vermutlich Variablen wie $newvalue1 als Umgebungsvariablen interpretieren und sie durch leere Werte ersetzen, sofern sie nicht tatsächlich als Umgebungsvariablen definiert sind.

    Nachtrag: Zweiteres würde ich allerdings nicht beschwören, da ja die Sed-Anweisungen mit einfachen Anführungsstrichen geklammert sind, was die Interpretation von Variablen eigentlich verhindern sollte.
     
  3. tco

    tco sysinstall/noob

    Dabei seit:
    22.01.2007
    Beiträge:
    20
    Zustimmungen:
    0
    hat mir geholfen, danke!
    ich musste alle doppelten anführungszeichen escapen. dazu noch $newvalue1 in einfache anführungszeichen setzen.
     
Thema:

mal wieder escape probleme bei script

Die Seite wird geladen...

mal wieder escape probleme bei script - Ähnliche Themen

  1. mysql DB wiederherstellung simulieren

    mysql DB wiederherstellung simulieren: Hallo wenn ich z.bmeine DB sichere mit mysqldump -u root -passwort --all-databases --events| gzip > backup.sql.gzwie kann ich das Backup...
  2. Wiederherstellen von überschriebenen Dokumenten auf debian samba

    Wiederherstellen von überschriebenen Dokumenten auf debian samba: Ich habe ein Problem. Vor Kurzem hat der Trojaner cryptologer einen Schaden eingerichtet. Glücklicherweise gab es eine Sicherung auf...
  3. Bootloader sichern und wiederherstellen mit dd

    Bootloader sichern und wiederherstellen mit dd: Hi, im Netz gibt es einige Guides in denen beschrieben ist wie man mit dd den Bootloader, den gesamten MBR oder den MBR inkl. des versteckten...
  4. Entwicklung von Shotwell wieder aufgenommen

    Entwicklung von Shotwell wieder aufgenommen: Knapp ein Jahr nach der letzten Hauptversion des populären Bildbetrachters »Shotwell« ist mit der Version 0.23 die erste unter der Federführung...
  5. Sourceforge will Reputation wieder herstellen

    Sourceforge will Reputation wieder herstellen: Nach dem erfolgten Verkauf von Sourceforge von Dice an SourceForge Media will die bekannte Projekt-Hosting-Seite ihre beschädigte Reputation...