Ist es möglich, eine Datei über die Befehlszeile in OSX zu öffnen und dann eine andere zu öffnen, jedoch erst, nachdem die erste Anwendung vollständig geladen wurde?

2

Ich habe ein Setup für Live-Shows mit Ableton und Reason. Normalerweise öffne ich die Ableton-Datei, warte, bis sie geladen ist, und öffne dann Reason. Der Grund dafür ist, dass Reason als Slave für Ableton fungiert, sodass Ableton den Ladevorgang beenden muss, bevor Reason gestartet wird.

Ich habe dies versucht (mit einfachem und doppeltem kaufmännischem Und), aber es möchte beide gleichzeitig öffnen.

open "~/first_file.als" & open "~/second_file.rns"

Wenn dies stattdessen mit AppleScript möglich ist, wäre ich dazu bereit. Ich benutze Alfred, um den Befehl auszuführen.

Vielen Dank!

Martin Boynton
quelle
1
Das Hauptproblem besteht darin, dass Sie nicht erkennen können, wann eine Anwendung das Laden einer Datei abgeschlossen hat. Der Öffnungsbefehl ist nicht blockierend und wird nur ausgelöst. Das -W Schalter wird es blockieren, bis die Anwendung wieder beendet wird. Mir fallen hier nur manuelle Sleep-Timer ein.
slhck

Antworten:

2

Versuchen Sie, Ihren Befehl einige Sekunden lang in den Ruhezustand zu versetzen (oder wie lange es dauert, bis Ableton geladen ist).

d.h.

#!/bin/bash

open "~/first_file.als" 
sleep 10
open "~/second_file.rns"
jessh
quelle
1

Sie können AppleScript verwenden - die open-Befehle blockieren das Skript, bis eine Anwendung das Öffnen einer Datei abgeschlossen hat.

osascript -e 'tell app "Live"
open POSIX file ((system attribute "HOME") & "/Audio/Template Project/Template.als")
end
tell app "Finder" -- open in the default application
open POSIX file "/Library/Desktop Pictures/Beach.jpg" as alias
end'
Lri
quelle
0

Sie können dies mit einer Zeile erreichen.

open "~/first_file.als" ; sleep 5 ;  open "~/second_file.rns"

HINWEIS: Passen Sie die Ruhezeit nach Bedarf an.

Leider kann ein Schlaf in der Tat notwendig sein, je nachdem, was Sie wirklich erreichen wollen.

E1Suave
quelle