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.

Antworten:


21

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

cat cmd - | interactive

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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.