Skip to content

Read

read est le programme Bash qui permet à l'utilisateur d'interagir avec un script (user prompt / user input).

C'est ce qui est utilisé par exemple, quand la commande apt nous demande de confirmer l'installation d'un logiciel.

Le principe c'est d'afficher un message à l'écran (avec echo par exemple), puis de lancer la commande pour capter la saisie de l'utilisateur. On utilise ensuite la valeur saisie stockée dans une variable.

Tip

Utilisez HereDoc pour afficher du contenu sur plusieurs lignes!

Usage minimal

visiteur@domani:~$ read
mot
visiteur@domani:~$ echo $REPLY
mot

Définissez la variable qui contient le résultat, au lieu du défaut $REPLY

visiteur@domani:~$ read MAREPONSE
truc
visiteur@domani:~$ echo $MAREPONSE
truc

Utilisez Space, ou n'importe quel caractère pour délimiter la fin de la réponse

visiteur@domani:~$ read '-d '
truc visiteur@domani:~$

visiteur@domani:~$ read '-dA'
trucAvisiteur@domani:~$ 

Utiliser read -s pour garder secrète la saisie de l'utilisateur

visiteur@domani:~$ read -s
visiteur@domani:~$ echo $REPLY
secret

Utilisez read -p pour afficher un message avant la saisie (pas de retour à la ligne)

visiteur@domani:~$ read -p "Continuez ? (y/n) : "
Continuez ? (y/n) : y

Répéter l'invite de saisie tant que la valeur n'est pas correcte

    until [[ $VALUE ]] ; do
        read -p "Enter value for $var : " VALUE;
    done ; 

Avec une itération dans une liste

``` for var in ${VAR_LIST[@]}; do VALUE="" until [[ $VALUE ]] ; do read -p "Enter value for $var : " VALUE; done ; echo "$VALUE" ;
done