mögliches Duplikat von Was ist der Sinn des "Ja" -Befehls? ... (Dies als Duplikat kennzeichnen, da die andere neuere Frage besser gestellt und besser beantwortet wird).
yes kann verwendet werden, um eine positive (oder negative; z. B. yes n) Antwort auf einen Befehl zu senden, der andernfalls eine anfordern würde, wodurch der Befehl nicht interaktiv ausgeführt wird.
Der Befehl yes in Verbindung mit dem Befehl head kann verwendet werden, um große Volumendateien für Testzwecke zu generieren.
Es kann auch verwendet werden, um zu testen, wie gut ein System mit hohen Lasten umgeht, da die Verwendung von yes bei Systemen mit einem einzelnen Prozessor zu 100% zu einer Prozessorauslastung führt (bei einem Multiprozessorsystem muss für jeden Prozessor ein Prozess ausgeführt werden). Dies kann beispielsweise hilfreich sein, um zu untersuchen, ob das Kühlsystem eines Systems effektiv ist, wenn der Prozessor zu 100% läuft.
Im Jahr 2006 wurde der Befehl yes veröffentlicht, um zu testen, ob das MacBook eines Benutzers vom intermittierenden Abschaltsyndrom betroffen ist. Durch zweimaliges Ausführen des Befehls yes über das Terminal unter Mac OS X konnten Benutzer die CPU ihres Computers voll ausnutzen und so feststellen, ob der Fehler durch Hitze verursacht wurde
ohh, das ist ein schöner Stresstest. habe es gerade ausprobiert, bin dann zu meinem kollegen
gelaufen
17
Dies mag eine kontroverse Meinung sein, aber meiner Meinung nach ist dies eine hässliche Lösung für eine schlechte Benutzeroberfläche in Befehlszeilentools .
Einige Befehlszeilentools stellen dem Benutzer über eine Eingabeaufforderung Fragen und haben keine Option, nicht interaktiv ausgeführt zu werden. Stellen Sie sich zum Beispiel etwas vor wie
$ frobnicate *
frobnicate file a.txt? (y/n) y
frobnicate file b.txt? (y/n) y
...
Da die Antwort auf die Frage von der Standardeingabe stammt, besteht eine schnelle Lösung für dieses Problem darin, dass eine Anwendung die Zeichenfolge y\nkontinuierlich ausgibt yes. Unix- Pipes können verwendet werden, um diese Ausgabe als Eingabe an einen bestimmten Befehl zu senden.
$ yes | frobnicate
Eines der Probleme bei diesem Ansatz ist, dass yeses keine Möglichkeit gibt, die Frage zu überprüfen, auf die es antwortet:
frobnicate file a.txt? (y/n) y
frobnicate file b.txt? (y/n) y
format device /dev/sda1? (y/n) y
frobnicate file c.txt? (y/n) y
Eine bessere Lösung ist, wenn sie verfügbar ist, eine spezielle Option, die nicht interaktiv ausgeführt werden kann, z. B. rm -foder apt-get -y. Dies ermöglicht die Codierung eines sinnvolleren Verhaltens in der Anwendung.
Ich habe alle anderen Antworten gelesen. Ich stimme völlig mit Ihnen WRT hässlich fix ... obwohl es tut zum Testen Computer reagiert auf hohe CPU - Belastung eine gültige Verwendung haben.
Wildcard
6
Natürlich können Sie die proprietäre Software "Microsoft Windows" verwenden, um die Reaktion des Computers auf hohe CPU-Lasten zu testen, aber "yes" ist Open Source.
Wildcard
1
Es ist jedoch eine der schönsten hässlichen Korrekturen
Jezzamon
4
Ich verwende es gerne, yeswenn ich mehrere .zip-Dateien entpacke, die alle dieselbe Datei mit demselben Namen enthalten, und werde gefragt, was in jedem Fall zu tun ist (z. B. eine Lizenzvereinbarung).
Ist gerade auf eine andere Verwendung gestoßen: wollte eine Festplatte mit einem anderen Muster als nur Nullen löschen (wie: dd if = / dev / null von = / dev / sdd bs = 1M) und hat 'yes' dafür verwendet:
passwdfragt zuerst nach dem alten Passwort, wenn der Benutzer kein Root oder Superuser ist und fährt erst fort, wenn das richtige Passwort eingegeben wurde. Entweder ist der Benutzer root oder passworddas alte Passwort und es wird nichts geändert.
Michael Konietzka
@ MichaelKonietzka in der Tat. Aber unter den Bedingungen, die Sie erwähnt haben, ist es immer noch ein nützlicher Anwendungsfall.
Frogstarr78
3
Außer dies würde in der Geschichte im Klartext bestehen bleiben. Verrückt.
Gleno
3
@ Gleno in Bash, Sie können es mit einem Leerzeichen voranstellen, um zu verhindern, dass es aufgezeichnet wird (wie in stackoverflow.com/q/640403/118153 )
Iiridayn
2
Dadurch wird das Kennwort auch an alle lokalen Benutzer in der Prozessliste ( psoder topim richtigen Moment) weitergegeben.
Antworten:
über Wikipedia: http://en.wikipedia.org/wiki/Yes_(Unix)
quelle
yes `yes yes`
Dies mag eine kontroverse Meinung sein, aber meiner Meinung nach ist dies eine hässliche Lösung für eine schlechte Benutzeroberfläche in Befehlszeilentools .
Einige Befehlszeilentools stellen dem Benutzer über eine Eingabeaufforderung Fragen und haben keine Option, nicht interaktiv ausgeführt zu werden. Stellen Sie sich zum Beispiel etwas vor wie
Da die Antwort auf die Frage von der Standardeingabe stammt, besteht eine schnelle Lösung für dieses Problem darin, dass eine Anwendung die Zeichenfolge
y\n
kontinuierlich ausgibtyes
. Unix- Pipes können verwendet werden, um diese Ausgabe als Eingabe an einen bestimmten Befehl zu senden.Eines der Probleme bei diesem Ansatz ist, dass
yes
es keine Möglichkeit gibt, die Frage zu überprüfen, auf die es antwortet:Eine bessere Lösung ist, wenn sie verfügbar ist, eine spezielle Option, die nicht interaktiv ausgeführt werden kann, z. B.
rm -f
oderapt-get -y
. Dies ermöglicht die Codierung eines sinnvolleren Verhaltens in der Anwendung.quelle
Ich verwende es gerne,
yes
wenn ich mehrere .zip-Dateien entpacke, die alle dieselbe Datei mit demselben Namen enthalten, und werde gefragt, was in jedem Fall zu tun ist (z. B. eine Lizenzvereinbarung).quelle
Ist gerade auf eine andere Verwendung gestoßen: wollte eine Festplatte mit einem anderen Muster als nur Nullen löschen (wie: dd if = / dev / null von = / dev / sdd bs = 1M) und hat 'yes' dafür verwendet:
yes UUUUUUUUUUUUU > /dev/sdd
quelle
Ein Mitarbeiter benutzte dies auf neuartige Weise, um ein Passwort einzugeben
quelle
passwd
fragt zuerst nach dem alten Passwort, wenn der Benutzer kein Root oder Superuser ist und fährt erst fort, wenn das richtige Passwort eingegeben wurde. Entweder ist der Benutzer root oderpassword
das alte Passwort und es wird nichts geändert.ps
odertop
im richtigen Moment) weitergegeben.