Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1323 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  test numerique d'une variable en csh

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

test numerique d'une variable en csh

n°1301268
deff
Monde de merde
Posté le 08-02-2006 à 14:12:43  profilanswer
 

bonjour,
j'aimerai tester en csh si une variable est un nombre ou pas.
 
Avez vous une idée ?
 
merci.
 
 


---------------
-->>C'est l'histoire d'un gars qui rêve qu'il mange de la guimauve.Il se réveille et il a plus d'oreiller.<<--
mood
Publicité
Posté le 08-02-2006 à 14:12:43  profilanswer
 

n°1301304
kaloskagat​os
Posté le 08-02-2006 à 15:00:00  profilanswer
 

SUCCES=0
ECHEC=-1
 
est_alpha ()  # Teste si le *premier caractère* de la chaîne est alphabétique.
{
if [ -z "$1" ]                # Pas d'argument passé?
then
  return $ECHEC
fi
 
case "$1" in
[a-zA-Z]*) return $SUCCES;;  # Commence avec une lettre?
*        ) return $ECHEC;;
esac
}             # Comparer ceci avec la fonction "isalpha ()" en C.
 
 
est_alpha2 ()   # Teste si la *chaîne entière* est alphabétique.
{
  [ $# -eq 1 ] || return $ECHEC
 
  case $1 in
  *[!a-zA-Z]*|"" ) return $ECHEC;;
               *) return $SUCCES;;
  esac
}
 
est_numerique ()    # Teste si la *chaîne entière* est numérique.
{                   # En d'autres mots, teste si la variable est de type entier.
  [ $# -eq 1 ] || return $ECHEC
 
  case $1 in
  *[!0-9]*|"" ) return $ECHEC;;
            *) return $SUCCES;;
  esac
}
 
 
 
verif_var ()  # Interface à est_alpha ().
{
if est_alpha "$@"
then
  echo "\"$*\" commence avec un caractère alpha."
  if est_alpha2 "$@"
  then        # Aucune raison de tester si le premier caractère est non alpha.
    echo "\"$*\" contient seulement des caractères alpha."
  else
    echo "\"$*\" contient au moins un caractère non alpha."
  fi  
else
  echo "\"$*\" commence avec un caractère non alpha."
              # Aussi "non alpha" si aucun argument n'est passé.
fi
 
echo
 
}
 
verif_numerique ()  # Interface à est_numerique ().
{
if est_numerique "$@"
then
  echo "\"$*\" contient seulement des chiffres [0 - 9]."
else
  echo "\"$*\" a au moins un caractère qui n'est pas un chiffre."
fi
 
echo
 
}


 
http://abs.traduc.org/abs-3.7-fr/testbranch.html

Message cité 1 fois
Message édité par kaloskagatos le 08-02-2006 à 15:01:04

---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »
n°1301325
deff
Monde de merde
Posté le 08-02-2006 à 15:12:02  profilanswer
 

je parlais en csh
 
mais merci quand meme  :)


---------------
-->>C'est l'histoire d'un gars qui rêve qu'il mange de la guimauve.Il se réveille et il a plus d'oreiller.<<--
n°1301358
kaloskagat​os
Posté le 08-02-2006 à 15:24:02  profilanswer
 

ok pardon je connais pas bien le csh j'utilise bash


---------------
« Le hasard, c’est différent de la chance. Parce que la chance, je n'en ai jamais. »
n°1301803
deff
Monde de merde
Posté le 09-02-2006 à 09:07:11  profilanswer
 

up  :bounce:


---------------
-->>C'est l'histoire d'un gars qui rêve qu'il mange de la guimauve.Il se réveille et il a plus d'oreiller.<<--
n°1303372
Sve@r
Posté le 11-02-2006 à 08:49:17  profilanswer
 

kaloskagatos a écrit :

SUCCES=0
ECHEC=-1
 
est_alpha ()  # Teste si le *premier caractère* de la chaîne est alphabétique.
{
if [ -z "$1" ]                # Pas d'argument passé?
then
  return $ECHEC
fi
 
case "$1" in
[a-zA-Z]*) return $SUCCES;;  # Commence avec une lettre?
*        ) return $ECHEC;;
esac
}             # Comparer ceci avec la fonction "isalpha ()" en C.
 
 
est_alpha2 ()   # Teste si la *chaîne entière* est alphabétique.
{
  [ $# -eq 1 ] || return $ECHEC
 
  case $1 in
  *[!a-zA-Z]*|"" ) return $ECHEC;;
               *) return $SUCCES;;
  esac
}
 
est_numerique ()    # Teste si la *chaîne entière* est numérique.
{                   # En d'autres mots, teste si la variable est de type entier.
  [ $# -eq 1 ] || return $ECHEC
 
  case $1 in
  *[!0-9]*|"" ) return $ECHEC;;
            *) return $SUCCES;;
  esac
}
 
 
 
verif_var ()  # Interface à est_alpha ().
{
if est_alpha "$@"
then
  echo "\"$*\" commence avec un caractère alpha."
  if est_alpha2 "$@"
  then        # Aucune raison de tester si le premier caractère est non alpha.
    echo "\"$*\" contient seulement des caractères alpha."
  else
    echo "\"$*\" contient au moins un caractère non alpha."
  fi  
else
  echo "\"$*\" commence avec un caractère non alpha."
              # Aussi "non alpha" si aucun argument n'est passé.
fi
 
echo
 
}
 
verif_numerique ()  # Interface à est_numerique ().
{
if est_numerique "$@"
then
  echo "\"$*\" contient seulement des chiffres [0 - 9]."
else
  echo "\"$*\" a au moins un caractère qui n'est pas un chiffre."
fi
 
echo
 
}


 
http://abs.traduc.org/abs-3.7-fr/testbranch.html


 
Il y a plus simple. Il suffit de déléguer aux programmes adéquats ce que le shell ne sait pas faire par lui-même...

#!/bin/sh
expr $var + 0 1>/dev/null 2>&1; statut=$?
if test $statut -lt 2
then
     echo "$var" numérique
fi


 
Je pense qu'il n'y aura aucun souci pour convertir ce script en csh...


Message édité par Sve@r le 11-02-2006 à 11:14:49

---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  test numerique d'une variable en csh

 

Sujets relatifs
[VBA] Passer une variable d'un userform à un autreTest si conersion possible VBA
[PHP] vérifier le contenu d'une variablevariable qui suit après une redirection de page
xsl:variable et xsl:call-templatevariable $_POST[""]) dans traitement de formulaire
passer une variable de type array en GETcreate table avec variable!
variable dans une textboxVariable qui sort pas de l'include
Plus de sujets relatifs à : test numerique d'une variable en csh


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR