Ubuntu 16.04 bash - posso abrir duas janelas do terminal interativo em um único script?

1

Sempre que inicio uma sessão de manipulação de dados, eu tenho que abrir manualmente dois terminais - um para trabalhar, e outro que roda o gnuplot, para que eu possa carregar rapidamente um programa de plotagem para ver os resultados.

Ambos são abertos no mesmo diretório / home / pi / python, onde os dados são constantemente registrados automaticamente e disponíveis para análise.

Para minimizar a digitação, criei um script chamado pj que eu coloquei em / usr / sbin (no meu $ PATH) que contém

#!/bin/bash
cd /home/pi/python

Eu invoco digitando

. pj      (notice the space so when it exits it stays there)

Então eu tenho que clicar para abrir uma segunda janela de terminal onde eu executo um script gp que contém os seguintes comandos:

#!/bin/bash
cd /home/pi/python
gnuplot

Este eu invoco com

gp   

não note nenhum ponto antes do comando porque eu não me importo com o que acontece quando ele eventualmente sai - eu costumo deixá-lo aberto o dia todo.

Existe uma maneira no bash de ter um comando fazer as duas coisas para mim?

A questão está no título: posso abrir duas janelas do terminal interativo em um único script?

Simplificando, gostaria que um comando abrisse duas janelas de terminal no mesmo subdiretório, com uma delas executando o gnuplot no modo interativo e a outra no prompt do bash.

    
por SDsolar 24.07.2017 / 16:18

2 respostas

1

Graças ao empurrão do @ Austin na direção certa, aqui está o roteiro que acabou funcionando.

Ele se chama go e está no meu $ PATH (/ usr / bin nas máquinas Ubuntu e / usr / sbin nas máquinas Raspbian), então funciona de qualquer lugar:

#!/bin/bash
cd /home/pi/python
gnome-terminal -e gnuplot &
gnome-terminal &

Tudo o que tenho que fazer é digitar

go

e abre as duas janelas que eu preciso.

Curiosamente, adicionar uma linha de saída no final não fechará o terminal original, mas tudo bem.

Isso economiza tempo, com certeza.

    
por 24.07.2017 / 22:18
1

Se você invocar um emulador de terminal a partir da linha de comando em outro emulador de terminal, ele (geralmente) criará uma nova janela e retornará ao prompt de comando no primeiro emulador de terminal. Com base nisso, algo nos moldes de:

#!/bin/bash
cd python
<whatever-terminal-emulator> --command gnuplot

Deve obter o que você quer (embora a opção --command possa ser diferente se você estiver usando um emulador de terminal realmente simples como o xterm (para esses, você normalmente apenas omite a opção --command ) ).

    
por 24.07.2017 / 16:34