GNU/Linux >> Tutoriales Linux >  >> Linux

Ejecute un script de shell en la nueva terminal desde la terminal actual

Vine aquí queriendo descubrir cómo hacer que un script genere un terminal y se ejecute en él, así que para aquellos que quieran hacer eso, descubrí esta solución:

if [ ! -t 0 ]; then # script is executed outside the terminal?
  # execute the script inside a terminal window with same arguments
  x-terminal-emulator -e "$0" "[email protected]"
  # and abort running the rest of it
  exit 0
fi

He aquí un ejemplo sencillo para empezar:

Para escribir un script de shell, haga esto en su símbolo del sistema:

echo -e '#!/bin/sh\n echo "hello world"' > abc.sh

Esto escribe:

#!/bin/sh
echo "hello world"

A un archivo llamado abc.sh

A continuación, desea establecerlo en ejecutable por:

chmod +x abc.sh

Ahora, puede ejecutarlo:

./abc.sh

Y deberías ver:

hello world

En tu terminal.

Para ejecutarlo en una nueva terminal, puede hacer:

gnome-terminal -x ./abc.sh

o, si es xterm :

xterm -e ./abc.sh

Aquí hay una lista de diferentes emuladores de terminal.

Alternativamente, simplemente ejecútelo en su terminal actual, pero en segundo plano en su lugar:

./abc.sh &

Para gnomo prueba esto.

Reemplace ls con el comando que desea ejecutar

gnome-terminal -x sh -c "ls|less"

Espero que esto sea lo que quieres


A partir de enero de 2020, el -e y -x opción en gnome-terminal aún se ejecuta correctamente, pero arroja las siguientes advertencias:

Para -e :

# La opción "-e" está en desuso y podría eliminarse en una versión posterior de gnome-terminal.

# Use “--” para finalizar las opciones y coloque la línea de comando para ejecutar después.

Para -x :

# La opción "-x" está en desuso y podría eliminarse en una versión posterior de gnome-terminal.

# Use “--” para finalizar las opciones y coloque la línea de comando para ejecutar después.

Según la información anterior, confirmé que puede ejecutar los siguientes dos comandos sin recibir ningún mensaje de advertencia:

gnome-terminal -- /bin/sh -c '<your command>'
gnome-terminal -- ./<your script>.sh

Espero que esto ayude a cualquier otra persona que tenga este problema actualmente :)


Linux
  1. ¿Cómo ejecutar un script de shell en una consola Unix o terminal Mac?

  2. ¿Cómo ejecuto un programa con un directorio de trabajo diferente al actual, desde el shell de Linux?

  3. ¿Cómo ejecutar un script .sh desde cualquier ruta en una terminal?

  4. Ejecute un script de shell desde el comando docker-compose, dentro del contenedor

  5. Ejecute un script desde cualquier lugar

Cómo ejecutar el comando / secuencia de comandos de Linux Shell en segundo plano

Cómo ejecutar Shell Script como servicio SystemD en Linux

Manera de hacer que un script de Shell siempre se ejecute como raíz?

¿Desde dónde se ejecuta un script de Shell?

¿Regenerar .bashrc desde Shell actual?

Cómo crear y ejecutar un script de shell en Ubuntu 22.04