Como executar comandos sequencialmente emulando um usuário no terminal usando um shell script

1

Eu gostaria de fazer o seguinte:

  1. Abra um terminal.
  2. Altere para o diretório no qual o script de destino reside.
  3. Abra o arquivo de texto que fornece a entrada para o script de destino. Segure / espere até que o usuário tenha salvo e fechado o arquivo de texto.
  4. Execute o script de destino.

Eu escrevi o seguinte script para fazer o acima:

#!/bin/bash 
echo "hello"
gnome-terminal -x bash -c "cd ~/Scripts;pwd;gedit input.txt;python test.py;exec $SHELL"
echo "good bye"

O texto acima me fornece a seguinte saída:

user4@user-pc-4:~/Desktop$ ./DAT_run.sh
hello
good bye

E no novo terminal gnome aberto, vejo a seguinte mensagem:

/home/user4/Scripts
From python script
From python script
From python script
From python script
From python script

O acima indica que ele executou o código python e meus requisitos 1,2 e 4 foram atendidos (não o terceiro). Não consigo manter a janela gedit até que tenha sido salva e fechada.

O que eu estou querendo saber é - por que o comando gedit está sendo tratado como um processo em segundo plano quando eu não indiquei nada escrevendo & no final da instrução? Como posso ter certeza de que meu gedit está sendo executado como um processo em primeiro plano e exige que o usuário assuma o controle?

O que poderia estar errado aqui? Eu sou novo em scripts de shell e sinto que poderia muito bem estar faltando alguma coisa aqui. Como posso alcançar todos os meus requisitos acima?

    
por skrowten_hermit 06.04.2017 / 09:22

0 respostas