OVH Cloud OVH Cloud

script bash et $[$1] ?

8 réponses
Avatar
Guillaume REMY
Bonsoir,

Je ne sais pas trop si c'est le bon endroit pour demander ca, alors
redirigez-moi si jamais...

J'essaie de faire un script tout con pour lancer mplayer pour ecouter la
radio, mais j'ai un problème de variable :

Voici le script :

#!/bin/bash

EUROPE1='mms://vip8.yacast.fr/encodereurope1'
EUROPE2='mms://vip8.yacast.fr/encodereurope2'
RTL='mms://vip2.yacast.fr/encoderrtl'
RTL2='mms://vip2.yacast.fr/encoderrtl2'
FRANCEINFO='mms://cache.yacast.fr/V4/franceinfo/franceinfo.asx'
RIREETCHANSONS='mms://vip1.yacast.fr/encoderrireetchansons'

if [ $# -ne 1 ]; then
echo "usage : radio [EUROPE1/EUROPE2/RTL/RTL2/FRANCEINFO/RIREETCHANSONS]"
else
mplayer -nocache $[$1]
fi

# Fin de script

Je lance ce script en passant en parametre le nom de la station, qui est
en meme temps le nom de la variable, par exemple :
# radio EUROPE1

Mais j'ai une erreur sur $[$1]
J'ai essayé tout ce que j'ai trouvé sur le net :
$($1), ${$1} ${${1}}, et beaucoup d'autres , mais rien ne fonctionne, je
n'arrive pas à obtenir le contenu de la variable dont le nom est passé
en parametre.

Quelqu'un aurait une petite idée ?
Merci bcp !

8 réponses

Avatar
chmod 777
Guillaume REMY wrote:

Bonsoir,


Bonsoir


Mais j'ai une erreur sur $[$1]
J'ai essayé tout ce que j'ai trouvé sur le net :
$($1), ${$1} ${${1}}, et beaucoup d'autres , mais rien ne fonctionne, je
n'arrive pas à obtenir le contenu de la variable dont le nom est passé
en parametre.


pour affecter une variable dans un script:
VARIABLE=1

pour utiliser son contenu:
$VARIABLE

echo $VARIABLE va t'afficher 1



Merci bcp !


De rien... Il suffisait de lire le premier script qui te tombe sous la main
et de l'étudier un peu ;-)

Lionel

Avatar
Nicolas George
chmod 777 wrote in message :
pour affecter une variable dans un script:
VARIABLE=1

pour utiliser son contenu:
$VARIABLE

echo $VARIABLE va t'afficher 1


Tu es conscient que tu ne réponds pas du tout à la question ?

Pour répondre à Guillaume : la manipulation que tu cherches à faire
s'appelle une indirection. Cette indication devrait te permettre de trouver
dans le man de bash.

Avatar
Guillaume REMY
Guillaume REMY wrote:


Bonsoir,



Bonsoir



Mais j'ai une erreur sur $[$1]
J'ai essayé tout ce que j'ai trouvé sur le net :
$($1), ${$1} ${${1}}, et beaucoup d'autres , mais rien ne fonctionne, je
n'arrive pas à obtenir le contenu de la variable dont le nom est passé
en parametre.



pour affecter une variable dans un script:
VARIABLE=1

pour utiliser son contenu:
$VARIABLE

echo $VARIABLE va t'afficher 1




Merci bcp !



De rien... Il suffisait de lire le premier script qui te tombe sous la main
et de l'étudier un peu ;-)

Lionel



Oui, jusque là j'avais bien compris :)

Mais je me suis peut-être mal expliqué...
Je recommence :

je lance :
# radio EUROPE1

Dans mon script, je récupère le contenu de ma variable $1, qui contient
"EUROPE1".

Mantenant, j'aimerais récupérer le contenu de la variable $EUROPE1, que
j'initialise au début du script.

Je fais don un $$1, ca ne marche pas.
Je fais donc un $[$1], ca ne marche pas.
Je fais donc un ${$1}, ca ne marche pas.
Je fais donc un $($1), ca ne marche pas.

Comment puis-je faire ?

Merci !


Avatar
Guillaume REMY
chmod 777 wrote in message :

pour affecter une variable dans un script:
VARIABLE=1

pour utiliser son contenu:
$VARIABLE

echo $VARIABLE va t'afficher 1



Tu es conscient que tu ne réponds pas du tout à la question ?

Pour répondre à Guillaume : la manipulation que tu cherches à faire
s'appelle une indirection. Cette indication devrait te permettre de trouver
dans le man de bash.


ok, merci pour l'info, je vais voir ca de suite !


Avatar
Guillaume REMY

chmod 777 wrote in message :

pour affecter une variable dans un script:
VARIABLE=1

pour utiliser son contenu:
$VARIABLE

echo $VARIABLE va t'afficher 1




Tu es conscient que tu ne réponds pas du tout à la question ?

Pour répondre à Guillaume : la manipulation que tu cherches à faire
s'appelle une indirection. Cette indication devrait te permettre de
trouver
dans le man de bash.



ok, merci pour l'info, je vais voir ca de suite !


Et ben voilà !
Pour ceux que ca interesse, la valeur pouvait etre récupérée par ${!1}

Merci encore
A+



Avatar
chmod 777
Nicolas George wrote:


Tu es conscient que tu ne réponds pas du tout à la question ?


Encore lu le post trop vite...

Toutes mes excuses à tous pour le temps que je vous ai fait perdre...

Lionel

Avatar
chmod 777
Guillaume REMY wrote:


Mais je me suis peut-être mal expliqué...
Je recommence :


Non, je viens de relire ton premier post et c'est moi qui avais mal
compris... J'ai dû lire trop vite, une fois de plus...

Désolé de t'avoir fait perdre ton temps...

Lionel

Avatar
Stephane Chazelas
2004-11-04, 23:11(+01), Guillaume REMY:
[...]
Et ben voilà !
Pour ceux que ca interesse, la valeur pouvait etre récupérée par ${!1}
[...]


À noter que cette syntaxe est specifique a bash et a ksh93. A
noter qu'on peut tres bien s'en sortir avec une syntaxe shell
standard en utilisant la commande "eval" qui permet d'evaluer du
code dynamiquement :

eval "valeur=${$1}"

Si $1 vaut "2", ca passe "valeur=${2}" à eval qui a son tour
evalue ca pour assigner la valeur de $2 a "valeur".

--
Stephane