Sommaire

Commande read

La commande read interrompt l’exécution du shell jusqu’à ce que l’utilisateur ait introduit une chaîne de caractères (même vide) sur son entrée standard.

Les mots composant la chaîne de caractères saisie par l’utilisateur sont affectés aux variables dont les noms sont passés en argument à la commande read.

[nicolas]$ read a b c 
 1 2 3 
[nicolas]$ echo $a ; echo $b ; echo $c 
1 
2 
3

S’il y a plus de mots que de variables, la dernière variable contiendra la fin de la chaîne de caractères. Dans le cas inverse, les variables supplémentaires seront nulles :

[nicolas]$ read a b c 
 1 2 3 4 
[nicolas]$ echo $a ; echo $b ; echo $c 
1 
2 
3 4 
[nicolas]$ read a b c 
1 2 
[nicolas]$ echo $a ; echo $b ; echo $c 
1 
2

Si la commande read est appelée sans argument, la réponse de l’utilisateur est affectée à la variable d’environnement $REPLY :

[nicolas]$ read 
réponse de l’utilisateur 
[nicolas]$ echo $REPLY 
réponse de l’utilisateur

Il est possible de faire précéder la saisie d’une phrase avec l’option -p (prompt) de la commande read :

[nicolas]$ read -p "âge du capitaine ? " age 
âge du capitaine ? 12 
[nicolas]$ echo $age 
12

Cette commande étant généralement utilisée dans les scripts interactifs, ...