Ejecutar terminal desde el mismo script

Imagen de TvK10
0 puntos

Con mi otra duda ya resuelta, gracias de nuevo, abro este hilo para postear otra, os explico, imaginar que quiero instalar un programa en una terminal y actualizar repositorios en otra, pero con el mismo script, cómo lo hago? es decir, cómo abro una terminal, y ejecuto comandos desde ella, habiendo ejecutado ya comandos en otra??

 

PD: Todo esto en bash claro xDD 

Imagen de joseluis
+1
0
-1

Mientras estás instalando un paquete no puedes actualizar repositorios o lo haces antes (lo normal) o lo haces después pero esas dos acciones no las puedes hacer a la vez pues el sistema apt bloquea su base de datos cuando está instalando o actualizando repositorios para que ningún otro proceso intente realizar una acción similar.

Y si lo haces uno a continuación de otro ¿qué te impide hacerlo todo en el mismo terminal?
Por ejemplo supongamos que tienes tu script instala:

#!/bin/bash

# Si recibe por parametro una A actualiza repositorios
if [ "$1" = "A" ]; then
  sudo apt-get update
fi
echo "Introduzca el paquete a instalar"
read paquete

sudo apt-get install ${paquete}

De esa manera cuando llamas al script anterior pasandole una A primero actualiza repositorios y luego, en cualquier caso, instala el paquete que se le introduzca.

Una vez que termina el script puedes ejecutar lo que quieras.

Algo muy distinto es que lanzaras desde un terminal una aplicación (por ejemplo gedit) y mientras la tienes lanzada quieres utilizar la terminal para ejecutar otros comandos. En ese caso tendrías que lanzar gedit en background (poniendo un & al final de la línea) para que te deje libre la terminal mientras se está ejecutando, es decir:

gedit &

Análogamente si quisieras desde el script o la terminal abrir una terminal de gnome (y por supuesto no quisieras abrirlo con el ratón en Aplicaciones->Accesorios->Terminal) sería suficiente con ejecutar

gnome-terminal &

y de esa manera tendrías dos terminales abiertas (una hija de la anterior).

Pero me temo que tu duda no será esa :(


Fdo. El forense asesino alias Censor fundamentalista.

+1
0
-1

Fdo. Forense asesino, Censor fundamentalista, Fustigador de novatos y Patético maleducado

Imagen de TvK10
+1
0
-1

Gracias por contestar, pero solo era un ejemplo, perfectamente puedo ejecutar uno y despues el otro, solo era un ejemplo, pero veamos, entonces si pongo:

#!/bin/bash

sudo apt-get update

gnome-terminal &

sudo apt-get install paquete-que-sea

Se instalará el paquete-que-sea desde la segunda terminal o desde la primera? Bueno lo acabo de probar y no, se ejecuta en la misma, no ai solución?? :(

 

Graciass! 

+1
0
-1
Imagen de joseluis
+1
0
-1

Para hacer eso tendrías que lanzar gnome-terminal indicandole lo que tiene que ejecutar (parámetro -e del gnome-terminal):

#!/bin/bash

sudo apt-get update

gnome-terminal -e "sudo apt-get install paquete-que-sea" &

Ahora bien, el segundo gnome-terminal ejecutará lo que le has dicho y se cerrará al finalizar, creo que en algunas terminales, tal vez aterm, le podías indicar que parara al finalizar la ejecución y esperara a que pulsaras alguna tecla pero no se si gnome-terminal tiene esa opción (ya sabes man gnome-terminal y si no hay nada puedes probar con otra terminal que hay unas cuantas en los repositorios).


Fdo. El forense asesino alias Censor fundamentalista.

+1
0
-1

Fdo. Forense asesino, Censor fundamentalista, Fustigador de novatos y Patético maleducado

Imagen de TvK10
+1
0
-1

Muchas gracias, pero me interesaria que quedase abierta, alguna idea?

+1
0
-1
Imagen de joseluis
+1
0
-1

Por si te sirve esta chapuza:

#!/bin/bash

echo "Introduzca el paquete a instalar"
read paquete

script_tmp=${paquete}_`date +%s`

echo "#!/bin/bash" > ~/bin/${script_tmp}
echo "sudo apt-get install ${paquete}" >> ~/bin/${script_tmp}
echo "bash" >> ~/bin/${script_tmp}
echo "rm ~/bin/${script_tmp}" >> ~/bin/${script_tmp}
chmod 750 ~/bin/${script_tmp}

sudo apt-get update
gnome-terminal -x ~/bin/${script_tmp} &

Con lo anterior el segundo terminal te queda abierto, y el script temporal creado para lanzar el segundo terminal se borra al finalizar con un exit (posiblemente no lo borre si cierras pinchando en el x pero esto último no lo he probado).


Fdo. El forense asesino alias Censor fundamentalista.

+1
0
-1

Fdo. Forense asesino, Censor fundamentalista, Fustigador de novatos y Patético maleducado

Imagen de dragon_ubuntues
+1
0
-1

podemos anidar instrucciones de la siguiente manera. a mi me sirvió para iniciar el servicio de postgres en una terminal y en otra hacer el login para entrar a la BD

gnome-terminal -e 'su -c "/usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data" postgres'

bueno espero que le sirva a todo aquel que consulte.

P.D es mi primera contribución en un foro pero creo que es momento de empezar a dar.

+1
0
-1