Wie starte ich OS X-Anwendungen über die Befehlszeile mit optionalen Argumenten?


6

Ich suche nach einer einfachen Möglichkeit, verschiedene GUI OS X-Anwendungen über die Befehlszeile und mit verschiedenen Parametern zu starten.

Wenn möglich, möchte ich sie dem System PATH hinzufügen, um sie einfacher aufrufen zu können.

Hinweis: Ich habe es versucht open -a "Google Chrome" --args --disable-pluginsund Chrome gestartet, aber ohne die Plugins zu deaktivieren.


Mögliches Duplikat von Mac OS Apps über die Befehlszeile

Ich würde auch gerne wissen , wie man öffnen von der Kommandozeile mit einer Anwendung sudo priviledge
AbiusX

Antworten:


4

Normalerweise finden Sie die aktuelle ausführbare Datei im Ordner Contents / MacOS des Anwendungspakets. Versuchen Sie es für Chrome so:

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-plugins

1
Hast du es versucht? Bei mir startet Chrome mit aktivierten Plugins.
Sorin

@ sorin-sbarnea Angesichts deines Problems hier und bei der Frage vermute ich, dass Chrome hier ein Problem hat. Ich habe Chrome mit einigen Argumenten in beide Richtungen verwendet
Mark

Dies funktioniert nicht auf die gleiche Weise wie das Öffnen der Anwendung.
AbiusX

1

Im Allgemeinen machen Sie so etwas:

exec "/Applications/MyApp.app/Contents/MacOS/MyAppExecutableFile" [arguments]

Das Ausführen des execBefehls ist wichtig, da dadurch die Terminalsitzung beendet und der gewünschte Befehl geladen wird. Auf diese Weise beenden Sie Ihr Programm nicht, indem Sie Terminal beenden oder das Fenster schließen.

Beachten Sie auch, welche Standardflags gesetzt sind, wenn Sie im Finder auf die Anwendung doppelklicken (ich habe ungefähr 4 oder 5 Standardflags gesehen), und übergeben Sie sie ebenfalls, um ein konsistentes Verhalten zu gewährleisten.

Informationen dazu, was Sie tun möchten, finden Sie in der Dokumentation der jeweiligen Anwendung.

Ich weiß nicht, ob das die richtige Flagge für Chrome ist, daher kann ich dort keinen Kommentar abgeben.


-2

Dies ermöglicht es Ihnen NICHT, ein Argument an die Anwendung zu senden, aber ich habe den Weg zu diesem Thread gefunden, um eine Möglichkeit zu finden, eine Anwendung über die Befehlszeile zu öffnen, und werde zumindest mitteilen, wie dies zu tun ist, falls jemand anderes endet in der gleichen Position.

Es könnte funktionieren, einen Alias ​​in zu erstellen ~/.bash_profile.

Zum Beispiel:

alias affinity="open -a Affinity\ Designer.app"

(Kein Pfad notwendig. Hmm.)

Funktioniert für etwas wie:

$ affinity path/to/file.png

-1. Dadurch wird eine Datei mit der angegebenen App geöffnet , die jedoch nicht zur Übergabe beliebiger Argumente verwendet werden kann.
Blacklight Shining

Recht. Ich habe meinen Weg gefunden, um einfach einen Weg zu finden, eine App über die Kommandozeile zu öffnen. Ich bearbeite meine Antwort, um zumindest anzugeben, dass die Frage des OP nicht wirklich beantwortet wird.
MikeiLL

Ich verlasse meine Ablehnung, weil dieser Beitrag die Frage immer noch nicht beantwortet. (Es wäre besser für diese Frage geeignet , aber eine ähnliche Antwort wurde bereits dort gepostet.)
Blacklight Shining
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.