read est un appel système standard Unix et une commande interne du shell Unix.
Appel système
L'appel système permet de lire un certain nombre de bytes d'un descripteur de fichier et de les placer dans un tampon.
Commande shell
Dans les shells de la famille Bourne shell, read est une commande interne qui permet de lire une ligne de donnée et d'en assigner le contenu à une ou plusieurs variables.
Par défaut, la source des données est l'entrée standard mais read peut également utiliser un descripteur de fichier via l'option « -u ».
La ligne lue est scindée en utilisant la variable d'environnement IFS et chaque partie est associée aux variables dont les noms ont été spécifiés en paramètre. Si le nombre de parties ainsi obtenues est inférieur aux nombres de variables, alors les variables restantes sont instanciées avec une valeur vide.
Exemple
Exemple :
$> #On définit la virgule comme séparateur de champs
$> IFS=,
$> read var1 var2 var3
sh,bash,zsh
$> echo -e "var1 : $var1 \nvar2 : $var2 \nvar3 : $var3"
var1 : sh
var2 : bash
var3 : zsh