O que eu costumava fazer é:
-
Abra manualmente uma instância de terminal para executar os seguintes comandos e arquivos de shell
-
Executar
PACKAGE_PATH=/home/userA/package1:/home/userA/package2:$PACKAGE_PATH
-
executar:
cd /home/userA/scripts
-
executar:
varset.sh
que exporta e define algumas variáveis.
-
executar:
source ff.sh $input $output
-
executar:
bb.sh
que me pede para inserir um número durante sua execução.
-
executar
bc.sh 8
Então eu tive que copiar manualmente e colá-los no terminal antes de cada execução.
O que eu quero fazer agora é colocar tudo isso no arquivo de script que irá abrir automaticamente o terminal e executá-los em sequência para que o próximo comando só seja executado quando o primeiro estiver pronto, para que eu não precise faça isso manualmente mais.
Depois de aplicar a sugestão de muru, encontrou aqui Eu usei o script abaixo apenas para as etapas 1 a 4, mas não está funcionando corretamente:
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''
Não é executado na mesma sequência que eu coloquei.
Isto abre o terminal com sucesso, mas a primeira linha aparece no terminal é uma mensagem que é encontrada em varset.sh
(embora este seja o terceiro comando a ser executado) e a outra coisa é que nenhuma das variáveis que deveriam ser set usando este varset.sh
está setado, por exemplo quando eu uso echo $ var1 (que é encontrado em variables.sh) é nada mostrar 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 /home/userA/scripts
.
A terceira coisa é que esse comando PACKAGE_PATH=PACKAGE_PATH=/home/userA/package1:/home/userA/package2:$PACKAGE_PATH
, que define a variável $ PACKAGE_PATH, não está funcionando.
Então, se alguém puder, por favor, informe como executar esses comandos e arquivos shell na sequência solicitada.