2009-08-31 12 views
5

Szukam sposobu na zrzucenie danych wejściowych do mojego terminala z pliku, ale gdy EOF zostanie osiągnięty, chciałbym, aby dane wejściowe zostały zwrócone z powrotem na moją klawiaturę. Czy istnieje sposób, aby to zrobić z Bash (lub inną powszechnie dostępną powłoką * nix)?Tymczasowe przekierowanie wejścia w bashu

Szczegóły: Mam debugowanie programu serwera, który wykonuje fork, aby rozpocząć proces potomny. Za każdym razem, gdy rozpoczynam sesję debugowania z gdb, muszę wpisać polecenie ustawiania podrzędnego trybu potomnego. Chciałbym użyć pewnego rodzaju przekierowania wejścia, aby to zostało wstępnie wypełnione. Są też inne zastosowania, które mogę wymyślić, więc wolałbym ogólne rozwiązanie - stąd powód, dla którego to pytanie brzmi: , a nie o gdb.

Rozwiązanie: start-server.sh

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

run-server.txt

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

Odpowiedz

8

Można to zrobić:

cat input_file - | program 

To będzie łączyć input_file następnie stdin do program, co moim zdaniem jest to, co chcesz.

+0

+1 To wyjaśnia, kiedy używam "| vi -" myślę. Znalazłem to gdzieś i nigdy nie patrzyłem, co to znaczyło. * To może być bilet. –

+0

To jest mylące, gdy używasz nawiasów ostrych, tak jakby były cudzysłowami, ponieważ są one używane do przekierowania. –

+0

Dennis: To dobra uwaga. Zmienię je. –

1

może expect to, co chcesz

+0

+1 Widzę, jak pomóc mi w generowaniu scenariusza - zajrzę się tym, czego mogą się spodziewać. Dzięki za link. Do tej pory nie sądzę, że to odpowiada na moje pytanie. –

+0

http://expect.nist.gov/example/dislocate.man.html wygląda obiecująco. –

+0

Ogólnie sądzę, że oczekiwanie jest dobrym narzędziem. Będę musiał się w to zagłębić - rozwiązanie jbourque było bardziej zgodne z tym, o co pytałem. –

0

Może użyć pliku pośredniego ? Zakładając, że chcesz uruchomić myscript.sh skryptu:

INPUT_FILE=input.txt 
TEMP_FILE=`mktemp -t input` 
myscript.sh < $TEMP_FILE & 
cat $INPUT_FILE >> $TEMP_FILE 
cat >> $TEMP_FILE 
Powiązane problemy