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.