it-swarm.com.de

Wie schreibe ich eine Ja-Antwort für die Installation von Programmen?

Ich arbeite mit Amazon Linux-Instanzen und habe ein paar Skripte zum Auffüllen von Daten und zum Installieren aller Programme, mit denen ich arbeite. Einige Programme fragen jedoch:

Do you want to continue [Y/n]?

und pausieren Sie die Installation. Ich möchte in jedem Fall automatisch mit "Y" antworten, ich bin mir gerade sicher, wie ich es machen soll.

90
user974887

Der 'yes'-Befehl gibt' y '(oder was auch immer Sie verlangen) auf unbestimmte Zeit zurück. Verwenden Sie es als:

yes | command-that-asks-for-input

oder, falls ein Großbuchstabe 'Y' erforderlich ist:

yes Y | command-that-asks-for-input
173
P.T.

echo y | command sollte arbeiten.

Einige Installer haben auch ein "Auto-Ja" -Flag. Es ist -y zum apt-get unter Ubuntu.

57
Dennis

Möglicherweise können Sie Expect nicht auf dem Zielserver installieren. Dies ist häufig der Fall, wenn man beispielsweise einen Jenkins-Job schreibt.

In diesem Fall würde ich auf askubuntu.com etwa die Antwort auf Folgendes in Betracht ziehen:

https://askubuntu.com/questions/338857/automatically-enter-input-in-command-line

printf 'y\nyes\nno\nmaybe\n' | ./script_that_needs_user_input

Beachten Sie, dass der Benutzer in einigen seltenen Fällen nicht die Eingabetaste nach dem Zeichen drücken muss. In diesem Fall lassen Sie die Zeilenumbrüche weg:

printf 'yyy' | ./script_that_needs_user_input

Der Vollständigkeit halber können Sie hier auch ein Dokument verwenden:

./script_that_needs_user_input << EOF
y
y
y
EOF

Oder wenn Ihre Shell einen Here-String unterstützt:

./script <<< "y
y
y
"

Oder Sie können eine Datei mit einer Eingabe pro Zeile erstellen:

./script < inputfile

Nochmals, alle Verdienste um diese Antwort gehen an den Autor von die Antwort auf askubuntu.com , lesmana.

14
Nathan Basanese

Obwohl dies komplizierter/schwerer sein mag als Sie möchten, besteht eine sehr flexible Möglichkeit darin, etwas wie Expect (oder eines der Derivate 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 mit Logik, um tatsächlich zu entscheiden, was als nächstes zu tun/zu antworten ist), ist Expect der richtige Weg.

5
Adam Batkin

Wenn Sie nur die Standardeinstellungen akzeptieren möchten, können Sie Folgendes verwenden:

\n | ./Shell_being_run
3
warhansen

Sie müssen nur -y mit dem Befehl install.

Beispielsweise: yum install <package_to_install> -y

0
Rohan Seth