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 myprogram
ich beispielsweise 100 Mal ausführen (unter Verwendung eines Zählers, i
der von 1
bis geht 100
). Bei jeder Ausführung von myprogram
möchte ich den aktuellen Wert von eingeben, i
wenn ich dazu aufgefordert werde.
(Übrigens, myprogram
nimmt 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 i
eingegeben 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 <<EOF
am Ende der myprogram -options
Zeile 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 j
to myprogram
eingeben, aber der Wert von j
kann sich zwischen dem Aufruf von myprogram -options
und dem Ende der Datei ändern EOF
.
Hast du irgendwelche Vorschläge?