2016-10-05 3 views
0

Ich versuche, ein Programm zu bauen, das den Benutzer ständig nach Eingaben fragt. Um dieses Programm zu testen (Xtreme-Programmierung), ist es ein großer Aufwand, all diese Eingaben bei jedem Test einzugeben. Also entschied ich mich, die Eingaben in eine Datei zu schreiben und stdin in diese Datei umzuleiten wieUmleiten von stdin zum Lesen von Datei, während stdin als Eingabe in Bash

cat inputs.txt | ./myprogram oder ./myprogram < inputs.txt.

Das funktioniert soweit, aber ich wollte in der Lage sein, andere Eingaben selbst zu tippen, nachdem die Datei EOF erreicht hat (auch vorher ist das eigentlich egal), also Eingaben des ersten Teils des Programms (was ich schon Wissen funktioniert) wird automatisch geschrieben und ich kann den Rest eingeben.

Antwort

2

cat aus mehreren Dateien, einschließlich der Standardeingabe mit dem Namen lesen kann "-":

cat inputs.txt - | ./myprogram 

Wenn ./myprogram Bedürfnisse in dem aktuell Shell ausgeführt wird, werden die Dinge komplizierter. Sie können die Prozess Substitution verwenden:

./myprogram < <(cat inputs.txt -) 

oder eine Named Pipe:

mkfifo p 
cat inputs.txt - > p & 
./myprogram < p 
+0

Awesome, wenn das Programm in der aktuellen Shell läuft oder nicht, ist kein Problem für mich, total vergessen das Minus Betreiber Katze. Vielen Dank – Klaus