Öffnen Sie programmgesteuert die Registerkarte in gnome-terminal, führen Sie den Befehl aus und lassen Sie die Registerkarte geöffnet bleiben


12

Ich versuche, einen Befehl zu schreiben, der einige Terminal-Registerkarten startet, in jeder Registerkarte etwas ausführt und jede Registerkarte geöffnet bleibt, nachdem der Befehl abgeschlossen ist, damit ich die Ausgabe überprüfen und weitere Befehle in jede Registerkarte eingeben kann

etwas wie das:

gnome-terminal --tab -e "ls -a" --tab -e "ls"

Das Problem dabei ist jedoch, dass die Registerkarten geschlossen werden, sobald die "ls" -Befehle beendet sind. Weiß jemand, wie die Registerkarten geöffnet bleiben?

Antworten:



10

Wenn Sie haben xdotoolund wmctrlinstalliert haben, funktioniert möglicherweise das folgende Shell-Skript:

#!/usr/bin/env bash

window="$(xdotool search --class gnome-terminal | head -1)"
xdotool windowfocus $window
xdotool key ctrl+shift+t
xdotool type "$*"
xdotool key Return

Ich benutze es so:

$ run-in-new-tab 'ls -l'

Ich habe diese Idee auf Trustin Lees Blog gefunden .


Vielen Dank. Das funktioniert ganz gut. Ich muss ein sleep 1nach der Strg + Umschalt + t hinzufügen , damit es für mich funktioniert. Ich werde das akzeptieren, wenn bald nichts anderes auftaucht

Ja, ich musste sleep 2es 100% der Zeit zum Laufen bringen. Tolle Lösung - ich öffne jetzt 8 Registerkarten, die auf verschiedene Server zugreifen, verschiedene Prozesse starten usw.: Mein Morgen-Setup ist jetzt komplett skriptgesteuert :)
Max Williams

Ist eigentlich wmctrlnicht erforderlich.
Mittwoch,
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.