mal wieder escape probleme bei script

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von tco, 24.08.2011.

  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. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 bitmuncher, 25.08.2011
    Zuletzt bearbeitet: 25.08.2011
    bitmuncher

    bitmuncher Der Stillgelegte

    Dabei seit:
    08.05.2007
    Beiträge:
    3.171
    Zustimmungen:
    0
    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.
     
  4. 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. 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...
  2. 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...
  3. 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...
  4. 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...
  5. Gnome 3.20 rückt Tastaturkürzel wieder mehr in den Vordergrund

    Gnome 3.20 rückt Tastaturkürzel wieder mehr in den Vordergrund: Alle Apps, die Tastaturkürzel unterstützen, sollen mit einer Anzeige der verfügbaren Kürzel in Form eines eingeblendeten Fensters ausgestattet...