Read - Tutoriel linux

Mise à jour : Debian 11.1

Sommaire
$ type read
read est une primitive du shell
$ read --help
$ man read

2 - Commandes de base

2.1 - Lecture depuis la console

$ read
Entrée depuis le clavier

$ echo $REPLY
Entrée depuis le clavier
$ read line
Entrée depuis le clavier

$ echo line
Entrée depuis le clavier
$ read var1 var2 var3
un deux trois quatre

$ echo -e "$var1 \n$var2 \n$var3"
un
deux
trois quatre

2.2 - Séparateurs par défaut

$ echo -n "$IFS" |hexdump -C
00000000 20 09 0a | ..|
$ read line
un deux trois quatre

$ echo $line
un deux trois quatre

2.3 - Redéfinition des séparateurs

$ IFS="," read var1 var2
Première colonne,Deuxième colonne

$ echo $var1
Première colonne
$ echo $var2
Deuxième colonne
$ IFS="," read line
colonne1 colonne2

$ echo $line
colonne1 colonne2
$ IFS="," read var1 var2 var3
colonne1,colonne2,,colonne3

$ echo $var1
colonne1

$ echo $var2
colonne2

$ echo $var3
,colonne3
$ IFS="" read line
un deux \ trois

$ echo $line
un deux trois
$ IFS="" read -r line
Recopie intégrale avec espaces tabulations et backslashs \\\\

$ echo $line
Recopie intégrale avec espaces tabulations et backslashs \\\\
$ IFS=$' \t\n'

2.4 - Lecture depuis un fichier

$ read </etc/fstab

$ echo $REPLY
# /etc/fstab: static file system information.
$ while read line;do echo "$line";done</etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
.......
$ while IFS="" read -r line; do printf "%s\n" $line; done</etc/fstab

3 - Options

$ read -e
Entrée depuis le clavier avec utilisation possible des touches et raccourcis de de navigation
$ echo $REPLY
Entrée depuis le clavier avec utilisation possible des touches et raccourcis de de navigation
$ read -p "Entrer un valeur : "
Entrer un valeur : qsdfqsdfqsdfqsdf
$ echo $REPLY
qsdfqsdfqsdfqsdf
$ read -ei "Si le texte vous convient l'accepter, sinon le modifier"
Si le texte vous convient l'accepter, sinon le modifier
$echo $REPLY
Si le texte vous convient l'accepter, sinon le modifier
$ read -n 20
Pas plus de 20 carac