MyTetra Share
Делитесь знаниями!
Как с помощью команды yes все время нажимать Enter?
Время создания: 04.12.2020 11:11
Текстовые метки: linux, yes, enter, нажимать, вводить, выводить, поток, консоль
Раздел: Компьютер - Linux - Bash - Команды и скрипты
Запись: xintrea/mytetra_syncro/master/base/1607069511ymp2ow4acg/text.html на raw.github.com

Команда yes в операционной системе Linux служит для постоянного вывода в стандартный поток строки "yes" или любой другой строки.


Команда yes без параметров будет выдавать строку "y":



> yes

y

y

y

...



Команда yes с параметром будет выдавать указанную в параметре строку:



> yes maybe

maybe

maybe

maybe

...



Команда yes используется обычно в тех случаях, если заранее известно, что какая-то консольная команда во время своей работы будет запрашивать подтверждение на выполнение каких-либо действий. Если команда понимает в качестве подтверждения строку "y", то использовать утилиту yes можно так:



> yes | некая_команда



Если команда понимает в качестве подтверждения слово "confirm", то утилиту yes можно использовать так:



> yes confirm | некая_команда



Обычно, стандартные программы Linux понимают в качестве подтверждения строку "y", поэтому часто утилиту yes ипользуют в самом простом виде без аргументов.


Кстати, в Linux нет утилиты no, которая бы выводила строки "n" в стандартный вывод. Для того, чтобы отменять действия, можно использовать утилиту yes вот так:



> yes n | некая_команда



А что делать, если предполагается, что запущенная программа будет запрашивать значения по-умолчанию, и для их автоматического ввода должен нажиматься Enter? Как вывести в стандартный поток символы Enter через команду yes? Логика тут следующая. Если подумать, то утилита yes выводит в стандартный поток не просто строку "yes" или строку, заданную в параметре. Она выводит в стандартный поток ввода строку, завершенную символом Enter. Именно поэтому вывод команды yes выглядит как столбец, а не как непрерывная строка.


Поэтому, чтобы через команду yes все время нажимать Enter, надо просто выводить через yes пустую строку, вот так:



> yes "" | некая_команда



В принципе, это все, что нужно знать об утилите yes в ОС Linux.


Так же в этом разделе:
 
MyTetra Share v.0.55
Яндекс индекс цитирования