Lassen Sie Applescript warten, bis eine Anwendung geschlossen ist, bevor Sie ein Shell-Skript ausführen

3241
Ambush

Ich habe ein Applet, das ich mit Applescript erstellt habe, das eine Anwendung öffnet und nach dem Laden ein Shell-Skript ausführt, das Spotlight entlädt. Ich muss es erst einmal abwarten, bis ich die relevante Anwendung beendet habe, bevor ich ein weiteres Shell-Skript ausführte, um Spotlight erneut zu laden.

Mein Code sieht derzeit so aus:

set appname to “Applications/Cubase 5.app” tell application appname to launch repeat until application appname is running  delay 1 end repeat if application appname is running then do shell script "sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist" password "YOUR_PASSWORD" with administrator privileges end if activate appname 

Ich habe alles ausprobiert, kann es aber nicht verstehen. Ich habe dieses Skript mit meinem begrenzten Wissen gefunden und modifiziert, verstehe aber nicht, wie es funktioniert

Welchen Code muss ich hinzufügen, damit ich auf die Anwendung warten kann, um das zweite Shell-Skript auszuführen, von dem ich weiß, dass es:

do shell script "sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist" password "YOUR_PASSWORD" with administrator privileges 

was würde Spotlight neu laden?

Ich kam mit dem folgenden, das kompiliert, aber nicht wie erwartet funktioniert:

set appname to “Applications/Cubase 5.app” tell application appname to launch repeat until application appname is running  delay 1 end repeat if application appname is running then do shell script "sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist" password "YOUR_PASSWORD" with administrator privileges end if activate appname repeat until application appname is not running delay 1 end repeat if application is not running then do shell script "sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist" password "YOUR_PASSWORD" with administrator privileges end if 

Gibt mir den Fehler Kann die Anwendung nicht ausführen . Ich kann sehen, dass etwas fehlt, weiß einfach nicht was.

Ich bin neu bei Apple und Applescript und eine Antwort wird sehr geschätzt.

0
@Danny - Ich habe den obigen Code mit dem Vorschlag geschrieben, den *** nicht *** einzufügen, aber er tut nicht wie erwartet, wie in meiner überarbeiteten Frage oben beschrieben. Ich hoffe, mein Edit hilft, meine Frage besser zu erklären. Anregungen wären sehr dankbar. Mit freundlichen Grüßen Ambush vor 9 Jahren 0

1 Antwort auf die Frage

1
Danny Schoemann

Sie möchten testen, ob nicht ausgeführt wird

set appname to “Applications/Cubase 5.app” tell application appname to launch repeat until application appname is not running  delay 1 end repeat if application appname is running then do shell script "sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.metadata.mds.plist" password "YOUR_PASSWORD" with administrator privileges end if activate appname 
Vielleicht war meine Frage mehrdeutig. Ich möchte dem vorhandenen Skript etwas hinzufügen, so dass ein anderes Shell-Skript ausgeführt wird, sobald ich die Anwendung beendet und geschlossen habe. Grundsätzlich möchte ich Cubase 5 ausführen, Spotlight entladen. Sobald ich mit Cubase fertig bin und das Programm beendet habe, muss das Skript erneut geladen werden. Hoffe das klärt sich. Danke für die Antwort @Danny Ambush vor 9 Jahren 0
@Ambush - schau genau hin - ich habe Dein vorhandenes Skript um ein Wort ergänzt und jetzt sollte es sich so verhalten, wie Sie es erklären. Anwendungsname läuft _nicht_ Danny Schoemann vor 9 Jahren 0
Ich habe gesehen, dass Sie _not_ hinzugefügt haben, aber ich verstehe nicht, wie das Skript alle 3 Aktionen ausführen soll? Sollte ich nicht irgendwo mehr Code hinzufügen? Ambush vor 9 Jahren 0