Contrôle Paramètre script
Bonjour,
Je dois modifier des scripts que j'ai faits il y a quelques temps et prendre en charge maintenant des paramètres. Pour le moment il n’y a que 2 paramètres.
Le 1er paramètre est une date au format dd/mm/aaaa et le 2nd paramètre un : oui,o, non ou n.
J'ai donc écrit les quelques lignes ci-dessous, mais je pense que l'on peut faire beaucoup plus simple. Si c'est le cas, pourriez-vous m'indiquer des pistes ....
D'avance merci
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
case $# in
"1")
if [ `echo $1 | awk -F"/" '{ if ( $1 > 0 && $1 <= 31 && $2 > 0 && $2 <= 12 && $3 > 0 && length($3) == 4 ) { print "OK" } else{ print "NOK" } }'` == "OK" ];
then
DATE_JOUR=$1;
DATE_JOUR2=`echo $1 | awk -F"/" '{print($3$2$1)}'`
else
echo "la date n est pas dans un format valide (dd/mm/yyyy)"
echo "la date du jour sera prise par déut"
DATE_JOUR=$(date '+%d/%m/%Y');
DATE_JOUR2=$(date '+%Y%m%d');
fi
#Pas de parametre pour l envoi des fichiers
#On utilise par déut la valeur NON
MAIL_AVEC_FICHIER=NON;
;;
"2")
if [ `echo $1 | awk -F"/" '{ if ( $1 > 0 && $1 <= 31 && $2 > 0 && $2 <= 12 && $3 > 0 && length($3) == 4 ) { print "OK" } else{ print "NOK" } }'` == "OK" ];
then
DATE_JOUR=$1;
DATE_JOUR2=`echo $1 | awk -F"/" '{print($3$2$1)}'`
else
echo "la date n est pas dans un format valide (dd/mm/yyyy)"
echo "la date du jour sera prise par déut"
DATE_JOUR=$(date '+%d/%m/%Y');
DATE_JOUR2=$(date '+%Y%m%d');
fi
var=`echo $2 | awk '{print tolower($0)}'`;
case "$var" in
o) MAIL_AVEC_FICHIER=OUI;
;;
oui) MAIL_AVEC_FICHIER=OUI;
;;
n) MAIL_AVEC_FICHIER=NON;
;;
non) MAIL_AVEC_FICHIER=NON;
;;
*) MAIL_AVEC_FICHIER=NON;
;;
esac
;;
*)
DATE_JOUR=$(date '+%d/%m/%Y');
DATE_JOUR2=$(date '+%Y%m%d');
MAIL_AVEC_FICHIER=NON;
;;
esac |