Ich arbeite mit Amazon Linux-Instanzen und habe ein paar Skripte, um Daten zu füllen und alle Programme zu installieren, mit denen ich arbeite, aber einige der Programme fragen:
Do you want to continue [Y/n]?
und unterbrechen Sie die Installation. Ich möchte in allen Fällen automatisch mit "Y" antworten. Ich bin mir gerade sicher, wie es geht.
--noprompt
oder--noconfirm
Flag, das Sie verwenden können.Antworten:
Der Befehl 'yes' gibt auf unbestimmte Zeit 'y' (oder was auch immer Sie verlangen) wieder. Verwenden Sie es als:
oder wenn ein Großbuchstabe 'Y' erforderlich ist:
quelle
yes
da bekannt ist, dass die CPU maximal ist. stackoverflow.com/a/18164007/720665-y
nach Bash-Skripten zu googeln war hart./dev/null
oder STDOUT. An einen Befehl weitergeleitet, schreibt er jedes Mal, wenn der empfangende Befehl eine liest, nur eine Zeile in die Leitung und wartet andernfalls.echo y | command
sollte arbeiten.Einige Installer haben auch ein "Auto-Ja" -Flag. Es ist
-y
fürapt-get
unter Ubuntu.quelle
-f
(--force
) Flag, das als "Auto-Ja" für Befehle funktioniert, die etwas entfernenMöglicherweise können Sie Expect nicht auf dem Zielserver installieren. Dies ist häufig der Fall, wenn man beispielsweise einen Jenkins-Job schreibt.
Wenn ja, würde ich so etwas wie die Antwort auf Folgendes auf askubuntu.com in Betracht ziehen:
/ubuntu/338857/automatically-enter-input-in-command-line
Beachten Sie, dass der Benutzer in einigen seltenen Fällen nicht nach dem Zeichen die Eingabetaste drücken muss. In diesem Fall lassen Sie die Zeilenumbrüche weg:
Der Vollständigkeit halber können Sie hier auch ein Dokument verwenden:
Oder wenn Ihre Shell es hier unterstützt:
Oder Sie können eine Datei mit einer Eingabe pro Zeile erstellen:
Wiederum geht der gesamte Kredit für diese Antwort an den Autor der Antwort auf askubuntu.com , lesmana.
quelle
Obwohl dies komplizierter / schwerer sein kann als Sie möchten, besteht eine sehr flexible Möglichkeit darin, etwas wie Expect (oder eine der Ableitungen in einer anderen Programmiersprache) zu verwenden.
Expect ist eine Sprache, die speziell für die Steuerung textbasierter Anwendungen entwickelt wurde. Genau das möchten Sie tun. Wenn Sie am Ende etwas Komplizierteres tun müssen (wie bei der Logik, um tatsächlich zu entscheiden, was als nächstes zu tun / zu beantworten ist), ist Expect der richtige Weg.
quelle
Sie müssen nur
-y
den Installationsbefehl eingeben.Beispielsweise:
yum install <package_to_install> -y
quelle
Wenn Sie nur Standardeinstellungen akzeptieren möchten, können Sie Folgendes verwenden:
quelle
bash
,sh
und die meisten System, das ich weiß, müssen Sieecho
das\n
sonst wäre es nicht auf den nächsten Befehl sein verrohrt.