Il existe une yescommande dans unix / linux qui imprime fondamentalement à l'infini ysur le stdout. Quel en est le but et comment est-il utile?
Il existe une yescommande dans unix / linux qui imprime fondamentalement à l'infini ysur 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\ncontinu, ce qui est exactement ce qui se yesproduit. 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 yesest 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 -fou 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=1Met utiliser ' oui ' pour cela:
yes UUUUUUUUUUUUU > /dev/sdd
Us mais avec UUUUUUUUUUUUU\ns. Pour faire le plein U, il vous faut yes '' | tr '\n' U > /dev/sddoutr '\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
passwddemandera 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 passwordl'ancien mot de passe et rien n'est changé.
psou topau bon moment).