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 16/11/2020, à 09:20

Smwa

Bash - Stocker plusieurs variables dans une seule ?

Bonjour à toutes et à tous !
je reviens vers vous pour des petites questions sur le bash. Je vais faire plusieurs sujet pour que ce soit plus pratique, et facile à retrouver pour les autres.

J'aimerai savoir s'il est possible de stocker dans une variable, plusieurs variables.


Edit :
Je viens d'avoir ma réponse en regardant du coté des tableaux.. je n'avais pas vu les tableaux encore en bash, cela semble répondre parfaitement à mon besoin, je vais creuser de ce coté.

Bonne journée à tous !!!

Dernière modification par Smwa (Le 16/11/2020, à 13:12)

Hors ligne

#2 Le 16/11/2020, à 09:55

Watael

Re : Bash - Stocker plusieurs variables dans une seule ?

ça ne devrait pas ne pas fonctionner.
mais, ça ne fonctionne pas comment ?


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#3 Le 16/11/2020, à 09:58

Smwa

Re : Bash - Stocker plusieurs variables dans une seule ?

Bonjour Watael,
et bien ça me renvoyait uniquement des lignes avec le nom des variables et pas leur contenu
Je pense que je vais creuser du coté des tableaux, il me semble que cela correspond à ce dont j'ai besoin.

Hors ligne

#4 Le 16/11/2020, à 10:01

Hizoka

Re : Bash - Stocker plusieurs variables dans une seule ?

Salut,

pourtant ça fonctionne ce que tu dis :

nom=Ka
prenom=Hizo
date=16/11/2020
categorie=leger
informations="$nom:$prenom:$date:$categorie"
echo $informations
=> Ka:Hizo:16/11/2020:leger

Après tu peux utiliser un tableau

declare -A informations
informations["nom"]=Ka
informations["prenom"]=Hizo
informations["date"]=16/11/2020
informations["categorie"]=leger
echo "${informations[*]}"
=> Ka Hizo 16/11/2020 leger

et si tu veux les assembler :

final=$(printf "%s:" "${informations[@]}")
final="${final/%:}"
echo "${final}"
=> Ka:Hizo:16/11/2020:leger

KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#5 Le 16/11/2020, à 10:10

Smwa

Re : Bash - Stocker plusieurs variables dans une seule ?

Bonjour Hizoka,

alors là je ne comprends plus, en retestant mon code initial, effectivement ça fonctionne.
Pourtant aux derniers test j'obtenais le nom des variables uniquement. Je crois que l'erreur venait de mon code dans mon script, et que je ne l'ai pas vue, peut-être une simple erreur de " ou de $ quelque part
En tout cas merci pour vos réponses rapides.

Hors ligne

#6 Le 16/11/2020, à 10:20

Hizoka

Re : Bash - Stocker plusieurs variables dans une seule ?

Peut-être as tu encadré tes variables par ' ?

informations='$nom:$prenom:$date:$categorie'
echo "$informations"
$nom:$prenom:$date:$categorie

Un peu de lecture qui te fera le plus grand bien : http://www.tldp.org/LDP/abs/html/abs-guide.html


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#7 Le 16/11/2020, à 10:40

Smwa

Re : Bash - Stocker plusieurs variables dans une seule ?

Il me semble que c'est effectivement l'erreur que j'avais fait dans mon script. C'est le type d'erreur que je fais bêtement. " ' `

Merci pour ce lien, je vais le lire attentivement ! smile

Hors ligne

#8 Le 16/11/2020, à 11:06

Watael

Re : Bash - Stocker plusieurs variables dans une seule ?

Attention ! les tableaux associatifs ne respectent aucun ordre d'affichage, contrairement aux tableaux indexés.

NB: Smwa, sur un forum, on ne supprime rien à ses messages ! le futur lecteur risque d'avoir du mal à suivre la discussion.


Connected \o/
Welcome to sHell. · eval is evil.

Hors ligne

#9 Le 16/11/2020, à 12:18

Smwa

Re : Bash - Stocker plusieurs variables dans une seule ?

haaa toutes mes excuses, je pensais bien faire justement en supprimant ce qui était faux pour ne  pas surcharger le sujet et laisser que les codes exacts !!
C'est noté du coup ! encore désolée

Hors ligne

#10 Le 16/11/2020, à 12:29

Hizoka

Re : Bash - Stocker plusieurs variables dans une seule ?

@Watael => Bien vu, j'avais zappé !


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#11 Le 16/11/2020, à 13:12

Smwa

Re : Bash - Stocker plusieurs variables dans une seule ?

En reprenant mon code, je vois que je bloque toujours sur quelque chose
Si par exemple la variable change de valeur (et c'est ce qui se passe pour mon script justement)
dans une fonction

champ()
{
nom="Dupond"
prenom="Martin"
date="30/10/69"
categorie="Tuteur"
informations="$nom:$prenom:$date:$categorie"
}

et cette partie se trouve dans un scrip qui utilise une boucle et des conditions. Si la condition est remplie la variable change de valeur.

champ
categorie="Ancien"
echo $informations

ne va pas me renvoyer Dupond:Martin:30/10/60:Ancien
mais va me renvoyer Dupond:Martin:30/10/60:Tuteur

alors que si je fais

champ
categorie="Ancien"
echo "$nom:$prenom:$date:$categorie"

là ça me renvoi bien Dupond:Martin:30/10/60:Ancien

Je ne comprend pas pourquoi en fait et surtout comment faire pour que ça prenne en compte les modification de valeur

Dernière modification par Smwa (Le 16/11/2020, à 13:15)

Hors ligne

#12 Le 16/11/2020, à 13:20

Hizoka

Re : Bash - Stocker plusieurs variables dans une seule ?

Bah... C'est logique...

informations="$nom:$prenom:$date:$categorie"

est changé en "Dupond:Martin:30/10/60:Tuteur"
donc tu as beau modifier tes variables, il s'en fout informations...
Il prend les valeurs à l'instant de sa création.

J'insiste sur l’intérêt pour toi d'aller lire un peu...

Dernière modification par Hizoka (Le 16/11/2020, à 13:20)


KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github

Hors ligne

#13 Le 16/11/2020, à 13:35

Smwa

Re : Bash - Stocker plusieurs variables dans une seule ?

Hizoka a écrit :

Bah... C'est logique...

informations="$nom:$prenom:$date:$categorie"

est changé en "Dupond:Martin:30/10/60:Tuteur"
donc tu as beau modifier tes variables, il s'en fout informations...
Il prend les valeurs à l'instant de sa création.

J'insiste sur l’intérêt pour toi d'aller lire un peu...

D'accord je comprends pourquoi ça ne fonctionne pas, je pensais à tort que informations stockait les variable et non leur valeurs, et que je pouvais donc modifier les valeurs comme je voulais ensuite.
Tu as raison je vais potasser le lien que tu m'a communiqué plus haut, et je me remettrai sur mon code ensuite.

Encore merci pour votre aide !! smile

Hors ligne