2011-06-02 11 views
12

Me gustaría ejecutar un programa desde el shell bash. Cuando se ejecuta el programa, domina todo el shell, por lo que me gustaría iniciar un nuevo shell y ejecutar el programa desde allí. Actualmente estoy haciendo:Iniciando un nuevo shell bash desde un shell bash

gnome-terminal -x "cd Dropbox; program_name" 

Sin embargo, eso me da el error Error al ejecutar el proceso hijo, no existe el fichero o directorio. Creo que eso es porque la nueva terminal no tiene tiempo para inicializarse. ¿Cómo puedo arreglar esto?

+0

Puede utilizar el comando & e manera que el programa se ejecuta en segundo plano. Entonces $ ProgramThatTakesALongTime & ... Pero eso no mostrará la salida de ese programa ... – Nate

+1

@Nate Sí, puede ver la salida de los programas que se ejecutan en segundo plano. Pruebe 'eval 'sleep 3; echo "hola" '& ' –

Respuesta

8

Admito que esto realmente no responde a su pregunta, pero creo que resuelve su problema.

¿Por qué no usar & para enviarlo a segundo plano? Se puede ver si todavía está corriendo con jobs y traerlo de vuelta al primer plano con fg, también se puede enviar de nuevo a un segundo plano, por primera detenerlo con Ctrl + Z continuación bg

Ejemplo intentar.

> sleep 20 & 
> jobs 
> fg [jobNumber] 
[Ctrl-Z] 
> jobs 
> bg [jobNumber] 
> jobs 
1

utilice la ruta absoluta al programa o cd antes de llamar a gnome-terminal. Y necesita un & para ponerlo en segundo plano.

cd Dropbox; gnome-terminal -x "program_name" & 
0

Trate de añadir "&" al final de su comando, por ejemplo .:

gnome-terminal & 

No sé si está funcionando con gnome-terminal, pero funcionó bien con mrxvt.

1

Probar screen. Es un simple brograma que le permite realizar un seguimiento de varias conchas al mismo tiempo. Puede navegar a través de cada una de las conchas abiertas e incluso salir de la sesión y volver a conectar más adelante.

0
/bin/bash -c "/path/to/prog" 

Pero mire también en el comando sleep.

8

Probar:

bash -c 'gnome-terminal -x cd /absolute-path && program_name' 
Cuestiones relacionadas