Ich brauche ein Skript, das in der Lage ist, eine zweite Terminalinstanz zu starten und einen Befehl direkt an diese zu übergeben, während es seine eigenen Ausführungen fortsetzt.
Es soll ein Python-Skript starten, das einen Server hostet, während die Hauptinstanz von Terminal ihre Reihe von Ausführungen über einen Zeitraum von (zum Beispiel) 30 Sekunden fortsetzt, dann wäre es in der Lage, die PID des Python-Skripts zu beenden und zu töten diesen sekundären Terminalprozess und fahren Sie fort, bis er abgeschlossen ist.
Hat jemand eine Idee, wie man das macht? Von Windows kommend wäre es sehr einfach, eine BAT-Datei dazu zu bringen, eine zweite BAT-Datei in ihrer eigenen Umgebung auszuführen und sie dann zu einem späteren Zeitpunkt zu beenden.
Sie können den do script
AppleScript-Befehl verwenden, um einen Befehl in einem neuen Terminalfenster auszuführen:
osascript -e 'tell app "Terminal" to do script "uptime"'
Es startet jedoch keinen zweiten Prozess oder keine zweite Instanz für Terminal. Unter OS X gibt es normalerweise nur eine Instanz für jede Anwendung, obwohl Sie verwenden können, open -n
um eine andere Instanz zu öffnen.
Aufbauend auf der vorherigen Antwort können Sie verwenden, do script
um ein zweites Terminalfenster auszuführen und dann sogar mehrere Befehle nacheinander auszugeben-e
osascript -e 'tell app "Terminal" to do script "uptime"' -e 'tell app "Finder" to delete file "filename" on Desktop'
Auf diese Weise können Sie also auch mehrere Aktionen nacheinander mit nur einer Zeile angeben.
kein Hang
run-server &
?Danijel-James W