script de shell no se ejecuta en la terminal

script de shell no se ejecuta en la terminal

Creé un scriptA.shen el escritorio y lo hice ejecutable, luego este fue el contenido:

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

Quiero hacer doble clic en esto para abrir la terminal y ejecutar los dos comandos en ella y mantener la terminal abierta. Pero lo que realmente sucede después de hacer doble clic en él y elegir la run with terminalopción es que el terminal se abre por un segundo y luego se cierra. No sé por qué sucede esto, así que agradecería que alguien pudiera decirme por qué sucede esto y cómo solucionarlo.

Respuesta1

Probablemente quieras usarlo gksudosi quieres iniciarlo desde tu escritorio. Eso abrirá una ventana que le pedirá su contraseña.

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

Además, para depurar, probablemente primero quieras ejecutar ese script en tu terminal. De esa forma no se cerrará justo después de imprimir algunos mensajes de error.


Actualizar

Una forma de hacerlo es crear un archivo de la siguiente manera:

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

Luego pon algo como esto en él:

#!/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

Eso funciona muy bien para mí, en general. El terminal gnome acepta parámetros para que pueda cambiar varias configuraciones.

Úselo --working-directory=...en lugar de su cd ...comando. Para obtener variables específicas, probablemente desee utilizar la --profile=...opción.

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

Luego cree el script de perfil para la variable:

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

Obviamente, puedes agregar cualquier otro alias o cualquier otra cosa que necesites en el script del perfil.

Respuesta2

De forma predeterminada, cuando elige la opción "ejecutar en una ventana de terminal", la ventana de terminal (gnome) se cierra una vez finalizada. Élhaceabierto, ya que mencionas que se abre por un segundo. Tu puedes hacerlopermanecerábralo cambiando la configuración en su perfil de terminal:

En el menú (gnome-terminal), elija "Editar" > "Configuración de perfil" > "Título y comando". En la opción "Cuando salga el comando", elija "Mantener abierta la terminal".

Eso debería funcionar.

ingrese la descripción de la imagen aquí

información relacionada