Como canalizar um 'yes' ou 'y' para um programa enquanto invocado com 'sudo' no bash?

4

Como canalizar um Y ou yes para um programa enquanto invoca com sudo ?

Podemos digitar assim

yes | command
yes | yum update

Como canalizar o y de yes para um programa via sudo da seguinte maneira?

yes| sudo command

O y de yes é passado para command e deve entrar em sudo e sudo solicitará a senha normalmente. Como posso fazer isso?

    
por Abhik Bose 15.12.2017 / 14:41

1 resposta

10

sudo lê a senha diretamente do terminal, não da entrada padrão, a menos que a opção -S seja usada. Assim

yes | sudo command

deve solicitar a senha (se necessário), sem ler yes , e executar command como root com sua entrada padrão alimentada pela saída padrão de yes .

Se isso não funcionar, você pode executar todo o pipeline em sudo usando algo como

sudo sh -c "yes | command"
    
por 15.12.2017 / 14:46

Tags