2011-09-28 15 views
6

¿Hay alguna manera de enviar una secuencia de comandos a las ventanas de la pantalla GNU desde mi .screenrc? Parece que esto debería ser fácil de hacer:Ejecutar comandos en ventanas de pantalla GNU desde .screenrc

.screenrc:

startup_message off 
screen -t "RAILS SERVER" 
<send command to last created window> <my alias to cd Rails project> 
<send command to last created window> rails s 
screen -t "RAILS CONSOLE" 
<send command to last created window> <my alias to cd to Rails project> 
rails c 

He repasado la pantalla de hombre páginas varias veces, pero no puedo encontrar nada que se <send command to last created window>.

Gracias, Max

Respuesta

5

No es un comando separado; solo especifica el comando para ejecutar en la línea que crea la ventana.

Por ejemplo (no probado):

screen -t "RAILS SERVER" sh -c "cd ... ; rails s" 
+0

Intenté esto: 'pantalla -t" BLAH "sh -c" cd ~/.ssh "'. Cuando ejecuté 'screen', terminó de inmediato. – maxenglander

+0

Por supuesto que sí; el comando 'cd' termina muy rápido. Prueba el comando que sugerí. –

+0

¡Genial! No me di cuenta de que bash saldría después de terminar de ejecutar la secuencia que pasó con '-c'. – maxenglander

13

respuesta de Keith hace el trabajo, pero los lazos de la ventana para que el proceso de modo que tan pronto como la aplicación se lleva a cabo la ejecución, la ventana se cierra.

Esto es lo que terminé haciendo que funcionó a la perfección:

screen -t "RAILS SERVER" 
stuff "cd $my_rails_directory; rails server^M" 

screen -t "RAILS CONSOLE" 
stuff "cd $my_rails_directory; rails console^M" 

La parte importante señalar aquí es el carácter ^M. Esto no es realmente un^seguido de una M. Este es un carácter de línea nueva sin formato. En casi cualquier programa CLI (vi, emacs, shell), puede presionar CTRL-V y luego presionar ENTER para generar este caracter.

¿Cómo funciona esto? El comando stuff escribe la cadena dada directamente en la consola. El literal de la nueva línea al final en realidad envía el comando de la manera en que lo haría normalmente si lo escribiera usted mismo. ¡Espero que ayude! He encontrado que este enfoque es ahora más estable y confiable que otros.

+0

¡Impresionante! Y tiene el beneficio adicional de trabajar con alias de bash. ¡Gracias! – meridius

Cuestiones relacionadas