Instruction sh
bernard
-
bernard -
bernard -
Bonjour, je suis un peu perplexe devant une instruction en sh. J'ai dans un répertoire un fichier toto.
cat toto -> f1 f2 f3
Dans ce même répertoire j'ai 2 fichiers : f1 qui contient 5 et f2 qui contient 6, jusque la facile, donc dans mon répertoire j'ai 3 fichiers : toto, f1 et f2 d'accord?
SI dans un script shell j'écris ceci:
read fic1 fic2 fic3 < "$1" ($1 représente le fichier toto dans mon cas)
read nb1 < $fic1
ça me met la valeur 5 dans la variable nb1. Mais je ne comprends pas du tout pourquoi...
Lorsqu'on fait read fic1 fic2 fic3 < $1 on met la valeur f1 dans fic1 vous êtes d'accord? Donc fic1 vaut f1.
Mais ensuite quand on a read nb1 < $fic1, on met la valeur du fichier f1 dans nb1, ce que je comprends pas du tout c'est pourquoi ici $fic1 est considéré comme la valeur du fichier f1 du répertoire, je ne comprends pas du tout, quelqu'un a t'il une explication svp?
merci
cat toto -> f1 f2 f3
Dans ce même répertoire j'ai 2 fichiers : f1 qui contient 5 et f2 qui contient 6, jusque la facile, donc dans mon répertoire j'ai 3 fichiers : toto, f1 et f2 d'accord?
SI dans un script shell j'écris ceci:
read fic1 fic2 fic3 < "$1" ($1 représente le fichier toto dans mon cas)
read nb1 < $fic1
ça me met la valeur 5 dans la variable nb1. Mais je ne comprends pas du tout pourquoi...
Lorsqu'on fait read fic1 fic2 fic3 < $1 on met la valeur f1 dans fic1 vous êtes d'accord? Donc fic1 vaut f1.
Mais ensuite quand on a read nb1 < $fic1, on met la valeur du fichier f1 dans nb1, ce que je comprends pas du tout c'est pourquoi ici $fic1 est considéré comme la valeur du fichier f1 du répertoire, je ne comprends pas du tout, quelqu'un a t'il une explication svp?
merci
Configuration: Linux Mozilla 1.9.0.16
2 réponses
-
Salut,
ça me met la valeur 5 dans la variable nb1. Mais je ne comprends pas du tout pourquoi...
Tout simplement parce que "read nb1 < $fic1" est équivalent à :
read nb1 < f1
Donc à transmettre le contenu de "f1" et non pas à assigner le nom de la variable.
-
oui mais ce f1 c'est le f1 du fichier toto, or ici on met dans nb1 la valeur du fichier f1 du répertoire et non du f1 de toto...