# Shell batch

**URL:** <https://www.debian-fr.org/t/shell-batch/33122>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 2:53 UTC](https://www.debian-fr.org/t/shell-batch/33122 "2016-02-21T02:53:55Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![gilles974](https://www.debian-fr.org/user_avatar/www.debian-fr.org/gilles974/32/3998_2.png) [@gilles974](https://www.debian-fr.org/u/gilles974)\
**Post date:** [Février 21, 2016, 2:53 UTC](https://www.debian-fr.org/t/shell-batch/33122/1 "2016-02-21T02:53:55Z")

</div>

bonjour  
je me tire les cheveux sur un if

j’ai se morceau de code

```auto
echo -e $BLEU" Etes-vous sur de vouloir executer ce script ? Y/N"
read ANSWER

if [$ANSWER == y]
then
 ma commande
else
 je sort
fi
```

comment modifier le if de façon que si l’on repond “y” ou “Y” ma commande soit exécutée

merci a+

---

<div class="post-metadata">

**Author:** ![kna](https://www.debian-fr.org/user_avatar/www.debian-fr.org/kna/32/5623_2.png) [@kna](https://www.debian-fr.org/u/kna)\
**Post date:** [Février 21, 2016, 2:53 UTC](https://www.debian-fr.org/t/shell-batch/33122/2 "2016-02-21T02:53:55Z")

</div>

En utilisant -o (or) :

```auto

```

(cf man test)

ou sa variante « || » (mais il faut un double crochet pour ça) :

```auto

```

Si tu es fan d’expressions régulières, tu peux aussi faire :

```auto

```

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 2:53 UTC](https://www.debian-fr.org/t/shell-batch/33122/3 "2016-02-21T02:53:58Z")

</div>

[quote=“kna”]Si tu es fan d’expressions régulières, tu peux aussi faire :

```auto

```

Plus simple :

```auto

```

---

<div class="post-metadata">

**Author:** ![Watael](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/a4c791/32.png) [@Watael](https://www.debian-fr.org/u/Watael)\
**Post date:** [Février 21, 2016, 2:53 UTC](https://www.debian-fr.org/t/shell-batch/33122/4 "2016-02-21T02:53:59Z")

</div>

Salut,

`answer=y
if [[$answer == [Yy] ]]; then echo "yess! "; else echo "oh, no"; fi`  
ou si les double-crochets ne sont pas disponibles :`answer=Y
case $answer in [Yy]) echo "yess! ";; *) echo "oh, no";; esac`

---

<div class="post-metadata">

**Author:** ![gilles974](https://www.debian-fr.org/user_avatar/www.debian-fr.org/gilles974/32/3998_2.png) [@gilles974](https://www.debian-fr.org/u/gilles974)\
**Post date:** [Février 21, 2016, 2:53 UTC](https://www.debian-fr.org/t/shell-batch/33122/5 "2016-02-21T02:53:59Z")

</div>

![:038](https://www.debian-fr.org/uploads/default/original/1X/08df484251490af77ba342c0331f3ee271065fe9.gif "bravo") wouaa

sa déboule les solus

merci à tous, avec ça je pourrais me dépatouiller

a+

---

<div class="post-metadata">

**Author:** ![M3t4linux](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/5daacb/32.png) [@M3t4linux](https://www.debian-fr.org/u/M3t4linux)\
**Post date:** [Février 21, 2016, 2:54 UTC](https://www.debian-fr.org/t/shell-batch/33122/6 "2016-02-21T02:54:11Z")

</div>

Principe du “TIMTOWTDI” pour le Batch!!!

On se rapproche de perl là, non?

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 2:54 UTC](https://www.debian-fr.org/t/shell-batch/33122/7 "2016-02-21T02:54:14Z")

</div>

Quand tu fais un truc un peut sophistiquer en shell tu te rapproche de toute manière de perl.

Je pense que le shell est bien plus TIMTOWTDI que perl (il suffit de voir des anciens fil où on présente des solution en sed+grep et en awk, avoir avec plusieurs manière de faire en awk, le tout pour un même problème).

---

<div class="post-metadata">

**Author:** ![Totor](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/58f4c7/32.png) [@Totor](https://www.debian-fr.org/u/Totor)\
**Post date:** [Février 21, 2016, 2:54 UTC](https://www.debian-fr.org/t/shell-batch/33122/8 "2016-02-21T02:54:15Z")

</div>

Bonjour,

d’autres solutions/astuces :

avec bash\>=4.0

```auto
if [["${ANSWER^y}" = Y]]
then
...
fi
```

une autre en bash :

```auto
shopt -s nocasematch
if [["${ANSWER}" = Y]]
then
...
fi
```

pour ce qui est de grep :

`if grep -iq y <<< "${ANSWER}"
then
...
fi
`

---

<div class="post-metadata">

**Author:** ![kna](https://www.debian-fr.org/user_avatar/www.debian-fr.org/kna/32/5623_2.png) [@kna](https://www.debian-fr.org/u/kna)\
**Post date:** [Février 21, 2016, 2:54 UTC](https://www.debian-fr.org/t/shell-batch/33122/9 "2016-02-21T02:54:53Z")

</div>

Pour donner raison à MisterFreez, one other way to do it :

```auto

```
