• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Sondernzeichen in "Do shell script"

TBH

Alkmene
Registriert
28.12.06
Beiträge
31
Guten Tag allerseits,
ich habe schon google und die Forumssuche befragt, aber anscheinend hatte ich die falschen Suchworte (escape special characters applescript ...). Momentan habe ich folgenden Befehl in einer .command-Datei:
curl "http://fritz.box:49000/upnp "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination" -d "<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:ForceTermination xmlns:u='urn:schemas-upnp-org:service:WANIPConnection:1' /> </s:Body> </s:Envelope>"

Jetzt würde ich diesen Befehl zwecks größerem Komfort (Benutzerabfragen usw) in ein AppleScript verpacken und per "do shell script" ausführen lassen. Wie maskiere ich jetzt die Sonderzeichen im o.g. Befehl richtig? Welche Zeichen fallen überhaupt unter die zu maskierenden Zeichen?
Vielen Dank,
TBH
 

CloneOfMyself

Weigelts Zinszahler (Rotfranch)
Registriert
24.02.07
Beiträge
253
wenn der befehl so in der shell läuft, dann solltest du damit auskommen, die doppelten anführungen zu maskieren (mit \" ), damit diese den string nicht unterbrechen, den du im applescript an do shell script übergibst. wären backslashs im string, so müssten diese ebenfalls maskiert werden (mit \\).

ein wenig merkwürdig kommt mir diese stelle ja vor wegen der verschachtelten doppelten anführungen. das klappt so? :
"Content-Type: text/xml; charset="utf-8""
 

TBH

Alkmene
Registriert
28.12.06
Beiträge
31
Ich hab den Befehl von http://www.wehavemorefun.de/fritzbox/index.php/Mac_OS_X#Neue_IP-Adresse_per_UPnP (Kenne mich mit UPnP leider nicht wirklich aus) und er läuft anstandslos in der Shell.
Maskiert man nur die Anführungszeichen wird das Script nicht ausgeführt mit dem Fehler:

sh: -c: line 0: syntax error near unexpected token `<'
sh: -c: line 0: `curl "http://fritz.box:49000/upnp "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination" -d "<?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:ForceTermination xmlns:u='urn:schemas-upnp-org:service:WANIPConnection:1' /> </s:Body> </s:Envelope>"'

Die spitzen Klammern zu maskieren hilft aber irgendwie auch nichts...