NEWS
Aufruf exec aus JavaScript und Übergabe Parameter
-
Hi,
ich rufe per Javascript exec auf und habe auch über sudoers den Befehl erlaubt. Das klappt auch grundsätzlich, aber ich muss mehrere Parameter mitgeben:
exec("sudo curl -X POST https://1234.meinedomain.de -H "Content-Type: application/xml" -H "Accept: application/xml" -d "<?xml version='1.0' encoding='utf-8'?><request>...."
Das Problem wird sein, dass Anführungszeichen und diese Zeichen ' darin vorkommen.
Wie kann ich das ganze formatieren, damit ich den ganzen Befehl inkl. Parameter weitergeben kann?
Gruss,
Mitch -
@mitch Mach das ganze in einfache Anführungszeichen. Dann aber innen drin mit doppelten oder umgekehrt, also innen nur einfache und aussen doppelte. Alternativ kannst Du wenn Du es so machst und alles in doppelte steckst, die doppelten Anführungszeichen innerhalb des Strings mit einem Backslash maskieren.
Also so:
exec("sudo curl -X POST https://1234.meinedomain.de -H \"Content-Type: application/xml\" -H \"Accept: application/xml\" -d \"<?xml version='1.0' encoding='utf-8'?><request>....\"")
-
@mickym Also nur Baskslash bei dem Zeichen den ich auch am Anfang und am Ende des Befehls habe. Single Quote kann also ignoriert werden.
Werde ich testen und hier berichten.
-
@mitch Ich habs Dir doch unten gezeigt - wenn der komplette String/Parameter des exec Befehls in doppelten Anführungszeichen steht, dann müssen ALLE doppelten Anführungszeichen innerhalb des Übergabeparameters mit Backslash maskiert werden.