Confirma automaticamente quando executar scripts bash?

6

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

Como faço para evitar 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?

    
por dannymcc 03.02.2013 / 12:44

2 respostas

19

add-apt-repository tem um sinalizador -y que você pode usar, o que deve funcionar.

Embora eu realmente queira sugerir que você olhe para sistemas de gerenciamento de configuração como fantoche ou chef para configurar servidores. Eles vão te poupar muito tempo!

    
por Dennis Kaarsemaker 03.02.2013 / 12:47
9

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

Se você tiver 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 em cada prompt. Dado que o apt-add-repository tem uma opção -y , você deve usar isso, mas se você encontrar um script que não tenha essa opção, você pode usar yes .

    
por Erik 21.07.2015 / 20:34