Script shell - affecter * sans interprétation
Résolu
jax54000
Messages postés
44
Statut
Membre
-
jax54000 Messages postés 44 Statut Membre -
jax54000 Messages postés 44 Statut Membre -
Bonjour à tous,
Je cherche à mettre le caractere * dans une variable (sans qu'il n'y ait aucune interprétation).
Dans mon cas :
- Si je travaille sous "home", le caractère est bien affecté tel quel à la variable.
- Si je travaille sous un autre répertoire, le caractère est interprété avant l'affectation. La variable ne contient donc pas *.
Problème de débutant......
Merci.
A+
Je cherche à mettre le caractere * dans une variable (sans qu'il n'y ait aucune interprétation).
Dans mon cas :
- Si je travaille sous "home", le caractère est bien affecté tel quel à la variable.
- Si je travaille sous un autre répertoire, le caractère est interprété avant l'affectation. La variable ne contient donc pas *.
Problème de débutant......
Merci.
A+
Configuration: Windows XP Internet Explorer 6.0 Cygwin
6 réponses
-
Salut,
T'aurais un exemple précis à nous proposer s'il te plaît, merci ;-))
-
Je n'ai pas été clair...pardon
var="*"
echo $var (je voudrais qu'il m'affiche *)-
[jp@MDK tmpfs]$ var="*" [jp@MDK tmpfs]$ echo $var * [jp@MDK tmpfs]$ echo "$var" * [jp@MDK tmpfs]$ echo '$var' $var [jp@MDK tmpfs]$ tree . `-- data |-- rep1 | |-- repA | | |-- fich1 | | |-- fich2 | | `-- fich3 | |-- repB | | |-- fich1 | | |-- fich2 | | `-- fich3 | |-- repC | | |-- fich1 | | |-- fich2 | | `-- fich3 | `-- repD | |-- fich1 | |-- fich2 | `-- fich3 `-- rep2 |-- repA | |-- fich1 | |-- fich2 | `-- fich3 |-- repB | |-- fich1 | |-- fich2 | `-- fich3 |-- repC | |-- fich1 | |-- fich2 | `-- fich3 `-- repD |-- fich1 |-- fich2 `-- fich3 11 directories, 24 files [jp@MDK tmpfs]$ ls -R $var data: rep1/ rep2/ data/rep1: repA/ repB/ repC/ repD/ data/rep1/repA: fich1 fich2 fich3 data/rep1/repB: fich1 fich2 fich3 data/rep1/repC: fich1 fich2 fich3 data/rep1/repD: fich1 fich2 fich3 data/rep2: repA/ repB/ repC/ repD/ data/rep2/repA: fich1 fich2 fich3 data/rep2/repB: fich1 fich2 fich3 data/rep2/repC: fich1 fich2 fich3 data/rep2/repD: fich1 fich2 fich3 [jp@MDK tmpfs]$ sh -xvc "ls $var" ls * + ls data rep1 rep2 [jp@MDK tmpfs]$Ça marche ;-))
- Salut,
peut être chez toi ça marche :-)) mais chez moi nonlami20j@debian:~/bin/my_perl_script/Classe$ var="*" lami20j@debian:~/bin/my_perl_script/Classe$ echo $var FichierScalar.pm Personne.pm PersOverTie.pm lami20j@debian:~/bin/my_perl_script/Classe$ ls $var FichierScalar.pm Personne.pm PersOverTie.pm lami20j@debian:~/bin/my_perl_script/Classe$ ls * FichierScalar.pm Personne.pm PersOverTie.pm
--
lami20j
-
-
var="*"
echo $var
fonctionne que si on est sous "home/..."
si l'on est ailleurs, il interprète * et me liste donc tous les fichiers et tous les répertoires dans la variable
Merci -
Problème de "quotes" !!!
[jp@MDK ~]$ cd .. [jp@MDK home]$ [jp@MDK home]$ pwd /home [jp@MDK home]$ echo $var jp [jp@MDK home]$ echo "$var" * [jp@MDK home]$ cd / [jp@MDK /]$ echo $var bin boot dev etc home initrd lib mnt opt proc root sbin sys tmp usr var [jp@MDK /]$ echo "$var" * [jp@MDK /]$
;-))
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Salut,
Selon les OS, les versions, le shell, que sais-je encore, l'étoile peut être interprêtée différemment.
Il faut tenter soit d'annuler son effet par un \, soit l'encapsuler dans des ' ou des ".
Selon l'environnement, "*" n'aura pas le meme effet que '*', ou que \*.
Jean-Pierre Zuate
-
Vous êtes LES grands chefs ! LES grands patrons !
Effectivement c'est un problème de quotes.
J'ai bien aussi noté que l'environnement influera beaucoup sur l'interprétation.
Merci pour tout
A+