¿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í?

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!


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.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.