como executar o comando em um terminal já aberto através de um script de shell

1

Estou executando um shell script.sh que deve abrir o terminal e executar alguns comandos neste terminal aberto. O que acontece é que o terminal é iniciado, mas os seguintes comandos não são executados neste terminal. Se alguém puder por favor me diga como depois de abrir o terminal através deste script.sh para rodar nele alguns outros comandos. Este é o meu arquivo script.sh :

#!/bin/bash
gksu -u userA /usr/bin/gnome-terminal PACKAGE_PATH=/home/userA/package1; cd /home/userA/scripts

para que o primeiro comando gksu -u userA /usr/bin/gnome-terminal abra uma instância de terminal, estou perguntando como executar os dois comandos a seguir PACKAGE_PATH=/home/userA/package1 e cd /home/userA/scripts nessa instância de terminal aberta usando o script.sh

EDITAR:

depois de aplicar a sugestão de muru, é isso que eu usei: %código% mas não é executado na mesma sequência que eu coloquei.

A primeira linha aparece no terminal é uma mensagem que é encontrada em variables.sh (embora este deva ser o terceiro comando a ser executado) e a outra coisa é que nenhuma das variáveis que devem ser definidas usando este gnome-terminal -x sudo -u userA bash -c 'PPACKAGE_PATH=/home/userA/package1:/home/userA/package2:$PACKAGE_PATH; cd /home/userA/scripts; source varset.sh; bash' está definido, por exemplo, quando eu uso o echo $ var1 (que é encontrado em variables.sh) é exibir nada, o que significa que as variáveis não estão definidas, a única coisa que funciona em variables.sh é a mensagem de eco exibida.

A segunda linha que aparece no diretório é o diretório de trabalho do terminal que está definido como varset.sh .

A terceira coisa é que esse comando /home/userA/scripts , que define a variável $ PACKAGE_PATH, não está funcionando.

Então, se alguém puder, por favor, informe como executar este comando nesta sequência e definir as variáveis no primeiro comando e variáveis no arquivo PACKAGE_PATH=PACKAGE_PATH=/home/userA/package1:/home/userA/package2:$PACKAGE_PATH shell.

    
por Tak 23.09.2014 / 06:39

1 resposta

1

Eu sugeri o seguinte como uma maneira de manter o shell aberto:

gnome-terminal -x sudo -u userA bash -c 'PACKAGE_PATH=/home/userA/package1:/home/userA/package2:$PACKAGE_PATH; \
  cd /home/userA/scripts; \
  source varset.sh; \
  bash'

No entanto, o último bash não será afetado pela atribuição de $PACKAGE_PATH ou de source varset.sh se eles não forem exportados.

Então:

gnome-terminal -x sudo -u userA bash -c 'export PACKAGE_PATH=/home/userA/package1:/home/userA/package2:$PACKAGE_PATH; \
  cd /home/userA/scripts; \
  source varset.sh; \
  bash'

com varset.sh exportado deve fazer o truque.

    
por muru 24.09.2014 / 15:58