Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 29/10/2023, à 11: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, à 12: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, à 12: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, à 13:10)

Hors ligne