Il existe une yes
commande dans unix / linux qui imprime fondamentalement à l'infini y
sur le stdout
. Quel en est le but et comment est-il utile?
Il existe une yes
commande dans unix / linux qui imprime fondamentalement à l'infini y
sur le stdout
. Quel en est le but et comment est-il utile?
Réponses:
yes peut être utilisé pour envoyer une réponse affirmative (ou négative; par exemple, yes n) à toute commande qui en demanderait autrement une, ce qui entraînerait l'exécution de la commande de manière non interactive.
La commande yes associée à la commande head peut être utilisée pour générer des fichiers volumineux à des fins de test.
Il peut également être utilisé pour tester la capacité d'un système à gérer des charges élevées, car l'utilisation de oui donne une utilisation de 100% du processeur, pour les systèmes dotés d'un seul processeur (pour un système multiprocesseur, un processus doit être exécuté pour chaque processeur). Ceci, par exemple, peut être utile pour déterminer si le système de refroidissement d'un système sera efficace lorsque le processeur tourne à 100%.
En 2006, la commande yes a reçu un peu de publicité pour être un moyen de tester si le MacBook d'un utilisateur est affecté du syndrome d'arrêt intermittent. En exécutant la commande yes deux fois via Terminal sous Mac OS X, les utilisateurs étaient en mesure de maximiser le processeur de leur ordinateur et de voir ainsi si la panne était liée à la chaleur.
via wikipedia: http://en.wikipedia.org/wiki/Yes_(Unix)
yes `yes yes`
Cela pourrait être un avis controversé, mais à mon avis, il s’agit d’un vilain problème pour une mauvaise interface utilisateur dans les outils en ligne de commande .
Certains outils de ligne de commande posent des questions à l'utilisateur avec une invite et n'ont pas la possibilité de s'exécuter de manière non interactive. imaginez par exemple quelque chose comme
$ frobnicate *
frobnicate file a.txt? (y/n) y
frobnicate file b.txt? (y/n) y
...
Comme la réponse à la question est tirée de l’entrée standard, une solution rapide à ce problème consiste à avoir une application qui affiche la chaîne en y\n
continu, ce qui est exactement ce qui se yes
produit. Les pipes Unix peuvent être utilisées pour envoyer cette sortie en tant qu’entrée d’une commande donnée.
$ yes | frobnicate
L'un des problèmes de cette approche est qu'il yes
est impossible de vérifier la question à laquelle elle répond:
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
Une meilleure solution, lorsqu'elle est disponible, consiste en une option spécifique à exécuter de manière non interactive, telle que rm -f
ou apt-get -y
. Cela permet de coder un comportement plus sensible dans l'application.
Je viens de découvrir une autre utilisation: aimer effacer un disque dur avec un motif différent de celui des zéros (comme:) dd if=/dev/zero of=/dev/sdd bs=1M
et utiliser ' oui ' pour cela:
yes UUUUUUUUUUUUU > /dev/sdd
U
s mais avec UUUUUUUUUUUUU\n
s. Pour faire le plein U
, il vous faut yes '' | tr '\n' U > /dev/sdd
outr '\0' U < /dev/zero > /dev/sdd
Un collègue a utilisé cela d'une manière nouvelle pour entrer un mot de passe
yes password | passwd
passwd
demandera d’abord l’ancien mot de passe, si l’utilisateur n’est pas un utilisateur root ou superutilisateur, et ne continuera pas tant que le mot de passe correct n’est pas entré. Donc, l'utilisateur est root ou password
l'ancien mot de passe et rien n'est changé.
ps
ou top
au bon moment).