¿Confirmación automática al ejecutar scripts de bash?

12

Estoy trabajando en un script bash simple que configura los nuevos servidores como los quiero. No es nada especial, pero espero que me ahorre mucho tiempo en el futuro.

¿Cómo evito mensajes 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

Al ejecutar comandos como este desde un script:

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

¿Hay un indicador de aceptación automática que pueda establecer o algo así?

dannymcc
fuente

Respuestas:

25

add-apt-repositorytiene una -ybandera que puedes usar, lo que debería hacer el truco.

Aunque realmente quiero sugerirle que mire los sistemas de gestión de configuración como puppet o chef para configurar servidores. ¡Te ahorrarán mucho tiempo!

Dennis Kaarsemaker
fuente
Perfecto, gracias. Voy a mirar a ambos y ver si puedo entenderlos. ¡Gracias de nuevo!
dannymcc
14

Probablemente valga la pena señalar que esto es para lo que yesse escribió. Por defecto imprime una yrepetidamente, pero yes <string>solo repetirá "cadena" en su lugar.

Si se te presentan un montón de respuestas como:

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

Puedes hacer algo como:

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

Para poner automáticamente una entrada en cada solicitud. Dado que apt-add-repository tiene una -yopción, debe usarla, pero si alguna vez encuentra un script que no tiene esa opción, puede usarla yes.

Erik
fuente