On Sun, 17 Mar 2002 12:33:00 +0100
Francois Massonneau <[EMAIL PROTECTED]>(by way of Francois Massonneau <[EMAIL PROTECTED]>) 
wrote:

> Bonjour,
> 
> Une petite question concernant l'écriture d'un script. Je voulais
> faire un test sur ce qui était tapé au clavier, ainsi si on tapait
> "a" en minuscule ou "A" en majuscule, on faisait telles et telles
> instructions. Voilà la partie de code :
> 
> echo -n "Your choice ? : "
> read "what_to_do"
> if test [[ "$what_to_do" = "a" ]] || [[ "$what_to_do" = "A" ]] ; then
> etc..
> 
> Ben ça marche pas. Il n'aime pas avoir un "test" avec "ou".
> 
> Pour que ça marche, il m'a fallu faire ça :
> 
> if test "$what_to_do" = "a" ; then
> etc...
> elif test "$what_to_do" = "A" ; then
> etc...
> 
> Mais auriez vous une solution pour que la première version fonctionne
> ?
> Merci. Francois
> 
> 
case me semble plus approprié, à moins que tu aies de bonnes raisons!

si tu veux une action différente pour a et A:

case $what_to_do in
  a)
     action1
     ;;
  A)
     action2
     ;;
  *)
     action3
     ;;
esac

si tu veux la même action pour a et A:

case $what_to_do in
  a|A)
      action1
      ;;
  *)
      action2
      ;;
esac

sinon, pour pour test:

"test expr1 -o expr2" renvoie 0 si expr1 ou expr2 sont vraies
"test expr1 -a expr2" renvoie 0 si expr1 et expr2 sont vraies

bye
jipe

Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com";

Répondre à