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 : Sélectionner tout - Visualiser dans une fenêtre à part
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