Les accolades
Résolu
Bonsoir,
J'aimerais savoir ce que fait la ligne suivante :
$ x=${x}y; echo $x
J'hésite entre une boucle infinie et l'affichage de ${x}y
Merci !
J'aimerais savoir ce que fait la ligne suivante :
$ x=${x}y; echo $x
J'hésite entre une boucle infinie et l'affichage de ${x}y
Merci !
2 réponses
Pour quoi tu n'écris pas simplement le programme shell correspondant et ensuite tu le lances ?
Personnellement j'aurais plutôt écrit
Les accolades limitent la portée de l'opérateur $ à la lettre x (au lieu xy). Ainsi écrire $xy est équivalent à écrire ${xy}.
Bonne chance
(mando@silk) (~) $ cat plop.sh x="coucou" x=${x}y echo $x (mando@silk) (~) $ sh plop.sh coucouy
Personnellement j'aurais plutôt écrit
x="${x}y"
Les accolades limitent la portée de l'opérateur $ à la lettre x (au lieu xy). Ainsi écrire $xy est équivalent à écrire ${xy}.
Bonne chance
Loik
Oulah attends deux secondes comment ça se fait que x soit égale à la fois à "coucou" et ${x}y dans ton cas ?
La commande cat écrit le contenu d'un fichier (ici plop.sh, que j'ai écrit au préalable)
Dans mon fichier plop.sh il y a trois instructions.
- La première initialise x à coucou.
- La seconde modifie x comme tu l'as écris dans ta commande.
- La troisième écrit x
Ensuite j'exécute ce script et observe le résultat des trois commandes.
Si je n'avais pas initalisé x à "coucou", cette variable aurait été implicitement initialisée à "" et j'aurais observé comme résultat "y" au lieu de "coucouy".
Bonne chance
Dans mon fichier plop.sh il y a trois instructions.
- La première initialise x à coucou.
- La seconde modifie x comme tu l'as écris dans ta commande.
- La troisième écrit x
Ensuite j'exécute ce script et observe le résultat des trois commandes.
Si je n'avais pas initalisé x à "coucou", cette variable aurait été implicitement initialisée à "" et j'aurais observé comme résultat "y" au lieu de "coucouy".
Bonne chance