News - Logiciels Libres

Astuce pour répondre OUI à toutes les questions d une commande linux

| | Logiciels Libres | 3 Commentaires | 3428
Astuce pour répondre OUI à toutes les questions d une commande linux
Bonjour à tous,

un billet rapide pour vous montrer comment dire OUI à toutes les questions d'une commande sous Linux.... mais pas que !

Il s'agit de la commande yes ! Oui yes !

Code BASH :
yes
y
y
y
y
y
y
y
y
y


La commande yes, par défaut, envoie sur la sortie standard (STDOUT) des y en boucle jusqu’à ce que la commande soit tuée.
Très utile dans un pipe (le | :) )

Exemple avec un script tout simple :

Code BASH :
#! /bin/bash
 
read var
echo $var


Si on exécute ce script "test.sh" :

Code BASH :
./test.sh


Et qu'on saisit y, la sortie est y.

Maintenant si on fait

Code BASH :
yes | ./test.sh


ça fait la même chose sauf qu'on ne tape rien cette fois ci.
Si on veut sortir autre chose que des "y" on met ce qu'on veut:

Code BASH :
yes adrien
adrien
adrien
adrien
adrien
adrien
adrien
adrien
adrien
adrien


Pratique pour moi pour répondre "y" aux 2 questions des mises à jour de Calculate Linux sur "voulez vous mettre à jour..." et "voulez-vous supprimer les paquets obsolètes...". Je lance donc

Code BASH :
yes | cl-update


Ça fonctionne avec toutes les commandes acceptant des entrées via le pipe.

Code BASH :
yes | yum update


Même si, je sais, yum dispose de l'opérande -y pour répondre oui partout.
C'est beaucoup plus élégant que

Code BASH :
echo y | commande


Car si on a 2 ou 3 questions comme cl-update, ça répond des y en boucle. Le echo ne le fait qu'une fois ;)

La preuve et explications pour ceux qui ne veulent pas lire en vidéo :

N'hésitez pas à sélectionner la qualité HD en 720p ou 1080p !