Guia programaticamente aberta no gnome-terminal, execute o comando e mantenha a guia aberta


12

Estou tentando escrever um comando que iniciará algumas guias de terminal, executará algo em cada guia e manterá cada uma delas aberta após a conclusão do comando, para que eu possa ver a saída e digitar mais comandos em cada guia

algo assim:

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

mas o problema é que as guias fecham assim que os comandos "ls" terminam. Alguém sabe como fazer com que as guias fiquem abertas?

Respostas:



10

Se você possui xdotoole wmctrlinstalou, o seguinte script de shell pode funcionar:

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

Eu uso assim:

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

Encontrei essa idéia no blog da Trustin Lee .


Obrigado. Isso funciona muito bem. Eu tenho que adicionar um sleep 1depois do ctrl + shift + t para fazê-lo funcionar para mim. Eu vou aceitar isso, se nada mais vem à tona em breve

Sim - eu descobri que tinha que sleep 2fazê-lo funcionar 100% do tempo. Grande solução - embora eu estou agora a abrir 8 abas, que ssh em vários servidores, iniciar vários processos etc, usando o seguinte: a minha configuração da manhã é agora totalmente roteirizada :)
Max Williams

Na verdade wmctrlnão é necessário.
Nedim
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.