Forum Programmation.shell faire un if or or or ??

Posté par  .
Étiquettes : aucune
0
3
fév.
2006
Bonjour à tous,
je cherche à écrire en shell :

si toto nonégal à 0 ou à 23 ou à 24 alors
ecrire bonjour
sinon
ecrire erreur
fsi

j'ai essayé ca
if [ "$toto" -ne "0" -o "$toto" -ne "23" -o "$toto" -ne "24" ]; then
echo bonjour
else
echo erreur
fi

mais ca ne marche pas et je n'arrive pas a trouver une syntaxe correcte...
pourriez vous m'aider s'ilvouplait

merci ;)
  • # rep

    Posté par  . Évalué à 0.

    j'ai essayé ca aussi mais ca ne marche pas
    if [ "$toto" -ne "0"] || [ "$toto" -ne "23" ] || [ "$toto" -ne "24" ]; then
  • # Probleme de logique

    Posté par  . Évalué à 6.

    Il s'agit d'un problème de logique et non de syntaxe dans ce cas.

    toto ne peut avoir qu'une valeur, s'il est égal a 0 par exemple, il ne peut pas etre égal à 23.

    Tu veux surement faire :

    if [ "$toto" -ne "0" -a "$toto" -ne "23" -a "$toto" -ne "24" ]; then
    ...
    fi

    Ce qui revient à dire Si toto différent de 0, 23 et 24
    • [^] # Une autre solution

      Posté par  . Évalué à 5.

      #!/bin/sh

      case $1 in
      0|23|24) echo "$1" ;;
      *) echo "Pas la bonne valeur" ;;
      esac

      $ sh test.sh 24
      24

      $ sh test.sh 12345
      Pas la bonne valeur

      $ sh test.sh 23
      23
    • [^] # Re: Probleme de logique

      Posté par  . Évalué à 1.

      exact, ermo c'était bien ca que je voulai!!!

      MERCI 1000X

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.