#1 Le 29/10/2023, à 10:54
- zigroful1
BASH : la fonction cut et les variables
Bonjour à tous,
Je ne trouve pas l'explication du comportement suivant de BASH:
Voici les opérations que je fais sur mon terminal (Linux 21.04) avec set +x
$ j= cut -c 1,2 <<< 21091952; echo $j
+ j=
+ cut -c 1,2
21
+ echo 21
21
je change la date en entrée de cut, et je refais echo $j
$ j= cut -c 1,2 <<< 30091952; echo $j
+ j=
+ cut -c 1,2
30
+ echo 21
21
$ echo $j
+ echo 21
21
Il ne réactualise pas la valeur de j. Pourquoi ?
Hors ligne
#2 Le 29/10/2023, à 11:04
- Nuliel
Re : BASH : la fonction cut et les variables
Bonjour,
Tu as oublié les $() pour exécuter la commande entre parenthèse, puis ensuite affecter le résultat à j:
nuliel@nuliel-Latitude-E7270:~$ j=$(cut -c 1,2 <<< 21091952); echo $j
21
nuliel@nuliel-Latitude-E7270:~$ j=$(cut -c 1,2 <<< 30091952); echo $j
30
D'ailleurs je ne comprends pas que sans $() il n'y ait pas d'erreur.
Au passage la 21.04 est périmée depuis longtemps, faut mettre à niveau
Hors ligne
#3 Le 29/10/2023, à 11:26
- pingouinux
Re : BASH : la fonction cut et les variables
Bonjour,
Je pense que j était déjà initialisé à 21 avant l'exécution de tes commandes.
Chaque commande initialise j à "rien" (uniquement pour l'exécution du cut), puis exécute
cut -c 1,2 <<< 21091952; echo $j
Tu récupères le résultat du cut, et j conserve la valeur qu'il avait avant.
Modifié : Ajout d'une précision
Dernière modification par pingouinux (Le 29/10/2023, à 12:10)
Hors ligne