Tengo un programa (que no escribí) que no está diseñado para leer los comandos de un archivo. Ingresar comandos en STDIN es bastante tedioso, por lo que me gustaría poder automatizarlo escribiendo los comandos en un archivo para su reutilización. El problema es que, si el programa llega a EOF, se repite infinitamente tratando de leer en el próximo comando, dejando caer un torrente interminable de opciones de menú en la pantalla.¿Cambiar de contenido de archivo a STDIN en comando de canalización? (Consola de Linux)
Lo que me gustaría hacer es cargar un archivo que contenga los comandos en el programa a través de una tubería, luego usar algún tipo de magia de shell para que cambie del archivo a STDIN cuando llegue al EOF del archivo .
Nota: Ya he considerado usar cat con '-' para STDIN. Desafortunadamente (no sabía esto antes), los comandos interconectados esperan a que finalice la salida del primer programa antes de iniciar el segundo programa; no se ejecutan en paralelo. Si hay alguna manera de hacer que los programas se ejecuten en paralelo con ese tipo de acción de canalización, ¡eso funcionaría!
¿Alguna idea? Gracias por cualquier ayuda!
EDIT:
Debo señalar que mi objetivo es no sólo para evitar que el sistema de golpear el final del archivo comandos. Me gustaría poder continuar escribiendo comandos desde el teclado cuando el archivo llegue a EOF.
¿Puedes * hacer eso? * No tenía idea de que pudieras agrupar comandos. Ese es mi algo nuevo para el día. Esto me impide tener que usar una segunda ventana. ¡Muchas gracias, Idelic! – zslayton
Para aquellos que estén interesados, puede construir en el archivo que contiene comandos a medida que avanza, usando: (cat your_file_with_commands; tee -a your_file_with_commands) | sh your_script que agregará cada comando al archivo además de pasarlo a la secuencia de comandos a través de la tubería. – zslayton
+1 Esto me ayudó en el nivel 1 del juego de guerra narnia en intruded.net – chmeee