Confirmer automatiquement lors de l'exécution des scripts bash?

12

Je travaille sur un simple script bash qui configure les nouveaux serveurs comme je les veux. Ce n'est rien de spécial, mais j'espère que cela me fera gagner beaucoup de temps à l'avenir.

Comment empêcher des invites comme celle-ci:

  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

Lors de l'exécution de commandes comme celle-ci à partir d'un script:

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

Y a-t-il un indicateur d'acceptation automatique que je peux définir ou quelque chose comme ça?

dannymcc
la source

Réponses:

25

add-apt-repositorya un -ydrapeau que vous pouvez utiliser, ce qui devrait faire l'affaire.

Bien que je veuille vraiment vous suggérer de regarder des systèmes de gestion de configuration comme marionnette ou chef pour configurer les serveurs. Ils vous feront gagner beaucoup de temps!

Dennis Kaarsemaker
la source
Parfait, merci. Je vais examiner les deux et voir si je peux les contourner. Merci encore!
dannymcc
14

Il est probablement intéressant de noter que c'est ce qui yesétait écrit pour. Par défaut imprime un à yplusieurs reprises, mais yes <string>va simplement répéter « string » à la place.

Si vous êtes présenté avec un tas de réponses comme:

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

Vous pouvez faire quelque chose comme:

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

Pour mettre automatiquement entrer à chaque invite. Étant donné que apt-add-dépôt a une -yoption, vous devez utiliser, mais si jamais vous rencontrez un script qui ne dispose pas de cette option, vous pouvez utiliser yes.

Erik
la source