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
A voir également:
- Instruction sh
- Fichier .sh - Astuces et Solutions
- L'instruction à 0x emploie l'adresse mémoire 0x l'état de la mémoire ne peut pas être read - Astuces et Solutions
- L'instruction à 0x00007ff ✓ - Forum Windows 7
- L'état de la mémoire ne peut pas etre read - Forum Windows 10
- La mémoire ne peut pas être en état 'written' ✓ - Forum Windows
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.
ç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.
jipicy
Messages postés
40842
Date d'inscription
Statut
Modérateur
Dernière intervention
4 896
Pour affecter le contenu de la variable $fic1 et non pas l'interpréter :
bernard
>
jipicy
Messages postés
40842
Date d'inscription
Statut
Modérateur
Dernière intervention
mais la variable f1 n'est définie nulle part dans mon script, donc par défaut shell prend l'élément nommé f1 du répertoire?
jipicy
Messages postés
40842
Date d'inscription
Statut
Modérateur
Dernière intervention
4 896
>
bernard
Ben si elle est définie dans la mesure où tu l'as assignée indirectement dans ton 1er "read" à la variable "$fic1".