2009-08-31 13 views
5

Estoy buscando una manera de volcar la entrada en mi terminal desde un archivo, pero cuando se llegue a EOF, me gustaría que la información regresara a mi teclado. ¿Hay alguna manera de hacer esto con Bash (o cualquier otro * nix Shell comúnmente disponible)?Redirección de entrada temporal en Bash

Detalles: Estoy depurando un programa de servidor que ejecuta una bifurcación para iniciar un proceso secundario. Cada vez que comienzo una sesión de depuración con gdb, debo escribir set child follow-fork-mode. Me gustaría utilizar algún tipo de redirección de entrada para tener esta pre-poblada. También hay otros usos que se me ocurren, por lo que preferiría una solución general, de ahí la razón por la cual esta pregunta es y no sobre gdb.

Solución: start-server.sh

#!/bin/bash 
cat run-server.txt - |/bin/bash 

carrera server.txt

gdb ./Server 
set follow-fork-mode child 
run 

Respuesta

8

Usted puede hacer esto:

cat input_file - | program 

Eso concatenará input_file seguido por stdin a program, que creo que es lo que desea.

+0

+1 Eso explica cuando uso "| vi -" creo. Lo había encontrado en alguna parte y nunca me fijé en lo que significaba *. Este puede ser el boleto. –

+0

Es confuso cuando usa corchetes angulares como si fueran comillas, ya que se usan para la redirección. –

+0

Dennis: Ese es un buen punto. Los cambiaré. –

1

quizá expect es lo que quiere

+0

+1 Veo cómo tenerlo para ayudarme a generar un guión: voy a ver qué tipo de cosas puedo esperar. Gracias por el enlace. Hasta ahora, no creo que responda mi pregunta. –

+0

http://expect.nist.gov/example/dislocate.man.html se ve prometedor –

+0

En general, creo que esperar es una buena herramienta. Tendré que profundizar en ello: la solución de jbourque estaba más en línea con lo que estaba preguntando. –

0

uso pueden ser un archivo intermedio ? Suponiendo que se desea ejecutar el script de myscript.sh:

INPUT_FILE=input.txt 
TEMP_FILE=`mktemp -t input` 
myscript.sh < $TEMP_FILE & 
cat $INPUT_FILE >> $TEMP_FILE 
cat >> $TEMP_FILE 
Cuestiones relacionadas