String an ein Programm während seiner Ausführung senden
-
Hallo. Ich habe folgendes Problem. Ich habe ein Konsolenprogramm P, welches nachdem es gestartet wird, eine Routine R1 ausführt. Abhängig vom Ergebnis der Routine R1 kann P dann nach einer Usereingabe fragen, in der Form: "Do you want to blabla [yes / no]". Abhängig von der Eingabe wird eine Routine R2 ausgeführt oder das Programm wird abgebrochen.
Nun wollte ich den Start dieses Programms automatisieren. Dafür muss ich aber ihm während seiner Ausführung dieses "yes" oder "no" irgendwie übergeben, wenn es danach fragt. Wie könnte man sowas bewerkstelligen? Bzw. kann man das überhaupt? Am besten, ohne in dem Programm P selbst etwas zu verändern. Ich habe es in Linux mit yes | P versucht, also piping, führt aber zu keinem vernünftigen Ergebnis.
Wüsste da jemand weiter?
Gruß
Ewgenij
-
In der Konsole kannst du mit '<' eine Datei angeben, z.b.
P <yes.txtDadurch wird die Standardeingabe (Tastatur) umgeleitet auf die Textdatei, d.h. in die Datei "yes.txt" trägst du dann einfach deinen Text "yes" ein (ohne Anführungsstriche und am besten + LF(Linefeed) beenden).
Alternativ gibt es dann noch '>' für die Standardausgabe ('>>' für Anhängen an eine Datei) und '2>' für die Fehlerausgabe (zumindestens unter DOS, bei Unix/Linux bin ich mir nicht sicher - kommt ja auf die entsprechende Shell an).