# Besoin d'explications sur un script

**URL:** <https://www.debian-fr.org/t/besoin-dexplications-sur-un-script/23778>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 9:11 UTC](https://www.debian-fr.org/t/besoin-dexplications-sur-un-script/23778 "2016-02-20T21:11:35Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![thuban](https://www.debian-fr.org/user_avatar/www.debian-fr.org/thuban/32/4177_2.png) [@thuban](https://www.debian-fr.org/u/thuban)\
**Post date:** [Février 20, 2016, 9:11 UTC](https://www.debian-fr.org/t/besoin-dexplications-sur-un-script/23778/1 "2016-02-20T21:11:35Z")

</div>

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](https://www.debian-fr.org/uploads/default/original/1X/924eb3db8bedad6a0d333b02031d3c6a9af9d9c5.gif)

---

<div class="post-metadata">

**Author:** ![pingulova](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/p/ac8455/32.png) [@pingulova](https://www.debian-fr.org/u/pingulova)\
**Post date:** [Février 20, 2016, 9:11 UTC](https://www.debian-fr.org/t/besoin-dexplications-sur-un-script/23778/2 "2016-02-20T21:11:39Z")

</div>

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…

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 20, 2016, 9:11 UTC](https://www.debian-fr.org/t/besoin-dexplications-sur-un-script/23778/3 "2016-02-20T21:11:39Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![thuban](https://www.debian-fr.org/user_avatar/www.debian-fr.org/thuban/32/4177_2.png) [@thuban](https://www.debian-fr.org/u/thuban)\
**Post date:** [Février 20, 2016, 9:12 UTC](https://www.debian-fr.org/t/besoin-dexplications-sur-un-script/23778/4 "2016-02-20T21:12:11Z")

</div>

bien, merci pour les explications 🙂
