Übergeben von Befehlszeilen-Args zum "Öffnen" auf dem Mac

12473
dtlussier

Ich verwende den openBefehl vom Terminal, um ein App-Bundle zu öffnen, und möchte ein Befehlszeilenargument an die zugrunde liegende ausführbare Datei übergeben.

Ist das mit dem offenen Befehl möglich?

Der Grund, warum ich den Open-Befehl überhaupt verwende, ist, dass hier kein Terminal-Fenster zur Unterstützung des gestarteten Prozesses eingebunden wird. Gibt es andere Möglichkeiten als diesen openBefehl?

Mehr Informationen:

Die Anwendung, die ich ausführen möchte, ist ein Open Source-Visualisierungsprogramm (Paraview), das ich selbst zusammengestellt habe. Ich weiß, dass die grundlegende ausführbare Datei tatsächlich Befehlszeilenargumente benötigt. Die ausführbare Datei selbst befindet sich im App-Paket paraview.app/Contents/MacOS/paraview.

2
Können Sie weitere Informationen dazu geben, welche App (s) Sie starten? Unterschiedliche Apps behandeln Kommandozeilenargumente unterschiedlich (manche werden sie wahrscheinlich einfach ignorieren). Doug Harris vor 13 Jahren 0
@Doug Harris - Ich habe der Frage einige weitere Informationen hinzugefügt. Vielen Dank. dtlussier vor 13 Jahren 0

1 Antwort auf die Frage

5
NReilingh

Wie pro $man open, können Sie erfolgreich sein, mit$open MyApp.app --args argument1

Natürlich können Sie die ausführbare Datei auch immer direkt ausführen und Ihrem Befehl ein kaufmännisches Und folgen, das den Hintergrund bildet.

$/path/to/My.app/Contents/MacOS/executable argument &

Sieht so aus, als sei "--args" eine neue Option in 10.6. dtlussier vor 13 Jahren 0
Wenn Sie dem Befehl mit "&" folgen, wird er zwar in den Hintergrund gestellt, aber der Prozess bleibt ein Kind der Shell, in der er erstellt wurde. Dies zu vermeiden ist einer der Vorteile von "open". dtlussier vor 13 Jahren 3
Ah, ausgezeichneter Punkt. Ich wusste nicht, wie sich dies für GUI-Apps auswirkt. NReilingh vor 13 Jahren 0