Besoin d'explications sur un script

Bonjour!
Je ne comprend pas quelque chose dans le comportement du script que j’ai écrit. En voici un bout :

[code]###définition des types de fichier :

EXT_VIDEO="*.mov | *.avi | *.wma"

#############################################################################################################################################
action () {
case $1 in
*/ ) cd $1
;;
$EXT_VIDEO ) mplayer $1
;;

*.mov | *.avi | *.wma ) mplayer $1

;;

esac

}[/code]
Il s’agit d’une fonction, qui devra faire certaines actions selon le type de fichier.
Voici mon problème : -si j’utilise la variable $EXT_VIDEO, rien ne se passe.
Par contre, si j’utilises les lignes commentée, c’est à dire si j’écris explicitement les extensions, ça fonctionne.
Selon moi j’ai écris 2 fois quelque chose qui revient exactement au même, mais visiblement, non. Qu’est-ce que je n’ai pas bien compris?
Merci d’avance!
:smt006

Je ne suis pas expert en script shell (loin de là), mais je pense que le problème vient du fait que ta variable EXT_VIDEO est une chaîne de caractères, et non une expression évaluable par case. En gros, tel qu’il est, ton script ne lancera mplayer que si l’argument que tu lui passes est exactement égal à la chaîne “*.mov | *.avi | *.wma”

Par contre je ne sais pas s’il existe une meilleure solution que celle que tu as commentée…

C’est la même différence que
#define TOTO 23
et
TOTO=23
en C. Tu voudrais un define autrement dit un prétraitement du script avant évaluation ce qui ne se fait pas en bash je crois bien.

bien, merci pour les explications :slightly_smiling: