Wie automatisch treffen Geben Sie in der bash-Skript, wenn Sie gefragt werden?
Ich weiß, dass diese Frage oft beantwortet, aber ich kann immer noch nicht herausfinden, wie es zu tun. Vielleicht ist es, weil ich weiß nicht das richtige Schlüsselwort für die Suche.
Mit
echo -ne '\n' | enter
nicht funktioniert. Mein code ist:
#! /bin/bash
#Grub-customizer
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
echo -ne '\n' | return
sudo apt-get update
sudo apt-get install grub-customizer
Versuchen Sie nicht. Wenn Sie das tun
Was ist das
echo | some_command
kann man entweder den exit-status von echo
oder der Ausgang der some_command
je nachdem, wie Ihre Schale ist derzeit konfiguriert ist. Sie bekommen viel, viel mehr konsistente und zuverlässige Ergebnisse durch aufrufen some_command
in einer solchen Weise, dass es nicht von stdin Lesen überhaupt.Was ist das
enter
Befehl von dem Sie sprechen? Auch return
so ziemlich ignoriert, es ist die standard-Eingabe, also Rohrleitungen, etwas in es nicht viel erreichen...
InformationsquelleAutor Ooker | 2014-03-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollen Sie sich eine pipe
\n
in dem Befehl, die gehen, um es zu empfangen (sonst wird es nicht einmal sehen!):Nun, die richtige Lösung hier wäre stattdessen die Verwendung der
-y
Fahnen statt:/dev/tty
? Könnte besser sein, stärker zu verstärken, die-y
flag Beratung, die eine sehr viel sichere Sache.Zusätzliche Beispiele für diese. Ich würde allerdings vermuten, apt verwenden
stdin
in den meisten Fällen, aberDEBIAN_FRONTEND
könnte auf jeden Fall brechen mitecho
.Während
echo -ne '\n'
ist eine getreue Kopie von der Beschreibung des Problems, die idiomatischen Weise zu schreiben, dass ist nurecho
.Ich würde die post die
-y
Lösung als die wichtigste Antwort, und dieecho
fix als tangentiale Kommentar.InformationsquelleAutor Thomas Orozco