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?

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!


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.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.