Wie kann ich ein Programm mit Befehlszeilenargumenten in Mac OS ausführen
Gibt es eine einfache Möglichkeit, Befehlszeilenargumente an eine Anwendung auf einem Mac anzuhängen? Um z. B. Opera im Kiosk-Modus zu starten oder ein anderes Profil in Firefox zu verwenden, kann ich
$ /Applications/Opera.app/Contents/MacOS/Opera -kioskmode
$ /Applications/Firefox.app/Contents/MacOS/firefox -P profilename -no-remote
eingeben. Unter Windows kann ich die Argumente an die Eigenschaften der Verknüpfung anhängen, aber da Macs keine Verknüpfung per se verwenden und die Anwendungen direkt ausführen, ist dies nicht möglich.
Ich habe festgestellt, dass das Starten der Anwendungen über Bash oder Applescript teilweise funktioniert:
# Bash
#!/bin/sh
/Applications/Firefox.app/Contents/MacOS/firefox -P default -no-remote
# Applescript
do shell script "exec /Applications/Opera.app/Contents/MacOS/Opera -kioskmode"
Ich kann diese ausführbar machen und ein Icon zuweisen und alles funktioniert prima, außer dass, wenn ich eines dieser Pseudoprogramme starte, entweder ein Terminalfenster oder ein Applescript-Icon geöffnet bleibt, solange die Anwendung geöffnet ist. Vermutlich würde die Verwendung des Applescript-Befehls open
dies vermeiden, aber da ich die Anwendung nicht so ausführe, wie sie verpackt ist (nur /Applications/Firefox
), funktioniert es nicht.
Gibt es also eine bessere Möglichkeit, Anwendungen mit Kommandozeilenargumenten auszuführen? Wenn nicht, gibt es eine Möglichkeit, zu verhindern, dass eine persistente Terminalsitzung oder ein Applescript-Symbol geöffnet bleibt, während die Anwendung geöffnet ist?
Edit
Laut einer Mozilla Wiki-Seite ist es am besten, ein Skript zu verwenden, um die Anwendung mit Argumenten auszuführen. Das Hinzufügen eines &
am Ende des Skripts tötet das persistente Terminalfenster. Das einzige Ärgernis ist jetzt, dass es ein totes, abgemeldetes Terminal-Fenster öffnet (was besser ist als das persistente, aber trotzdem…)
#!/bin/sh
/Applications/Firefox.app/Contents/MacOS/firefox -P default -no-remote &