Folgendes möchte ich erreichen:
- Ich möchte ein Gnomterminal mit fünf Registerkarten öffnen
- Ich möchte eine Reihe von Befehlen (5 - 10 Befehle) auf jeder Registerkarte automatisch
ausführen. Erste Registerkarte: Setzt die Klarsichtansicht und führt danach einen oder mehrere Befehle aus.
Zweite Registerkarte: meldet sich bei einem Server an und führt einige Befehle aus.
Dritte Registerkarte: soll nur einige Befehle ausführen
gnome-terminal --geometry=260x25-0+0 --tab -e "csh -c \"ct setview myViewName; cal\"" –tab --tab --tab
(funktioniert ok, Ansicht ist gesetzt, aber danach wird kein Befehl ausgeführt)
Ich habe versucht, es stattdessen auf diese Weise zu tun und dies im folgenden Skript auszuführen:
gnome-terminal --geometry 125x18-0-26 --tab -t "some title" -e /home/ekido/Desktop/MyScripts/myScript
#!/usr/bin/expect
exec gnome-terminal --geometry 125x49-0+81 –tab
spawn ssh usert@server
expect "password"
send "*******\r"
expect "user@server100:~>"
send “some command\r"
expect "user@server100:~>"
send “some command"
interact
Wenn ich die exec gnome-terminal --geometry 125x49-0+81 –tab
Zeilen aus dem Beispiel entferne und ein Skript aus einer anderen Datei aufrufe, funktioniert dies einwandfrei. Ich werde beim Server angemeldet und alle Befehle ausgeführt. Kann mir jemand helfen, das zu lösen?
Ein Skript zu schreiben, das ich für jede Registerkarte aufrufe, ist keine Option, da ich am Ende 5 Terminals mit jeweils 5-7 Registerkarten haben werde. Das bedeutet, dass 25 bis 30 Skripte geschrieben werden müssen (kostet mehr als es hilft in meinem Problem).
quelle
Antworten:
Dies scheint auf meiner Maschine zu funktionieren:
Bitte beachten Sie, dass die von -e ausgeführten Prozesse beendet werden, sobald sie ausgeführt werden. In diesem Fall wird bash geladen, führt alle Befehle aus, die Sie an bash übergeben, und ist sofort vorhanden. Ich habe die read-Anweisungen eingegeben, um auf Benutzereingaben zu warten. Auf diese Weise werden diese Registerkarten erst geschlossen, wenn Sie eine Taste drücken, damit Sie sie in diesem Beispiel sehen können. Ohne sie würde es so aussehen, als würden nur zwei Registerkarten geöffnet, da die anderen beiden zu schnell ausgeführt und geschlossen würden.
quelle
Da bash nach Abschluss des Befehls beendet wird, können Sie
bash
nach Ihrem Befehl eine andere Instanz aufrufen , um eine interaktive Shell zu erhalten:quelle
Speichern Sie unten als script.sh
Fügen Sie script.sh zu $ PATH hinzu und führen Sie es aus
Siehe Öffnen einer neuen Registerkarte im Gnome-Terminal über die Befehlszeile .
quelle