Comment modifier une variable - shell tomtom
Résolu/Fermé
A voir également:
- Comment modifier une variable - shell tomtom
- Modifier liste déroulante excel - Guide
- Modifier dns - Guide
- Comment modifier un pdf - Guide
- Modifier une story facebook - Guide
- Classic shell windows 11 - Télécharger - Personnalisation
7 réponses
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
4 nov. 2009 à 16:11
4 nov. 2009 à 16:11
si j'ai un fichier qui contient des lignes de texte, je crée des variables msg1, msg2, etc avec chaque ligne.
$ ./f1 msg1='message 1' msg2='message 2' msg3='message 3' msg4='message 4' msg5='message 5' msg6='message 6' msg7='message 7' $ cat f1 #!/bin/bash c=1 cat << XX | (while read L message 1 message 2 message 3 message 4 message 5 message 6 message 7 XX do export msg${c}="$L" c=$((c+1)) done set | grep msg)
Effectivement je partais d'un fichier txt ne contenant en interne que le message à afficher sur chaque ligne et non sa variable suivi du message à afficher ! je vais tester en suivant cette logique tout cela ce soir avec le shell dans le /bin du tomtom !
En outre la syntaxe Linux tomtom diffère de la syntaxe du langage c ou celle de Linux et ne reprend pas tous les mots clefs… En outre mes recherches sur internet d'un tuto spécifique restent vaine !
1000 Merci pour ce coup de main !
En outre la syntaxe Linux tomtom diffère de la syntaxe du langage c ou celle de Linux et ne reprend pas tous les mots clefs… En outre mes recherches sur internet d'un tuto spécifique restent vaine !
1000 Merci pour ce coup de main !
problème résolu avec cette instruction
export msg${i}="$line"
Encore 1000 mercis pour ce coup de main
export msg${i}="$line"
Encore 1000 mercis pour ce coup de main
Précision :
Ce qui ne marche pas est la mise en forme de la variable msg en lui ajoutant la valeur de i dans la boucle… et en lui affectant comme valeur la valeur de "$line" (pour fabriquer les variables msg1 msg2 etc et en modifier le message par défaut.
Soit la ligne :
msg$i = "$line"
ou
msg$i="$line"
Ce qui ne marche pas est la mise en forme de la variable msg en lui ajoutant la valeur de i dans la boucle… et en lui affectant comme valeur la valeur de "$line" (pour fabriquer les variables msg1 msg2 etc et en modifier le message par défaut.
Soit la ligne :
msg$i = "$line"
ou
msg$i="$line"
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dubcek
Messages postés
18753
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
7 novembre 2024
5 619
4 nov. 2009 à 15:10
4 nov. 2009 à 15:10
hello
quelque chose comme ça
quelque chose comme ça
$ cat f1 #!/bin/bash msg1="message 1" msg2="message 2" msg3="message 3" msg4="message 4" msg5="message 5" msg6="message 6" msg7="message 7" for ((i=1 ; i < 8 ; i++)) ; do m=msg${i} ; eval m2=\$$m ; echo i=$i : $m2 done $ ./f1 i=1 : message 1 i=2 : message 2 i=3 : message 3 i=4 : message 4 i=5 : message 5 i=6 : message 6 i=7 : message 7
Merci dudcek....
mais j'ai peur de ne pas comprendre les subtilités de ce script, mais il est vrai que je débute dans ce langage !
En fait je dispose d'un fichier francais.lng externe au shell
Dans ce fichier j'ai ligne par ligne les messages dans la langue concernée soit le français pour cet exemple.
Ce que je souhaite c'est que mon shell remplace les messages par défaut en anglais par les messages traduit en francais issus du fichier texte francais.lng.
Mais surtout que les variables ne changent pas donc reste msg1, msg2 etc..
Or d'après ce que je pense comprendre au script ci-dessus c'est que désormais la traduction est dans la variable $m2 et non pas dans $msg1, $msg2…
mais j'ai peur de ne pas comprendre les subtilités de ce script, mais il est vrai que je débute dans ce langage !
En fait je dispose d'un fichier francais.lng externe au shell
Dans ce fichier j'ai ligne par ligne les messages dans la langue concernée soit le français pour cet exemple.
Ce que je souhaite c'est que mon shell remplace les messages par défaut en anglais par les messages traduit en francais issus du fichier texte francais.lng.
Mais surtout que les variables ne changent pas donc reste msg1, msg2 etc..
Or d'après ce que je pense comprendre au script ci-dessus c'est que désormais la traduction est dans la variable $m2 et non pas dans $msg1, $msg2…