A livello di codice aprire la scheda in gnome-terminal, eseguire il comando e tenere la scheda aperta


12

Sto cercando di scrivere un comando che avvierà alcune schede del terminale, eseguirà qualcosa in ciascuna scheda e che ogni scheda rimanga aperta dopo che il comando è terminato, quindi posso guardare l'output e digitare più comandi in ogni scheda

qualcosa come questo:

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

ma il problema è che le schede si chiudono appena finiscono i comandi "ls". Qualcuno sa come tenere aperte le schede?

Risposte:



10

Se hai installato xdotoole wmctrlinstallato, potrebbe funzionare il seguente script di shell:

#!/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

Lo uso così:

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

Ho trovato questa idea sul blog di Trustin Lee .


Grazie. Funziona abbastanza bene. Devo aggiungere un sleep 1dopo il ctrl + maiusc + t per farlo funzionare per me però. Accetterò questo se nient'altro arriverà presto

Sì, ho scoperto che dovevo sleep 2farlo funzionare il 100% delle volte. Ottima soluzione però - ora sto aprendo 8 schede, che si spostano su vari server, avviano vari processi ecc., Usando questo: la mia configurazione mattutina è ora totalmente scritta :)
Max Williams

In realtà wmctrlnon è richiesto.
nedim,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.