Intereting Posts
Проверка правописания ввода пользователя по aspell, но как вызвать интерактивный режим в этом контексте? Невозможно установить libevent без прав администратора Добавить временные метки для вывода команды «top» кардиостимулятор висит во время остановки Как очистить / перезагрузить смарт-аккумулятор? `Unhandled Exception: System.ArgumentNullException: значение не может быть ошибкой null.` при запуске` dotnet run` с использованием сценария запуска BashScript перемещает файлы на основе совпадения части имен файлов из списка Проблема с размером файловой системы Не удается войти в меню загрузки GNU GRUB! Есть ли команда, которая сообщит мне, нет ли активности экрана? Изменить почтовый ящик mailx Solaris 11 nslookup отменяет ip Как я могу передать пути в файле в качестве аргументов сценария оболочки? Использование редактора строк zsh для обтекания подпроцессов Как остановить пленник в Элементарной ОС Фрейи?

В чем смысл команды `yes`?

Этот вопрос касается команды yes найденной в машинах UNIX и Linux: В основном, какой смысл (если есть) и история этого инструмента? Существуют ли для этого практические приложения? Можно ли показать пример, где он полезен в скрипте или цепочке (через канал или перенаправить) с помощью другого инструмента?

Манипуляция ниже:

 YES(1) BSD General Commands Manual YES(1) NAME yes -- be repetitively affirmative SYNOPSIS yes [expletive] DESCRIPTION yes outputs expletive, or, by default, ``y'', forever. HISTORY The yes command appeared in 4.0BSD. 4th Berkeley Distribution June 6, 1993 4th Berkeley Distribution 

Пример вывода:

 $ yes why why why why why ^Cwhy 

Обычно он используется как быстрый и грязный способ дать ответы на интерактивный скрипт:

 yes | rm -r large_directory 

не будет запрашивать вас о удалении любого файла. Разумеется, в случае rm вы всегда можете указать -f чтобы заставить его катализировать удаление каталогов, но не все инструменты настолько просты.

Обновить

Более подходящий пример этого, который я недавно встретил, – это когда вы fsck к файловой системе, и вы не хотите беспокоиться о том, чтобы ответить на y при запросе, прежде чем исправлять каждую ошибку:

 yes | fsck /dev/foo 

Помимо основного момента, упомянутого в предыдущем ответе, команда yes также может использоваться для тестирования высоких нагрузок CPU на систему. yes создает процесс, который действует как фиктивный загрузчик процессора и приводит к 100% использованию процессора. http://en.wikipedia.org/wiki/Yes_(Unix)

При обновлении портов на рабочей станции FreeBSD использование portmaster + yes становится очень удобным:

 yes | portmaster -da 

Таким образом, вы можете позволить машине обновляться во время обеда, и все вопросы заполняют по умолчанию «y, yes»

При восстановлении мира для «make delete-old» и «make delete-old-libs».

это большая экономия времени:

 yes | make delete-old 

а также

 yes | make delete-old-libs 

В основном помогает избежать ввода / подтверждения определенных операций, которые запрашивают «y» или «да»,