script shell não está sendo executado no terminal

script shell não está sendo executado no terminal

Criei um scriptA.shno desktop e tornei ele executável então foi esse o conteúdo:

#!/bin/bash
sudo -u userA bash -c 'PACKAGE_PATH=/home/userA/package1; cd /home/userA/scripts'

Quero clicar duas vezes nele para abrir o terminal e executar os dois comandos nele e manter o terminal aberto. Mas o que realmente acontece depois de clicar duas vezes nele e escolher a run with terminalopção, o terminal abre por um segundo e depois fecha sozinho. Não sei por que isso está acontecendo, então agradeceria se alguém pudesse informar por que isso está acontecendo e como superá-lo.

Responder1

Você provavelmente desejará usá-lo gksudose quiser iniciá-lo em sua área de trabalho. Isso abrirá uma janela solicitando sua senha.

#!/bin/bash
gksudo -u userA bash -c 'PACKAGE_PATH=/home/userA/package1; cd /home/userA/scripts'

Além disso, para depurar, você provavelmente deseja executar esse script primeiro em seu terminal. Dessa forma ele não fechará logo após imprimir algumas mensagens de erro.


Atualizar

Uma maneira de fazer isso é criar um arquivo como segue:

/home/user_name/.gnome2/panel2.d/default/launchers/script_name.desktop

Então coloque algo assim nele:

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=gdu-category-peripheral
Name[en_US]=Receiving fax
Exec=gksu /usr/bin/gnome-terminal
Comment[en_US]=Some description...
Name=My Script
Comment=Start my script
Icon=gnome-panel-launcher

Isso funciona muito bem para mim, em geral. O terminal gnome aceita parâmetros para que você possa alterar várias configurações.

Use --working-directory=...em vez do seu cd ...comando. Para obter variáveis ​​específicas, você provavelmente desejará usar a --profile=...opção.

Exec=gksu -u userA /usr/bin/gnome-terminal --profile=/home/userA/profile --working-directory=/home/userA/scripts

Em seguida, crie o script de perfil para a variável:

# In /home/userA/profile
PACKAGE_PATH=/home/userA/package1

Obviamente você pode adicionar qualquer outro alias ou qualquer outra coisa necessária no script de perfil.

Responder2

Por padrão, quando você escolhe a opção "executar em uma janela de terminal", a janela do terminal (gnome-) fecha após a conclusão. Istofazaberto, já que você mencionou que ele abre por um segundo. Você consegueficarabra alterando a configuração no perfil do seu terminal:

No menu (gnome-terminal), escolha "Editar" > "Configurações de perfil" > "Título e comando". Na opção “Quando o comando sai” escolha “Manter o terminal aberto”.

Isso deve funcionar.

insira a descrição da imagem aqui

informação relacionada