Bash-Skript, das den zweiten Terminalprozess startet?

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.

Benötigen Sie für den zweiten Prozess wirklich ein Terminalfenster? Wenn nicht, würde es ausreichen, das Serverskript als auszuführen run-server &?
Tab, Instanz, wie auch immer Sie es nennen möchten. Ja ich brauche es.

Antworten (2)

Sie können den do scriptAppleScript-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 -num eine andere Instanz zu öffnen.

Danke, ich weiß nicht, wie ich das übersehen habe. Ich habe in der letzten Woche verschiedene Dinge ausprobiert, und das tut genau das, was ich will. Danke schön.

Aufbauend auf der vorherigen Antwort können Sie verwenden, do scriptum 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.