osascript mit bash-Variable mit einem Leerzeichen

9

Ich verwende osascript in Bash, um eine Nachricht im Benachrichtigungscenter (Mac OS X) über Apple Script anzuzeigen. Ich versuche, eine Textvariable von Bash an das Skript zu übergeben. Für eine Variable ohne Leerzeichen funktioniert das gut, aber nicht für eins mit Leerzeichen:

Definieren

%Vor%

und mit

%Vor%

funktioniert, aber mit

%Vor%

ergibt

%Vor%

Was muss ich ändern (ich bin neu dazu)? Danke!

    
Bernd 28.05.2014, 22:39
quelle

2 Antworten

13

Sie könnten stattdessen versuchen:

%Vor%

Oder:

%Vor%

Dies behebt das Problem der Manipulation von Variablen, die Leerzeichen in bash enthalten. Diese Lösung wirkt jedoch nichts gegen die Injektion von osascript-Code. Daher wäre es besser, eine der Lösungen von Charles Duffy zu wählen oder bash -Parameter-Erweiterung zu verwenden:

%Vor%

Danke an mklement0 für diesen sehr nützlichen Vorschlag!

    
Idriss Neumann 28.05.2014, 22:47
quelle
8

Diese Version ist im Gegensatz zu Varianten, die versuchen, String-Verkettungen zu verwenden, absolut sicher gegen Injektionsangriffe.

%Vor%

... oder, wenn man es vorzieht, Code anstelle von argv in stdin einzugeben:

%Vor%     
Charles Duffy 28.05.2014 22:53
quelle