OVH Cloud OVH Cloud

[Bash] Argument d'un script

2 réponses
Avatar
hugolino
Bonjour

Je ne sais pas pourquoi, mais un script qui marchait parfaitement
jusqu'à maintenant foire avec la gestion de l'argument qu'on lui
passe...

Pour ceux qui suivent, il s'agit de mon script 'Music' qui lorsqu'on
l'appelle avec '?' comme argument explore '/proc' pour donner le nom du
morceau joué.

Mais aujourd'hui ça marche plus...

J'ai ajouté la ligne 'echo " Argument = '"$1"'..."' dans le script et
lorsque je l'appelle avec 'Music ?', il affiche: Argument = '1'...
(Alors que j'attendais Argument = '?'... )

Bref mon shell se met à transformer la variable $1 en 1...


Quelle est l'erreur ?


PS: j'ai même été jusqu'à faire 'echo $SHELL' pour vérifier que j'étais
toujours sous bash, ce qui est bien le cas.




--
Hugo NPN (i --> ee)
REST:
P: Linus Torvalds
S: Buried alive in email

2 réponses

Avatar
Paul GABORIT
À (at) Thu, 19 Feb 2004 03:33:35 +0100,
(Hugolino) écrivait (wrote):
J'ai ajouté la ligne 'echo " Argument = '"$1"'..."' dans le script et
lorsque je l'appelle avec 'Music ?', il affiche: Argument = '1'...
(Alors que j'attendais Argument = '?'... )


Il doit exister un fichier ou un répertoire '1' dans le répertoire courant
lors de l'appel.

Essayez de l'appeler comme cela :

Music '?'


Ou utilisez autre chose qu'un caractère spécial :

Music --optionquiditdexplorerprocmaisquinestpasuncaracterespecial


--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>

Avatar
hugolino
Le Thu, 19 Feb 2004 10:55:38 +0100, Paul GABORIT a écrit:

À (at) Thu, 19 Feb 2004 03:33:35 +0100,
(Hugolino) écrivait (wrote):
J'ai ajouté la ligne 'echo " Argument = '"$1"'..."' dans le script et
lorsque je l'appelle avec 'Music ?', il affiche: Argument = '1'...
(Alors que j'attendais Argument = '?'... )


Il doit exister un fichier ou un répertoire '1' dans le répertoire courant
lors de l'appel.


Oui, oui, oui... (Quel boulet ! ;-)

J'avais une ligne dans un autre script qui se terminait par 2&>1 au lieu
de 2>&1 et effectivement j'ai un fichier '1' dans mon répertoire de
mp3...

Ce qui m'énerve le plus c'est que je n'aurais jamais trouvé tout seul...

Avec la poutre que tu me retires de l'oeil, je viens de comprendre que
mon argument ? est interprété par le shell comme 'tout fichier dont le
nom ne contient qu'un caractère'...

Il paraît que c'est en faisant des erreurs qu'on apprend, mais
heureusement que vous êtes là !!


Merci encore


--
"Marre des versions stables, je vais tester les instables, au moins je
saurai pourquoi ça plante !"
-+- JCD in Guide du linuxien pervers - "Maintenant que j'ai liquidé le
tout venant, je peux me risquer dans le bizarre". -+-