Что такое команда «да»?

29

Я выдал команду в терминале Ubuntu, которая требовала от меня ввода yes, но я обнаружил, что он спрашивает меня только в первый раз, но я уже нажал enter до того, как понял. Поэтому я ожидал сообщения «команда не найдена», но вместо этого я получил бесконечный поток «y». Кажется, это единственное, что делает, поэтому мне интересно, в чем смысл этой команды и почему она выводит "y"? (Ubuntu 11.10)

Грег Трелевен
источник

Ответы:

14

Из википедии :

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

Его также можно использовать для проверки того, насколько хорошо система справляется с высокими нагрузками, поскольку использование yes приводит к 100% использованию процессора для систем с одним процессором (для многопроцессорной системы процесс должен выполняться для каждого процессора). Это, например, может быть полезно для изучения эффективности системы охлаждения системы, когда процессор работает на 100%.

DavidEG
источник
30

Давным-давно (SySV дней и ранее) у fsckкоманды не было -yни -nпараметров. Команда в интерактивном режиме попросит вас изменить сотни или тысячи элементов, ожидая «y» или «n». Команда yesбыла создана для передачи по каналу fsck и некоторым другим программам, чтобы иметь возможность повторять ответы на интерактивные вопросы (опять же, это были дни SysV, задолго до Tcl и Expect). yesПрограмма подходит очень хорошо с философией UNIX: небольшие программы , которые делают конкретные вещи очень хорошо и работать с другими программами.

Arcege
источник
4

На основании информации, представленной здесь: http://linux.about.com/library/cmd/blcmdl1_yes.htm

Linux / Unix Команда: да

Библиотека команд

НАЗВАНИЕ

да - вывести строку несколько раз, пока не будет убит

СИНТАКСИС

да [STRING] ... да ВАРИАНТ

ОПИСАНИЕ

Повторно выведите строку со всеми указанными STRING или `y '.

--help показать эту справку и выйти --version вывести информацию о версии и выйти
СМОТРИ ТАКЖЕ

Полная документация для yes поддерживается в виде руководства в формате Texinfo. Если на вашем сайте правильно установлены программы info и yes, команда

info yes

должен дать вам доступ к полному руководству.

По моему скромному мнению, использование команды «да» звучит логично, когда вам приходится неоднократно авторизовывать что-либо в процессе / скрипте, нажимая клавишу «y». Которым можно управлять, отменив выполнение программы.

В любом случае, у кого-то еще может быть опыт использования этой команды.

Geppettvs D'Constanzo
источник
У меня нет большого опыта работы с Linux, как вы могли бы использовать команду «да» внутри процесса / скрипта?
Грег Трелавен
Смотрите это: askubuntu.com/questions/71566/what-is-the-yes-command/…
Geppettvs D'Constanzo
1

Команда yes либо напечатает свой аргумент, либо «y», если он пуст, до тех пор, пока вы не завершите программу или ее выходной канал не будет закрыт. Он может использоваться с программами, которые ожидают некоторого повторного ввода, например, rm -i.

Даниэль Куллманн
источник
1
Зачем вам делать итеративный рм, если вы используете да, чтобы удалить все?
fromnaboo
@ fromnaboo Это плохой пример, я знаю. Но иногда у вас нет доступа к внутренней работе программы, которую вы должны использовать, и поэтому да может помочь вам избежать бесконечного повторения одного и того же ввода.
Даниэль Куллманн
@fromnaboo Чтобы увеличить нетто-позитивность вашей машины.
Уолф