Ich habe ein Bash-Skript, das den read
Befehl verwendet, um Argumente für Befehle interaktiv zu lesen, zum Beispiel Ja / Nein-Optionen. Gibt es eine Möglichkeit, dieses Skript in einem nicht interaktiven Skript aufzurufen, das Standardoptionswerte als Argumente übergibt?
Es ist nicht nur eine Option, die ich an das interaktive Skript übergeben muss.
bash
interactive
non-interactive
Sidharth Sharma
quelle
quelle
Antworten:
Für komplexere Aufgaben gibt es
expect
( http://en.wikipedia.org/wiki/Expect ). Es simuliert im Grunde einen Benutzer. Sie können ein Skript codieren, wie auf bestimmte Programmausgaben und verwandte Dinge reagiert werden soll.Dies funktioniert auch in solchen Fällen
ssh
, in denen das Weiterleiten von Passwörtern daran verboten ist.quelle
Viele Möglichkeiten
leiten Sie Ihre Eingabe weiter
aus einer Datei umleiten
Verwenden Sie hier ein Dokument (dies kann sehr gut lesbar sein)
Verwenden Sie eine Here-Zeichenfolge
quelle
read
stdin greifen können. Welche Funktion können Sie verwenden, um das zu tun, was Sie beschrieben haben?Sie können die Daten in eine Datei einfügen und wie folgt umleiten:
Daten für das Skript:
Ausführen des Skripts:
quelle
Ich möchte nur noch einen Weg hinzufügen. Fand es woanders und ist ganz einfach. Angenommen, ich möchte für alle Eingabeaufforderungen in der Befehlszeile einen Befehl "execute_command" mit "Ja" übergeben. Dann würde ich einfach "Ja" an diesen Befehl weiterleiten.
Dies verwendet Ja als Antwort auf alle Ja / Nein-Eingabeaufforderungen.
quelle
Sie können auch printf verwenden, um die Eingabe in Ihr Skript weiterzuleiten.
quelle
eine andere Alternative kann sein
Der Befehl tee druckt die empfangenen Eingaben auf dem Bildschirm aus und speichert sie gleichzeitig in einer Datei.
quelle