Lassen Sie das Programm zuerst von der Pipe und dann von der Tastatur lesen

17

Betrachten Sie das interaktive Programm interactive. Ich muss dieses Programm ziemlich häufig ausführen, und jedes Mal, wenn ich es ausführe, sind die ersten Befehle gleich. Es ist offensichtlich ein Schmerz, diese Befehle immer und immer wieder eingeben zu müssen. Ich habe diesen Befehl (durch Zeilenumbrüche getrennt) in der Datei gesammelt cmd. Jetzt kann ich cat cmd | interactivedie Befehle ausführen. Das Problem ist, dass cmdnach dem vollständigen Lesen interactiveEOF empfangen und beendet wird.

Was ich tun möchte, ist zuerst interactiveaus der Pipe gelesen zu haben (offensichtlich interactive < cmdist es auch akzeptabel) und wenn EOF empfangen wird, beginne stattdessen, von der Tastatur aus zu lesen.

Viktor Dahl
quelle

Antworten:

21

Bitten Sie einfach darum cat, diese Datei mit dem Standardeintrag zu verknüpfen:

cat cmd - | interactive
Mann bei der Arbeit
quelle
1
Die obige Lösung ist wahrscheinlich optimal. Wenn Sie einen GUI-Desktop verwenden, schauen Sie sich auch AutoKey an. Damit können Sie Makros erstellen, die fast alles können, was Sie mit einer Tastatur tun können. Es wird etwas schwierig, wenn Sie warten müssen, bis etwas passiert, oder wenn Sie Daten vom Bildschirm abrufen müssen, aber wenn Sie Python (die Sprache, in der die Makros codiert sind) kennen, ist der Himmel das Limit.
Joe