Möglicherweise haben Sie nicht die Möglichkeit, Expect auf dem Zielserver zu installieren. Dies ist häufig der Fall, wenn beispielsweise ein Jenkins-Job geschrieben wird.
Wenn ja, würde ich so etwas wie die Antwort auf askubuntu.com 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 Befehl in einigen seltenen Fällen nicht erfordert, dass der Benutzer nach dem Zeichen die Eingabetaste drückt. in diesem Fall lassen Sie die Zeilenumbrüche weg:
printf 'yyy' | ./script_that_needs_user_input
Der Vollständigkeit halber können Sie auch hier ein Dokument verwenden:
./script_that_needs_user_input << EOF
y
y
y
EOF
Oder wenn Ihre Shell dies unterstützt, ein Here-String:
./script <<< "y
y
y
"
Oder Sie können eine Datei mit einer Eingabe pro Zeile erstellen:
./script < inputfile
Auch hier geht der gesamte Verdienst für diese Antwort an den Autor der Antwort auf askubuntu.com, lesmana.
echo y | command
sollte funktionieren.
Außerdem haben einige Installer ein "Auto-Yes"-Flag. Es ist -y
für apt-get
auf Ubuntu.
Der 'Ja'-Befehl gibt 'y' (oder was auch immer Sie fragen) auf unbestimmte Zeit zurück. Verwenden Sie es als:
yes | command-that-asks-for-input
oder, wenn ein großes 'Y' erforderlich ist:
yes Y | command-that-asks-for-input
Wenn Sie 'N' übergeben möchten, können Sie immer noch yes
verwenden :
yes N | command-that-asks-for-input