Jump to content

да (Юникс)

да
Операционная система Unix и Unix-подобные
Платформа Кросс-платформенный
Тип Команда
Лицензия основные утилиты : GPLv3+

yes — это команда в Unix и Unix-подобных операционных системах , которая выводит утвердительный ответ или определяемую пользователем строку текстовую непрерывно, пока не будет уничтожена.

Само по себе, yes команда выводит «y» или что-то другое, указанное в качестве аргумента, за которым следует новая строка , пока она не будет остановлена ​​пользователем или не будет уничтожена иным образом ; при передаче в команду она будет продолжаться до тех пор, пока канал не разорвется (т. е. программа не завершит свое выполнение). Однако если пользователь вводит строку после «да», команда «да» выведет строку так же, как и «y», аналогично echo .

Версия yes включенный в состав GNU coreutils, был написан Дэвидом Маккензи. [ 1 ]

Команда доступна как отдельный пакет для Microsoft Windows в рамках GnuWin32 . проекта [ 2 ] и коллекция UnxUtils , состоящая из собственных Win32- портов распространенных GNU Unix-подобных утилит. [ 3 ]

Использование

[ редактировать ]

yes может использоваться для отправки утвердительного (или отрицательного; например) yes n) ответ на любую команду, которая в противном случае запросила бы ее, тем самым заставляя команду выполняться в неинтерактивном режиме.

Если ответить «да» на команду со многими запросами подтверждения пользователя, на все эти запросы автоматически будет получен ответ «да» (ввод «y» и нажатие клавиши «Return»).

Следующие команды

$ yes | sudo apt install foobar

ответит на запросы о подтверждении с помощью y, эффективно устанавливая foobar с помощью sudo apt без каких-либо запросов.

Сегодня это использование может устареть, поскольку большинство команд, которые запрашивают ответ от пользователя, имеют либо опцию «принудительного» (например, rm -f) или вариант «предполагать-да» (например, apt -y).

В качестве примера можно привести следующее:

$ rm -f *.txt

функционально эквивалентен

$ yes | rm *.txt

The yes Команда в сочетании с командой head может использоваться для создания файлов большого объема для целей тестирования. Например, выполнение

$ yes 1234567 | head -n1000 > file

в результате получается файл, состоящий из 1000 строк, каждая из которых состоит из восьми символов (1, 2, 3, 4, 5, 6, 7 и новой строки).

yes может использоваться как простой способ создания нагрузки на процессор. В 2006 году, например, yes пользователя Команда получила известность как средство проверки того, подвержен ли MacBook ошибке «Синдром прерывистого выключения», когда MacBook произвольно отключается без какого-либо вмешательства пользователя. Запустив yes дважды выполнить команду на неопределенный срок через терминал под Mac OS X , пользователи могли максимально загрузить процессор своего компьютера и, таким образом, проверить, не связан ли сбой с перегревом. [ 4 ] [ 5 ]

Реализация и производительность

[ редактировать ]

Осуществление yes в различных Unix и Unix-подобных системах последовательно реализовывался с помощью простого цикла while. Реализация проекта GNU yes была намного быстрее, чем любая другая реализация, что достигалось за счет буферизации вывода, что приводило к большему количеству вывода на один системный вызов. [ 6 ] [ 7 ] Реализация GNU могла быть другой, чтобы избежать нарушения авторских прав Unix. Проект FreeBSD изменил свою реализацию в 2017 году, чтобы она соответствовала реализации GNU. [ 8 ]

  1. ^ yes(1) Linux пользователя по командам Руководство
  2. ^ CoreUtils для Windows
  3. ^ Собственные порты Win32 некоторых утилит GNU.
  4. ^ «Тестирование синдрома случайного выключения MacBook (RSS)» . ЗДНет . 29 августа 2006 г. Архивировано из оригинала 5 июня 2010 года . Проверено 9 мая 2012 г.
  5. ^ «Проверка MacBook на случайные отключения» . файлы Apple . 2 августа 2006 г. Архивировано из оригинала 10 февраля 2007 г. Проверено 16 января 2008 г.
  6. ^ Эндлер, Матиас (10 октября 2017 г.). «Небольшая история о команде «да» в Unix» . Эндлер.dev . Архивировано из оригинала 25 января 2022 г.
  7. ^ kjensenxz (13 июня 2017 г.). «r/unix — Как GNU «да» работает так быстро?» . Реддит . Архивировано из оригинала 30 октября 2021 г.
  8. ^ Гар (13 июня 2017 г.). «Улучшить пропускную способность «да» (фиксация) . гитхаб .

Дальнейшее чтение

[ редактировать ]
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 63ed2c9636ee9be7082f28fc4f477dd3__1720188180
URL1:https://arc.ask3.ru/arc/aa/63/d3/63ed2c9636ee9be7082f28fc4f477dd3.html
Заголовок, (Title) документа по адресу, URL1:
yes (Unix) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)