Stations de travail en ligne OnWorks Linux et Windows

Logo

Hébergement gratuit en ligne pour les postes de travail

<Précédent | Table des matières | Suivant>

read - Lire les valeurs de l'entrée standard

La lire La commande intégrée est utilisée pour lire une seule ligne d'entrée standard. Cette commande peut être utilisée pour lire une entrée au clavier ou, lorsque la redirection est utilisée, une ligne de données d'un fichier. La commande a la syntaxe suivante :

lire [-Options] [variable...]

De Options est une ou plusieurs des options disponibles répertoriées ci-dessous et variable est le nom d'une ou plusieurs variables utilisées pour contenir la valeur d'entrée. Si aucun nom de variable n'est fourni, la variable shell RÉPONDRE contient la ligne de données.

En gros, lire affecte les champs de l'entrée standard aux variables spécifiées. Si nous modifions notre script d'évaluation d'entiers pour utiliser lire, ça peut ressembler à ça :


#! / Bin / bash


# read-integer : évalue la valeur d'un entier.


echo -n "Veuillez entrer un entier -> " read int


if [[ "$int" =~ ^-?[0-9]+$ ]]; alors si [ $int -eq 0 ]; alors

echo "$int vaut zéro."

d'autre

if [ $int -lt 0 ]; alors

echo "$int est négatif."

d'autre

echo "$int est positif."

fi

if [ $((int % 2)) -eq 0 ]; then echo "$int est pair."

d'autre

echo "$int est impair."

fi

fi d'autre

echo "La valeur d'entrée n'est pas un entier." >&2 sortie 1

fi

#! / Bin / bash


# read-integer : évalue la valeur d'un entier.


echo -n "Veuillez entrer un entier -> " read int


if [[ "$int" =~ ^-?[0-9]+$ ]]; alors si [ $int -eq 0 ]; alors

echo "$int vaut zéro."

d'autre

if [ $int -lt 0 ]; alors

echo "$int est négatif."

d'autre

echo "$int est positif."

fi

if [ $((int % 2)) -eq 0 ]; then echo "$int est pair."

d'autre

echo "$int est impair."

fi

fi d'autre

echo "La valeur d'entrée n'est pas un entier." >&2 sortie 1

fi


Nous utilisons echo les -n (qui supprime le retour à la ligne en sortie) pour afficher une invite, puis utilisez lire pour saisir une valeur pour la variable int. L'exécution de ce script donne ceci :


[moi@linuxbox ~]$ lecture-entier

Veuillez saisir un nombre entier -> 5

5 est positif.

5 est impair.

[moi@linuxbox ~]$ lecture-entier

Veuillez saisir un nombre entier -> 5

5 est positif.

5 est impair.


read peut affecter une entrée à plusieurs variables, comme indiqué dans ce script :


#! / Bin / bash

# read-multiple : lit plusieurs valeurs depuis le clavier echo -n "Entrez une ou plusieurs valeurs > "

lire var1 var2 var3 var4 var5


echo "var1 = '$var1'" echo "var2 = '$var2'" echo "var3 = '$var3'" echo "var4 = '$var4'" echo "var5 = '$var5'"

#! / Bin / bash

# read-multiple : lit plusieurs valeurs depuis le clavier echo -n "Entrez une ou plusieurs valeurs > "

lire var1 var2 var3 var4 var5


echo "var1 = '$var1'" echo "var2 = '$var2'" echo "var3 = '$var3'" echo "var4 = '$var4'" echo "var5 = '$var5'"


Dans ce script, nous attribuons et affichons jusqu'à cinq valeurs. Remarquez comment lire se comporte lorsqu'on lui donne différents nombres de valeurs :



[moi@linuxbox ~]$ lecture-multiple

Saisissez une ou plusieurs valeurs > abcde

var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'e'

[moi@linuxbox ~]$ lecture-multiple Saisissez une ou plusieurs valeurs > a var1 = 'un'

var2 = '' var3 = '' var4 = '' var5 = ''

[moi@linuxbox ~]$ lecture-multiple

Saisissez une ou plusieurs valeurs > abcdefg

var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'efg'

[moi@linuxbox ~]$ lecture-multiple

Saisissez une ou plusieurs valeurs > abcde

var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'e'

[moi@linuxbox ~]$ lecture-multiple Saisissez une ou plusieurs valeurs > a var1 = 'un'

var2 = '' var3 = '' var4 = '' var5 = ''

[moi@linuxbox ~]$ lecture-multiple

Saisissez une ou plusieurs valeurs > abcdefg

var1 = 'a' var2 = 'b' var3 = 'c' var4 = 'd' var5 = 'efg'


If lire reçoit moins que le nombre attendu, les variables supplémentaires sont vides, tandis qu'une quantité excessive d'entrées entraîne la variable finale contenant toutes les entrées supplémentaires.

Si aucune variable n'est répertoriée après le lire commande, une variable shell, RÉPONDRE, se verra attribuer toutes les entrées :



#! / Bin / bash

# read-single : lit plusieurs valeurs dans la variable par défaut echo -n "Entrez une ou plusieurs valeurs > "

lire


echo "REPLY = '$REPLY'"

#! / Bin / bash

# read-single : lit plusieurs valeurs dans la variable par défaut echo -n "Entrez une ou plusieurs valeurs > "

lire


echo "REPLY = '$REPLY'"


L'exécution de ce script donne ceci :



[moi@linuxbox ~]$ lecture-simple

Saisissez une ou plusieurs valeurs > a B c d

REPONSE = 'abcd'

[moi@linuxbox ~]$ lecture-simple

Saisissez une ou plusieurs valeurs > a B c d

REPONSE = 'abcd'


 

Meilleur système d'exploitation Cloud Computing chez OnWorks :