Confirmação automática ao executar scripts bash?

12

Estou trabalhando em um script bash simples que configura novos servidores como eu os quero. Não é nada de especial, mas espero que me poupe bastante tempo no futuro.

Como evito prompts como este:

  You are about to add the following PPA to your system:
    Stable version of nginx.
    More info: https://launchpad.net/~nginx/+archive/stable
  Press [ENTER] to continue or ctrl-c to cancel adding it

Ao executar comandos como este em um script:

  sudo add-apt-repository ppa:nginx/stable 
  sudo apt-get update
  sudo apt-get -y install nginx

Existe um sinalizador de aceitação automática que eu possa definir ou algo assim?

dannymcc
fonte

Respostas:

25

add-apt-repositorytem uma -ybandeira que você pode usar, o que deve fazer o truque.

Embora eu realmente queira sugerir que você analise sistemas de gerenciamento de configuração, como fantoche ou chef, para configurar servidores. Eles economizarão muito tempo!

Dennis Kaarsemaker
fonte
Perfeito, obrigado. Vou olhar para os dois e ver se consigo contorná-los. Obrigado novamente!
Dannymcc
14

Provavelmente vale a pena notar que yesfoi para isso que foi escrito. Por padrão, imprime yrepetidamente, mas yes <string>apenas repetirá "string".

Se você receber várias respostas, como:

Press [ENTER] to continue or ctrl-c to cancel adding it

Você pode fazer algo como:

yes '' | sudo add-apt-repository ppa:nginx/stable

Para inserir automaticamente uma entrada a cada prompt. Dado que o apt-add-repository tem uma -yopção, você deve usá-la, mas se você encontrar um script que não possua essa opção, poderá usá-la yes.

Erik
fonte