Script shell - affecter * sans interprétation

Résolu/Fermé
jax54000 Messages postés 44 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 24 mai 2008 - 23 mars 2007 à 22:46
jax54000 Messages postés 44 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 24 mai 2008 - 24 mars 2007 à 11:28
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+
A voir également:

6 réponses

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
24 mars 2007 à 09:32
Salut,

T'aurais un exemple précis à nous proposer s'il te plaît, merci ;-))
0
jax54000 Messages postés 44 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 24 mai 2008 1
24 mars 2007 à 09:58
Je n'ai pas été clair...pardon

var="*"
echo $var (je voudrais qu'il m'affiche *)
0
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
24 mars 2007 à 10:24
[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 ;-))
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569 > jipicy Messages postés 40842 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020
24 mars 2007 à 10:41
Salut,

peut être chez toi ça marche :-)) mais chez moi non
lami20j@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
0
jax54000 Messages postés 44 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 24 mai 2008 1
24 mars 2007 à 10:30
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
0
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
24 mars 2007 à 10:37
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 /]$
;-))
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jpzuate Messages postés 56 Date d'inscription dimanche 4 mars 2007 Statut Contributeur Dernière intervention 9 juin 2008 51
Modifié le 24 mars 2007 à 11:28
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
0
jax54000 Messages postés 44 Date d'inscription mercredi 8 septembre 2004 Statut Membre Dernière intervention 24 mai 2008 1
24 mars 2007 à 11:28
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+
0