Übergeben Sie Argumente über die Shell-Funktion in OS X Mountain Lion an das Javascript

2342
Larry Kyrala

Die Antwort in Öffnen eines neuen Firefox-Fensters mit URL-Argument ist in Mac OSX Mountain Lion (10.8.2) nicht zulässig. Ich kann diese Antwort oder Frage nicht kommentieren, also musste ich eine neue Frage erstellen.

Es fällt so aus:

$ firefox-window http://www.yahoo.com dyld: DYLD_ environment variables being ignored because main executable (/usr/bin/osascript) is code signed with entitlements 

Das neue Fenster wird erfolgreich geöffnet, aber es ist leer (dh die Umgebungsvariable, die in der Bash-Funktion an AppleScript übergeben wird, wird ignoriert).

Gibt es eine alternative Möglichkeit, Variablen von der Kommandozeile an applescript zu übergeben? (vielleicht nicht mit bash?)

Verweise

"Eine App im Sandkastenmodus kann AppleScript nicht verwenden, um mit einer anderen App auf Ihrem Mac zu kommunizieren, es sei denn, der Entwickler fordert speziell eine Berechtigung dazu an (und erhält diese)."

Ich vermute also, dass diese Einschränkung die oben verwendete Technik verhindert, dh ein Bash-Skript kann kein Apfelskript packen, das mit Firefox spricht.

Abhilfemaßnahme # 1

Rufen Sie es direkt auf, anstatt die Shell-Variable ($ 1) zu verwenden. Das funktioniert zum Beispiel:

$ osascript ~/bin/firefox-window.scpt "http://www.yahoo.com" 

Firefox öffnet ein neues Fenster in Richtung Yahoo.

1
Interessant. Dies ist eine "Sicherheitsfunktion" in Bezug auf Gatekeeper in 10.8, die bereits gemeldet wurde. Ich bin mir nicht sicher, ob es noch eine Lösung gibt. Ich habe Ihre Frage ein wenig umformuliert und verallgemeinert, sonst wäre es eine Kopie der Frage, mit der Sie verlinkt haben. Ich hoffe, dass jemand eine Problemumgehung hat, dann könnte ich auch meine Antwort auf die erste Frage aktualisieren. slhck vor 12 Jahren 0
Danke dir! Ich habe ein paar Fragen zu der Sicherheitsfunktion gesehen, und ich verstehe, was sie zu verhindern versuchen, indem sie es auf diese Weise erzwingen, aber die bisherigen Problemumgehungen zeigen Äpfel, die keine variablen Eingaben enthalten. Meine zweite Vermutung ist, die Funktion in reines Apfelskriptum umzuschreiben und vars von der Kommandozeile aus zu übergeben, anstatt env vars zu verwenden, aber ich arbeite das immer noch. Larry Kyrala vor 12 Jahren 0

1 Antwort auf die Frage

0
Caleb Xu
osascript -e 'tell application "Firefox"' -e 'open location "http://example.com/"' -e 'end tell' 

Das sollte es tun, in einem neuen Tab, nicht in einem neuen Fenster, wenn das in Ordnung ist.