Qual é o comando "yes"?

29

Emiti um comando no terminal Ubuntu que exigia que eu digite sim, mas descobri que ele só me pergunta pela primeira vez, mas eu já havia pressionado enter antes de perceber. Então, eu esperava uma mensagem "comando não encontrado", mas recebi um fluxo interminável de "y" s. Esta parece ser a única coisa que faz, então estou me perguntando qual é o objetivo desse comando e por que ele gera "y" s? (Ubuntu 11.10)

Greg Treleaven
fonte

Respostas:

14

Da wikipedia :

Por si só, o comando yes gera 'y' ou o que for especificado como argumento, seguido por uma nova linha repetidamente até parar pelo usuário ou ser morto; quando canalizado em um comando, ele continuará até que o canal quebre (ou seja, o programa conclua sua execução).

Também pode ser usado para testar como um sistema lida com altas cargas, pois o uso de yes resulta em 100% de uso do processador, para sistemas com um único processador (para um sistema multiprocessador, um processo deve ser executado para cada processador). Isso, por exemplo, pode ser útil para investigar se o sistema de resfriamento de um sistema será eficaz quando o processador estiver funcionando a 100%.

DavidEG
fonte
30

Há muito tempo (dias SySV e anteriores), o fsckcomando não tinha -you -nopções. O comando pedia interativamente que você alterasse centenas ou milhares de itens, esperando um 'y' ou 'n'. O yescomando foi criado para canalizar para o fsck, e alguns outros programas para poder responder repetidamente às perguntas interativas (novamente, esses eram dias do SysV, muito antes do Tcl e do Expect). O yesprograma se encaixa muito bem com a filosofia do UNIX: pequenos programas que fazem coisas específicas muito bem e funcionam com outros programas.

Arcege
fonte
4

Com base nas informações fornecidas aqui: http://linux.about.com/library/cmd/blcmdl1_yes.htm

Comando Linux / Unix: sim

Biblioteca de comandos

NOME

yes - gera uma string repetidamente até matar

SINOPSE

sim [STRING] ... sim OPÇÃO

DESCRIÇÃO

Saída repetida de uma linha com todas as STRING (s) especificadas (s) ou `y '.

--help exibe esta ajuda e sai --version version version version e exit
VEJA TAMBÉM

A documentação completa do yes é mantida como um manual do Texinfo. Se os programas info e yes estiverem instalados corretamente no seu site, o comando

info yes

deve fornecer acesso ao manual completo.

Na minha humilde opinião, o uso de um comando "yes" soa lógico quando você precisa autorizar repetidamente algo em um processo / script pressionando a tecla "y". Que pode ser controlado cancelando a execução do programa.

De qualquer forma, alguém pode ter experiência usando esse comando.

Geppettvs D'Constanzo
fonte
Não tenho muita experiência com Linux, como você pode usar o comando "yes" em um processo / script?
Greg Treleaven
1

O comando yes imprimirá seu argumento ou "y", se estiver vazio, até você finalizar o programa ou fechar seu canal de saída. Pode ser usado com programas que esperam alguma entrada repetida, como rm -i.

daniel kullmann
fonte
11
por que você faria uma rm iterativa se usasse yes para excluir tudo?
fromnaboo
@romromoo É um mau exemplo, eu sei. Mas, às vezes, você não tem acesso ao trabalho interno de um programa que precisa usar e, portanto, pode ajudá-lo a evitar a repetição contínua da mesma entrada.
Daniel kullmann
@fromnaboo Para aumentar a positividade da sua máquina.
Walf