[script/bash] Variable d'environnement
Résolu/Fermé
panicc
Messages postés
4
Date d'inscription
mardi 5 juillet 2005
Statut
Membre
Dernière intervention
7 juillet 2005
-
5 juil. 2005 à 21:55
asevere Messages postés 13087 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 - 7 juil. 2005 à 23:22
asevere Messages postés 13087 Date d'inscription lundi 28 janvier 2002 Statut Webmaster Dernière intervention 23 novembre 2024 - 7 juil. 2005 à 23:22
A voir également:
- [script/bash] Variable d'environnement
- Script vidéo youtube - Guide
- Microsoft activation script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Impossible de créer le fichier de travail. vérifiez la variable d'environnement temp ✓ - Forum Windows 7
4 réponses
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
6 juil. 2005 à 06:23
6 juil. 2005 à 06:23
Je ne sais pas ce que tu veux faire.
L'entité
$[$fichier] est une expression arithmétique (évalua tion du contenu de la variable fichier)
exemple
Extrait de man bash
Essaye de préciser le but de ta manip...
Johan
L'entité
$[$fichier] est une expression arithmétique (évalua tion du contenu de la variable fichier)
exemple
johand@horus:~$ fichier=packages-2005-05-10 johand@horus:~$ echo $[$fichier] -2020 johand@horus:~$ fichier=packages-2005-05-10.txt johand@horus:~$ echo $[$fichier] bash: packages-2005-05-10.txt: syntax error in expression (error token is ".txt")
Extrait de man bash
Arithmetic expansion allows the evaluation of an arithmetic expression and the substitution of the result. The format for arithmetic expansion is: $((expression)) The old format $[expression] is deprecated and will be removed in upcoming versions of bash.
Essaye de préciser le but de ta manip...
Johan
Timon1102
Messages postés
354
Date d'inscription
jeudi 2 juin 2005
Statut
Membre
Dernière intervention
30 décembre 2010
109
6 juil. 2005 à 17:12
6 juil. 2005 à 17:12
il ne faut pas des espaces autours des crochets ?
panicc
Messages postés
4
Date d'inscription
mardi 5 juillet 2005
Statut
Membre
Dernière intervention
7 juillet 2005
6 juil. 2005 à 18:05
6 juil. 2005 à 18:05
J'ai donc essayé les 2 propositions:
> echo $[ $fichier]
c'est idem que $[$fichier]
> echo $fichier
s'affiche le nom de la variable d'environment sans le $. Donc bien sûr ce n'est pas le contenu du fichier qui s'affiche...
Si j'ai bien compris ta réponse Johan: je ne peux pas stocker le nom d'une variable d'environnement dans une variable telle que $fichier? ??
Mais alors comment faire?
> echo $[ $fichier]
c'est idem que $[$fichier]
> echo $fichier
s'affiche le nom de la variable d'environment sans le $. Donc bien sûr ce n'est pas le contenu du fichier qui s'affiche...
Si j'ai bien compris ta réponse Johan: je ne peux pas stocker le nom d'une variable d'environnement dans une variable telle que $fichier? ??
Mais alors comment faire?
panicc
Messages postés
4
Date d'inscription
mardi 5 juillet 2005
Statut
Membre
Dernière intervention
7 juillet 2005
7 juil. 2005 à 19:23
7 juil. 2005 à 19:23
Salut à tous et notamment à jipicy!
Merci jipicy! ça marche! Je n'y croyais plus!!!!
Donc voici le récapitulatif de la solution:
(Ecrit par jipicy)
----------
il semblerait qu'avec la commande "eval" (commande interne du "bash"), ça le fasse :
[jp@Mandrake tmpfs]$ monfich=/home/jp/tmpfs/fich.txt
[jp@Mandrake tmpfs]$ cat fich.txt
Ceci est un exemple d'affichage avec un remplacement de variable.
Pour ce faire nous utilisons la commande interne du bash "eval".
[jp@Mandrake tmpfs]$ echo $monfich
/home/jp/tmpfs/fich.txt
[jp@Mandrake tmpfs]$ var_monfich='$monfich'
[jp@Mandrake tmpfs]$ echo $var_monfich
$monfich
[jp@Mandrake tmpfs]$ cat $var_monfich
cat: $monfich: No such file or directory
[jp@Mandrake tmpfs]$ eval cat $var_monfich
Ceci est un exemple d'affichage avec un remplacement de variable.
Pour ce faire nous utilisons la commande interne du bash "eval".
---------
CA MARCHE!!!
a+ :D
Merci jipicy! ça marche! Je n'y croyais plus!!!!
Donc voici le récapitulatif de la solution:
(Ecrit par jipicy)
----------
il semblerait qu'avec la commande "eval" (commande interne du "bash"), ça le fasse :
[jp@Mandrake tmpfs]$ monfich=/home/jp/tmpfs/fich.txt
[jp@Mandrake tmpfs]$ cat fich.txt
Ceci est un exemple d'affichage avec un remplacement de variable.
Pour ce faire nous utilisons la commande interne du bash "eval".
[jp@Mandrake tmpfs]$ echo $monfich
/home/jp/tmpfs/fich.txt
[jp@Mandrake tmpfs]$ var_monfich='$monfich'
[jp@Mandrake tmpfs]$ echo $var_monfich
$monfich
[jp@Mandrake tmpfs]$ cat $var_monfich
cat: $monfich: No such file or directory
[jp@Mandrake tmpfs]$ eval cat $var_monfich
Ceci est un exemple d'affichage avec un remplacement de variable.
Pour ce faire nous utilisons la commande interne du bash "eval".
---------
CA MARCHE!!!
a+ :D
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
7 juil. 2005 à 20:09
7 juil. 2005 à 20:09
Happy for you ;-))
6 juil. 2005 à 17:03
Donc le but de ma manip:
j'ai 10 fichiers (dont les chemins sont définis comme variables d'environnements-> car ça change parfois).
Je souhaite faire un petit script qui utilise ces fichiers, mais le script ne traite pas toujours les 10 fichiers à la fois. Donc le nom de la variable d'environnement qui accède au fichier à traiter je la stocke dans la variable $fichier.
a+
panicc
6 juil. 2005 à 22:57
j'aurais nomme ta variable $fichier -> $var_fichier
mettons que $fichier contient "/home/toi/ton_fichier"
$var_fichier contient "fichier"
en gros, tu voudrais que
cat $var_fichier <=> cat $fichier <=> cat /home/toi/ton_fichier
C'est bien ça ?
Dans ce cas, je ne connais pas cette possibilitée dans bash, mais on ne sais jamais, je cherchais a faire la même chose a peu prés en php, et j'ai fini par tomber dessus
En attendant tu peux toujour te créer un fichier temporaire
mettons que tes variable d'environnement soient:
fichier=/mon_fichier
var_fichier=fichier
Ton script pourrait commencer par:
cat >tmp<<EOF
a=\$$var_fichier
EOF
source tmp && rm tmp
cat $a #doit afficher $fichier
A tester :)
7 juil. 2005 à 09:55
Je suis pas sur d'avoir tout pigé là :-/
mais j'ai ça en stock, en espèrant que ça puisse servir : ;-))
7 juil. 2005 à 19:02
Enfin, non disons que j'avais mal interprétationné la "chose" :-DDD
Donc revenons à nos moutons et il semblerait qu'avec la commande "eval" (commande interne du "bash"), ça le fasse : Enjoy (comme dirait l'ami "johndoe") ;-))
7 juil. 2005 à 23:22
Je croyait pourtant avoir trituré eval dans tout les sens hier, mais j'ai du louper un test :)