yes может использоваться для отправки утвердительного (или отрицательного; например, yes n) ответа на любую команду, которая в противном случае запросила бы ее, в результате чего команда запускалась неинтерактивно.
Команду yes вместе с командой head можно использовать для создания файлов большого объема для средств тестирования.
Его также можно использовать для проверки того, насколько хорошо система справляется с высокими нагрузками, поскольку использование yes приводит к 100% использованию процессора для систем с одним процессором (для многопроцессорной системы процесс должен выполняться для каждого процессора). Это, например, может быть полезно для изучения эффективности системы охлаждения системы, когда процессор работает на 100%.
В 2006 году команда yes получила огласку как средство проверки того, не подвержен ли пользовательский MacBook синдромом прерывистого отключения или нет. Запустив команду yes дважды через Терминал под Mac OS X, пользователи смогли максимально использовать центральный процессор своего компьютера и таким образом увидеть, был ли сбой связан с перегревом
о, это хороший стресс-тест. только что попробовал, затем побежал к моему коллеге с просьбой о новом vm xD
Toastgeraet
20
Это может быть спорным мнением, но, на мой взгляд, это ужасное исправление плохого пользовательского интерфейса в инструментах командной строки .
Некоторые инструменты командной строки задают вопросы пользователю с подсказкой и не имеют возможности работать не в интерактивном режиме; представьте, например, что-то вроде
$ frobnicate *
frobnicate file a.txt? (y/n) y
frobnicate file b.txt? (y/n) y
...
Поскольку ответ на вопрос взят из стандартного ввода, быстрое решение этой проблемы - приложение, которое выводит строку y\nнепрерывно, что и yesделает. Unix трубы могут быть использованы для отправки этого вывода в качестве входных данных для данной команды.
$ yes | frobnicate
Одна из проблем этого подхода заключается в том, что у yesнего нет возможности проверить вопрос, на который он отвечает:
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
Лучшим решением, если оно доступно, является конкретный вариант для запуска в неинтерактивном режиме, например, rm -fили apt-get -y. Это позволяет кодировать более разумное поведение в приложении.
Я прочитал все остальные ответы. Я согласен с вашими полностью WRT уродливых исправить ... хотя это действительно есть действительное использование для тестирования реакции компьютера на высокие нагрузки на процессоре.
Подстановочный
6
Конечно, вы можете использовать проприетарное программное обеспечение «Microsoft Windows» для проверки реакции компьютера на высокую загрузку процессора, но «да» является открытым исходным кодом.
Wildcard
1
Это одно из самых красивых исправлений
Jezzamon
4
Мне нравится использовать, yesкогда я распаковываю несколько файлов .zip, которые содержат один и тот же файл с одинаковым именем, и меня спрашивают, что делать в каждом случае (например, лицензионное соглашение).
Просто наткнулся на другое использование: любил стирать жесткий диск с другим шаблоном, отличным от нуля (вроде:), dd if=/dev/zero of=/dev/sdd bs=1Mи использовал для этого « да »:
Остерегайтесь, хотя он заполняет диск с Us, но с UUUUUUUUUUUUU\ns. Чтобы заполнить Uс, вам нужно yes '' | tr '\n' U > /dev/sddилиtr '\0' U < /dev/zero > /dev/sdd
Стефан Chazelas
1
Коллега использовал это по-новому для ввода пароля
passwdсначала запросит старый пароль, если пользователь не является пользователем root или суперпользователем, и не продолжит работу, пока не будет введен правильный пароль. Так что либо пользователь root, либо passwordстарый пароль, и ничего не изменилось.
Михаил Кониецка
@MichaelKonietzka действительно. Но с условиями, которые вы упомянули, это полезный вариант использования.
frogstarr78
3
За исключением того, что это сохранилось бы в истории открытым текстом. Crazeyyy.
Ответы:
через википедию: http://en.wikipedia.org/wiki/Yes_(Unix)
источник
yes `yes yes`
Это может быть спорным мнением, но, на мой взгляд, это ужасное исправление плохого пользовательского интерфейса в инструментах командной строки .
Некоторые инструменты командной строки задают вопросы пользователю с подсказкой и не имеют возможности работать не в интерактивном режиме; представьте, например, что-то вроде
Поскольку ответ на вопрос взят из стандартного ввода, быстрое решение этой проблемы - приложение, которое выводит строку
y\n
непрерывно, что иyes
делает. Unix трубы могут быть использованы для отправки этого вывода в качестве входных данных для данной команды.Одна из проблем этого подхода заключается в том, что у
yes
него нет возможности проверить вопрос, на который он отвечает:Лучшим решением, если оно доступно, является конкретный вариант для запуска в неинтерактивном режиме, например,
rm -f
илиapt-get -y
. Это позволяет кодировать более разумное поведение в приложении.источник
Мне нравится использовать,
yes
когда я распаковываю несколько файлов .zip, которые содержат один и тот же файл с одинаковым именем, и меня спрашивают, что делать в каждом случае (например, лицензионное соглашение).источник
Просто наткнулся на другое использование: любил стирать жесткий диск с другим шаблоном, отличным от нуля (вроде:),
dd if=/dev/zero of=/dev/sdd bs=1M
и использовал для этого « да »:yes UUUUUUUUUUUUU > /dev/sdd
источник
U
s, но сUUUUUUUUUUUUU\n
s. Чтобы заполнитьU
с, вам нужноyes '' | tr '\n' U > /dev/sdd
илиtr '\0' U < /dev/zero > /dev/sdd
Коллега использовал это по-новому для ввода пароля
источник
passwd
сначала запросит старый пароль, если пользователь не является пользователем root или суперпользователем, и не продолжит работу, пока не будет введен правильный пароль. Так что либо пользователь root, либоpassword
старый пароль, и ничего не изменилось.ps
илиtop
в нужный момент).