Ich verwende Ubuntu Linux. Angenommen, es gibt ein Programm namens myprogram. Dieses Programm fordert den Benutzer zur Eingabe auf. Insbesondere muss der Benutzer bei Aufforderung eine Ganzzahl eingeben und drücken Enter. Ich möchte diesen Prozess mithilfe eines Bash-Skripts automatisieren. Insbesondere möchte myprogramich beispielsweise 100 Mal ausführen (unter Verwendung eines Zählers, ider von 1bis geht 100). Bei jeder Ausführung von myprogrammöchte ich den aktuellen Wert von eingeben, iwenn ich dazu aufgefordert werde.
(Übrigens, myprogramnimmt Optionen / Schalter -options, die alle konstant sind und somit im Bash-Skript angegeben werden.)
Ein unvollständiges Grundgerüst dieses Bash-Skripts könnte sein:
#!/bin/bash
for i in {1..100}
do
myprogram -options
done
Jetzt möchte ich den obigen Code so ändern, dass der aktuelle Wert von ieingegeben wird, wenn das Programm Sie dazu auffordert. Was ist der beste Weg, dies zu tun?
Die Website der von mir verwendeten Software schlägt die Verwendung <<EOFam Ende der myprogram -optionsZeile vor. Ich denke, dass dies bash anweist, sich das "Ende der Datei" für die zu verwendende Eingabe anzusehen. Aber was ist, wenn ich die Eingabe nicht am Ende der Datei platzieren möchte ? Was ist, wenn ich es sofort nach dem <<oder setzen möchte <?
Der Grund ist, dass die Dinge komplizierter werden. Zum Beispiel kann ich einen ganzzahligen Zähler einführen j, der sich auf nichtlineare, nicht sequentielle Weise ändert. Ich möchte dann bei jeder Iteration den aktuellen Wert von jto myprogrameingeben, aber der Wert von jkann sich zwischen dem Aufruf von myprogram -optionsund dem Ende der Datei ändern EOF.
Hast du irgendwelche Vorschläge?