Rechercher : dans
Par :

Script shell - affecter * sans interprétation

Dernière réponse le 24 mar 2007 à 11:28:52 jax54000, le 23 mar 2007 à 22:46:16 
 Signaler ce message aux modérateurs

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+

Configuration: Windows XP
Internet Explorer 6.0
Cygwin

Meilleures réponses pour « Script shell affecter * sans interprétation » dans :
Exécuter un script shell VoirExécution d'un script Pour pouvoir exécuter un script ou un programme en ligne de commande il y a plusieurs possibilités : 1. Le chemin absolu 2. Le chemin relatif 3. Modifier la variable PATH Note: Le Sha...

1

jipicy, le 24 mar 2007 à 09:32:25

Salut,

T'aurais un exemple précis à nous proposer s'il te plaît, merci ;-))
Z'@+...che.

JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

2

jax54000, le 24 mar 2007 à 09:58:17

Je n'ai pas été clair...pardon

var="*"
echo $var (je voudrais qu'il m'affiche *)

Répondre à jax54000

3

jipicy, le 24 mar 2007 à 10:24:50

[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 ;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

6

lami20j, le 24 mar 2007 à 10:41:55

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

Répondre à lami20j

4

jax54000, le 24 mar 2007 à 10:30:34

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

Répondre à jax54000

5

jipicy, le 24 mar 2007 à 10:37:41

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 /]$
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

7

jpzuate, le 24 mar 2007 à 10:56:29

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
La Fage Conseil

Répondre à jpzuate

8

 jax54000, le 24 mar 2007 à 11:28:52

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+

Répondre à jax54000
Collection CommentÇaMarche.net