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 -
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>....\"") -
@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.
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden