web-dev-qa-db-fra.com

Confirmation automatique lors de l'exécution de scripts bash?

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

Comment puis-je éviter les invites comme ceci:

  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

Lorsque vous exécutez des 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

Existe-t-il un indicateur d’acceptation automatique que je peux définir ou quelque chose du genre?

10
dannymcc

add-apt-repository a un drapeau -y que vous pouvez utiliser, ce qui devrait faire l'affaire.

Bien que je veuille vraiment suggérer que vous examiniez les systèmes de gestion de la configuration tels que les marionnettes ou les chefs pour configurer les serveurs. Ils vous feront gagner beaucoup de temps!

23
Dennis Kaarsemaker

Il est probablement intéressant de noter que c’est pour cela que yes a été écrit. Par défaut, il imprime un y à plusieurs reprises, mais yes <string> ne fera que répéter "chaîne" à 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 une entrée à chaque invite. Etant donné que apt-add-repository a une option -y, vous devriez l’utiliser, mais si vous rencontrez un script qui n’a pas cette option, vous pouvez utiliser yes.

13
Erik