Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#26 Le 30/04/2012, à 04:20

TLK x TyGeRz

Re : Script formulaire

j'ai pas très bien compris ta dernière réponse

Hors ligne

#27 Le 30/04/2012, à 08:39

pingouinux

Re : Script formulaire

TLK x TyGeRz #26 a écrit :

j'ai pas très bien compris ta dernière réponse

J'ai ajouté des précisions en #25.

Hors ligne

#28 Le 02/05/2012, à 19:59

TLK x TyGeRz

Re : Script formulaire

ah oui merci cool

#!/bin/bash
shopt -s extglob
echo
echo "                                GESTION DES SALARIES"
echo

echo "1. Saisie des informations personelles d'un salarié"
echo "2. Mise à jour des informations personnelles d'un salarié"
echo "3. Consultation des informations personnelles d'un salarié"
echo "4. Consultation des informations personnelles de tous les salariés"
echo "5. Supprimer un salarié"
echo "6. Quitter l'application"
echo
echo -n "Saisir un chiffre: "
read chiffre

while ! ( [ "$chiffre" -ge 1 ] && [ "$chiffre" -le 6 ] )

       do
             echo "Saisie invalide"
             echo -n "Veuillez saisir un chiffre entre 1 et 6: "
             read chiffre
       done 2>/dev/null

case $chiffre in
    1)
echo
echo -n "nom: "
read nom

while [[ "$nom" != +([a-zA-Z]) ]]

       do     
             echo "Caractère incorrecte."
             echo -n "Retapez votre nom: "
             read nom
       done

echo
echo -n "prenom: "
read prenom

while [[ "$prenom" != +([a-zA-Z]) ]]

       do
             echo "Caractère incorrecte."
             echo -n "Retapez votre prenom: "
             read prenom
       done

echo
echo "Veuillez tapez votre civilité(M., Mme ou Melle): "
read civi

while [ "$civi" != M. ] && [ "$civi" != Mme ] && [ "$civi" != Melle ]

       do
             echo "Saisie incorrect"
             echo -n "Retapez votre civilitée(M., Mme, Melle)"
             read civi
       done

IFS=/
echo
echo -n "date de naissance (forme recommandée: jj/mm/aaaa): "
read jour mois annee

while [ -z "$jour" ] || [ -z "$mois" ] || [ -z "$annee" ]

       do
             echo "Champs incorrects ou manquants"
             echo -n "Retapez votre date de naissance sous la forme (jj/mm/aaaa): "
             read jour mois annee
       done

while ! ( [ "$mois" -ge 1 ] && [ "$mois" -le 12 ] )
       do
             echo "Saisie incorrects"
             echo -n "Retapez le mois de naissance: "
             read mois
       done 2>/dev/null

case $mois in
   01|03|05|07|08|10|12)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 31 ] )
       do
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
   ;;
   04|06|09|11)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 30 ] )
       do
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
   ;;
   02)
     if [ $(expr $annee % 4) = 0 ]
      then
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 29 ] )
       do
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
      else
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 28 ] )
       do
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
     fi
   ;;
esac

jour=$(sed 's/^.$/0&/' <<< "$jour") # Rajout du 0 au jour si nécessaire
mois=$(sed 's/^.$/0&/' <<< "$mois") # Rajout du 0 au mois si nécessaire

#
#

echo
echo "Date de naissance : $jour/$mois/$annee valide"
echo
echo -n "Situation familiale (C pour célibataire, D pour divorcé(e), M pour marié(e), P pour pacsé(e), ou A pour Arabe): "
read situation

while [ "$situation" != C ] && [ "$situation" != D ] && [ "$situation" != M ] && [ "$situation" != P ] && [ "$situation" != A ]

       do
             echo -n "Saisie incorrecte. Choisir parmis la liste proposée (C, D, M, P, A): "
             read situation
       done

echo
if [ "$situation" = A ]; then
             echo "Vous n'avez pas de numéro de sécurité sociale car vous etes de magrhébi du les arabes !"
else
echo -n "Le numéro de sécurité sociale: "
read secu

while ! grep -E "^[12][0-9]{12}$" >/dev/null <<<"$secu"
 
       do
             echo "Saisie incorrecte"
             echo -n "Retapez le numéro de sécurité sociale: "
             read secu
       done
fi

echo
if [ "$situation" = A ]; then
             echo "Adresse(pas de squate): "
             read adresse

while ! grep -E "^[0-9a-zA-Z., ]*$" >/dev/null <<<"$adresse"

       do
             echo "Caractère invalide"
             echo -n "Veuillez tapez une adresse valide: "
             read adresse
       done
else
echo -n "Adresse: "
read adresse

while ! grep -E "^[0-9a-zA-Z., ]*$" >/dev/null <<<"$adresse"

       do
             echo "Caractère invalide"
             echo -n "Veuillez tapez une adresse valide: "
             read adresse
       done
fi

echo
echo -n "Numéro de téléphone de fixe: "
read numfix

while ! grep -E "^[0][19]{1}[0-9]{8}$" >/dev/null <<<"$numfix"

       do
             echo
             echo "Numero de téléphone fixe incorrect"
             echo -n "Veuillez le retapez: "
             read numfix
       done

echo
if [ "$situation" = A ]; then
             echo -n "Numéro de téléphone portable(volé ou pas): "
             read numpor

while ! grep -E "^[0]{1}[6-7]{1}[0-9]{8}$" >/dev/null <<<"$numpor"

       do
             echo
             echo "Numero de téléphone mobile incorrect"
             echo -n "Veuillez le retapez: "
             read numpor
       done
else
echo -n "Numéro de téléphone portable: "
read numpor

while ! grep -E "^[0]{1}[6-7]{1}[0-9]{8}$" >/dev/null <<<"$numpor"

       do
             echo
             echo "Numero de téléphone mobile incorrect"
             echo -n "Veuillez le retapez: "
             read numpor
       done

fich=fichier_salaries
if [ -f $fich ]
then
              if  grep "$nom, $prenom, $jour/$mois/$annee, $situation, $secu, $adresse, $numfix, $numpor" $fich > /dev/null
              then                     
                  echo "fin du script"
                  exit 0
                         
                  else
                  echo "$nom, $prenom, $jour/$mois/$annee, $situation, $secu, $adresse, $numfix, $numpor" >> $fich
       fi
         else       
                echo "$nom, $prenom, $jour/$mois/$annee, $situation, $secu, $adresse, $numfix, $numpor" > $fich
       fi
;;
   2)
nl -ba fichier_salaries
echo
echo -n "Saisissez le numéro correspondant au salarié que vous voulez mettre à jour: "
read num1

echo
echo -n "nom: "
read nom

while [[ "$nom" != +([a-zA-Z]) ]]

       do     
             echo "Caractère incorrecte."
             echo -n "Retapez votre nom: "
             read nom
       done

echo
echo -n "prenom: "
read prenom

while [[ "$prenom" != +([a-zA-Z]) ]]

       do
             echo "Caractère incorrecte."
             echo -n "Retapez votre prenom: "
             read nom
       done

IFS=/
echo
echo -n "date de naissance (forme recommandée: jj/mm/aaaa): "
read jour mois annee

while [ -z "$jour" ] || [ -z "$mois" ] || [ -z "$annee" ]

       do
             echo "Champs incorrects ou manquants"
             echo -n "Retapez votre date de naissance sous la forme (jj/mm/aaaa): "
             read jour mois annee
       done

while ! ( [ "$mois" -ge 1 ] && [ "$mois" -le 12 ] )
       do
             echo "Saisie incorrects"
             echo -n "Retapez le mois de naissance: "
             read mois
       done 2>/dev/null

case $mois in
   1|3|5|7|8|10|12)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 31 ] )
       do
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
   ;;
   4|6|9|11)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 30 ] )
       do
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
   ;;
   2)
     if [ $(expr $annee % 4) = 0 ]
      then
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 29 ] )
       do
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
      else
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 28 ] )
       do
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
     fi
   ;;
esac

jour=$(sed 's/^.$/0&/' <<< "$jour") # Rajout du 0 au jour si nécessaire
mois=$(sed 's/^.$/0&/' <<< "$mois") # Rajout du 0 au mois si nécessaire

echo
echo "Date de naissance : $jour/$mois/$annee valide"
echo
echo -n "Situation familiale (C pour célibataire, D pour divorcé(e), M pour marié(e), P pour pacsé(e)): "
read situation

while [ "$situation" != C ] && [ "$situation" != D ] && [ "$situation" != M ] && [ "$situation" != P ]

       do
             echo -n "Saisie incorrecte. Choisir parmis la liste proposée (C, D, M, P): "
             read situation
       done

echo
echo -n "Le numéro de sécurité sociale: "
read secu

while ! grep -E "^[12][0-9]{12}$" >/dev/null <<<"$secu"
 
       do
             echo "Saisie incorrecte"
             echo -n "Retapez le numéro de sécurité sociale: "
             read secu
       done

echo
echo -n "Adresse: "
read adresse

while ! grep -E "^[0-9a-zA-Z., ]*$" >/dev/null <<<"$adresse"

       do
             echo "Caractère invalide"
             echo -n "Veuillez tapez une adresse valide: "
             read adresse
       done

echo
echo -n "Numéro de téléphone de fixe: "
read numfix

while ! grep -E "^[0][19]{1}[0-9]{8}$" >/dev/null <<<"$numfix"

       do
             echo
             echo "Numero de téléphone fixe incorrect"
             echo -n "Veuillez le retapez: "
             read numfix
       done

echo
echo -n "Numéro de téléphone portable: "
read numpor

while ! grep -E "^[0]{1}[6-7]{1}[0-9]{8}$" >/dev/null <<<"$numpor"

       do
             echo
             echo "Numero de téléphone mobile incorrect"
             echo -n "Veuillez le retapez: "
             read numpor
       done

sed -i "${num1}c$nom, $prenom, $jour/$mois/$annee, $situation, $secu, $adresse, $numfix, $numpor" fichier_salaries
;;
   3)
echo
echo -n "Saisissez le nom du salarié dont vous voulez consulter les informations: "
read name


;;
   4)
echo
cat fichier_salaries
echo
;;
   5)
nl -ba fichier_salaries
echo
echo -n "Saisissez le numéro correspondant au salarié que vous voulez supprimer: "
read num2
sed -i "${num2}d" fichier_salaries
;;
   6)
exit 0
;;
esac

exit 0

pour le 2 faut que je consulte uniquement les informations d'un salariés je pourrai les lire a partir de quoi ? par exemple n'afficher que les noms et choisir 1 nom et consulter uniquement cette ligne

Hors ligne

#29 Le 02/05/2012, à 23:43

TLK x TyGeRz

Re : Script formulaire

ou alors directement entrer un nom et afficher la ligne correspondante... je sais pas trop yikes une idée pour la syntaxe big_smile

Hors ligne

#30 Le 11/05/2012, à 09:18

TLK x TyGeRz

Re : Script formulaire

dernière compo a améliorer

 #!/bin/bash
shopt -s extglob
echo
echo "                                GESTION DES SALARIES"
echo
echo
echo "##########################################################################"
echo "### 1. Saisie des informations personelles d'un salarié                ###"
echo "### 2. Mise à jour des informations personnelles d'un salarié          ###"
echo "### 3. Consultation des informations personnelles d'un salarié         ###"
echo "### 4. Consultation des informations personnelles de tous les salariés ###"
echo "### 5. Supprimer un salarié                                            ###"
echo "### 6. Supprimer la fiche contenant les informations des salariés      ###"
echo "### 7. Quitter l'application                                           ###"
echo "##########################################################################"
echo
echo -n "Saisir un chiffre: "
read chiffre

while ! ( [ "$chiffre" -ge 1 ] && [ "$chiffre" -le 6 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez saisir un chiffre entre 1 et 6: "
             read chiffre
       done 2>/dev/null

case $chiffre in
    1)
echo
echo -n "nom: "
read nom

while [[ "$nom" != +([a-zA-Z]) ]]

       do
             echo
             echo "Caractère incorrecte."
             echo -n "Retapez votre nom: "
             read nom
       done

echo
echo -n "prenom: "
read prenom

while [[ "$prenom" != +([a-zA-Z]) ]]

       do
             echo
             echo "Caractère incorrecte."
             echo -n "Retapez votre prenom: "
             read prenom
       done

echo
echo -n "Veuillez tapez votre civilité(M., Mme ou Melle): "
read civi

while [ "$civi" != M. ] && [ "$civi" != Mme ] && [ "$civi" != Melle ]

       do
             echo
             echo "Saisie incorrect"
             echo -n "Retapez votre civilitée(M., Mme, Melle): "
             read civi
       done

if [ $civi = M. ]
then
codecivi=1
else
codecivi=2
fi

IFS=/
echo
echo -n "date de naissance (jj/mm/aaaa): "
read jour mois annee

while [ -z "$jour" ] || [ -z "$mois" ] || [ -z "$annee" ]

       do
             echo
             echo "Champs incorrects ou manquants"
             echo -n "Retapez votre date de naissance sous la forme (jj/mm/aaaa): "
             read jour mois annee
       done

while ! ( [ "$annee" -ge 1901 ] && [ "$annee" -le 1999 ] )

       do
             echo
             echo "Saisie incorrecte."
             echo -n "Retapez l'année de naissance: "
             read annee
       done 2>/dev/null

while ! ( [ "$mois" -ge 1 ] && [ "$mois" -le 12 ] )

       do
             echo
             echo "Saisie incorrects"
             echo -n "Retapez le mois de naissance: "
             read mois
       done 2>/dev/null

case $mois in
   1|3|5|7|8|10|12)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 31 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
   ;;
   4|6|9|11)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 30 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
   ;;
   2)
     if [ $(expr $annee % 4) = 0 ]
      then
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 29 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
      else
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 28 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
     fi
   ;;
esac

jour=$(sed 's/^.$/0&/' <<< "$jour") # Rajout du 0 au jour si nécessaire
mois=$(sed 's/^.$/0&/' <<< "$mois") # Rajout du 0 au mois si nécessaire
an=`expr $annee - 1900`

echo
echo "Date de naissance : $jour/$mois/$annee valide"
echo
echo -n "Situation familiale (C pour célibataire, D pour divorcé(e), M pour marié(e), P pour pacsé(e), ou A pour Arabe): "
read situation

while [ "$situation" != C ] && [ "$situation" != D ] && [ "$situation" != M ] && [ "$situation" != P ] && [ "$situation" != A ]

       do
             echo -n "Saisie incorrecte. Choisir parmis la liste proposée (C, D, M, P, A): "
             read situation
       done

echo
if [ "$situation" = A ]; then
             echo "Vous n'avez pas de numéro de sécurité sociale car vous etes de magrhébi du.... les arabes!"
fi

echo
if [ "$situation" = A ]; then
             echo -n "Adresse(numero et nom de votre rue ou de votre cave) écrire C pour caravane, G pour Garlouche: "
             read adresse
else
echo -n "Adresse(numero et nom de votre rue): "
read adresse
fi

while [ -z "$adresse" ]

       do
             echo
             echo "Champs obligatoire"
             echo -n "Veuillez ressaisir votre adresse: "
             read adresse
       done

while ! grep -E "^[0-9a-zA-Z., ]*$" >/dev/null <<<"$adresse"

       do
             echo
             echo "Caractère invalide"
             echo -n "Veuillez tapez une adresse valide: "
             read adresse
       done
echo
echo -n "Entrez votre code postal: "
read codepost

while [[ "$codepost" != +([0-9]) ]]

       do
             echo
             echo "Code postal incorrect"
             echo -n "Veuillez retapez votre code postal: "
             read codepost
       done

case "$codepost" in
0[1-9][0-9][0-9][0-9])
;;
[2-8][0-9][0-9][0-9][0-9])
;;
7[0-4][0-9][0-9][0-9])
;;
750[01-20])
;;
7[6-9][0-9][0-9][0-9])
;;
8[0-9][0-9][0-9][0-9])
;;
9[0-5][0-9][0-9][0-9])
;;
*)
;;
esac

echo
echo -n "Veuillez entrer votre ville: "
read ville

while [[ "$ville" != +([a-zA-Z]) ]]

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Retapez votre ville: "
             read ville
       done

echo
echo "Votre adresse est: $adresse $codepost $ville"

echo
echo -n "Numéro de téléphone de fixe: "
read numfix

while ! grep -E "^[0][19]{1}[0-9]{8}$" >/dev/null <<<"$numfix"

       do
             echo
             echo "Numero de téléphone fixe incorrect"
             echo -n "Veuillez le retapez: "
             read numfix
       done

echo
if [ "$situation" = A ]; then
             echo -n "Numéro de téléphone portable(volé aussi): "
             read numpor

while ! grep -E "^[0]{1}[6-7]{1}[0-9]{8}$" >/dev/null <<<"$numpor"

       do
             echo
             echo "Numero de téléphone mobile incorrect"
             echo -n "Veuillez le retapez: "
             read numpor
       done
else
echo -n "Numéro de téléphone portable: "
read numpor

while ! grep -E "^[0]{1}[6-7]{1}[0-9]{8}$" >/dev/null <<<"$numpor"

       do
             echo
             echo "Numero de téléphone mobile incorrect"
             echo -n "Veuillez le retapez: "
             read numpor
       done
fi

#automatisation du numéro de la sécurité sociale

echo
echo "Tapez les 3 dernier chiffres de votre numéro de sécurité sociale"
echo -n "Ils correspondent aux numéro d'ordres de l'acte de naissance: "
read number

while ! grep -E "^[001-999]{3}$" >/dev/null <<<"$number"

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read number
       done 2>/dev/null

echo
echo -n "Tapez la clé de sécurité à 2 chiffres: "
read cle 

while ! ( [ "$cle" -ge 01 ] && [ "$cle" -le 97 ] )

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read cle
       done 2>/dev/null

css=$codecivi-$an-$mois-$codepost-$number-$cle
echo
echo "Votre numéro de sécurité sociale est: $codecivi-$an-$mois-$codepost-$number-$cle"

fich=fichier_salaries
if [ -f $fich ]
then
              if  grep "$nom, $prenom, $civi, $jour/$mois/$annee, $situation, $adresse, $numfix, $numpor, $css" $fich > /dev/null
              then                     
                  echo "fin du script"
                  exit 0

                  else
                  echo "$nom, $prenom, $civi, $jour/$mois/$annee, $situation, $adresse, $numfix, $numpor, $css" >> $fich
       fi
         else       
                echo "$nom, $prenom, $civi, $jour/$mois/$annee, $situation, $adresse, $numfix, $numpor, $css" > $fich
       fi
;;
   2)
nl -ba fichier_salaries
echo
echo -n "Saisissez le numéro correspondant au salarié que vous voulez mettre à jour: "
read num1

echo
echo -n "nom: "
read nom

while [[ "$nom" != +([a-zA-Z]) ]]

       do     
             echo "Caractère incorrecte."
             echo -n "Retapez votre nom: "
             read nom
       done

echo
echo -n "prenom: "
read prenom

while [[ "$prenom" != +([a-zA-Z]) ]]

       do
             echo "Caractère incorrecte."
             echo -n "Retapez votre prenom: "
             read prenom
       done

echo
echo -n "Veuillez tapez votre civilité(M., Mme ou Melle): "
read civi

while [ "$civi" != M. ] && [ "$civi" != Mme ] && [ "$civi" != Melle ]

       do
             echo "Saisie incorrect"
             echo -n "Retapez votre civilitée(M., Mme, Melle): "
             read civi
       done

IFS=/
echo
echo -n "date de naissance (forme recommandée: jj/mm/aaaa): "
read jour mois annee

while [ -z "$jour" ] || [ -z "$mois" ] || [ -z "$annee" ]

       do
             echo "Champs incorrects ou manquants"
             echo -n "Retapez votre date de naissance sous la forme (jj/mm/aaaa): "
             read jour mois annee
       done

while ! ( [ "$mois" -ge 1 ] && [ "$mois" -le 12 ] )
       do
             echo "Saisie incorrects"
             echo -n "Retapez le mois de naissance: "
             read mois
       done 2>/dev/null

case $mois in
   01|03|05|07|08|10|12)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 31 ] )
       do
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
   ;;
   04|06|09|11)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 30 ] )
       do
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
   ;;
   02)
     if [ $(expr $annee % 4) = 0 ]
      then
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 29 ] )
       do
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
      else
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 28 ] )
       do
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
     fi
   ;;
esac

jour=$(sed 's/^.$/0&/' <<< "$jour") # Rajout du 0 au jour si nécessaire
mois=$(sed 's/^.$/0&/' <<< "$mois") # Rajout du 0 au mois si nécessaire

#
#

echo
echo "Date de naissance : $jour/$mois/$annee valide"
echo
echo -n "Situation familiale (C pour célibataire, D pour divorcé(e), M pour marié(e), P pour pacsé(e), ou A pour Arabe): "
read situation

while [ "$situation" != C ] && [ "$situation" != D ] && [ "$situation" != M ] && [ "$situation" != P ] && [ "$situation" != A ]

       do
             echo -n "Saisie incorrecte. Choisir parmis la liste proposée (C, D, M, P, A): "
             read situation
       done

echo
if [ "$situation" = A ]; then
             echo "Vous n'avez pas de numéro de sécurité sociale car vous etes de magrhébi du.... les arabes!"
else
echo -n "Le numéro de sécurité sociale: "
read secu

while ! grep -E "^[12][0-9]{12}$" >/dev/null <<<"$secu"
 
       do
             echo "Saisie incorrecte"
             echo -n "Retapez le numéro de sécurité sociale: "
             read secu
       done
fi

echo
if [ "$situation" = A ]; then
             echo -n "Adresse(pas de squate): "
             read adresse

while ! grep -E "^[0-9a-zA-Z., ]*$" >/dev/null <<<"$adresse"

       do
             echo "Caractère invalide"
             echo -n "Veuillez tapez une adresse valide: "
             read adresse
       done
else
echo -n "Adresse: "
read adresse

while ! grep -E "^[0-9a-zA-Z., ]*$" >/dev/null <<<"$adresse"

       do
             echo "Caractère invalide"
             echo -n "Veuillez tapez une adresse valide: "
             read adresse
       done
fi

echo
echo -n "Numéro de téléphone de fixe: "
read numfix

while ! grep -E "^[0][19]{1}[0-9]{8}$" >/dev/null <<<"$numfix"

       do
             echo
             echo "Numero de téléphone fixe incorrect"
             echo -n "Veuillez le retapez: "
             read numfix
       done

echo
if [ "$situation" = A ]; then
             echo -n "Numéro de téléphone portable(volé aussi): "
             read numpor

while ! grep -E "^[0]{1}[6-7]{1}[0-9]{8}$" >/dev/null <<<"$numpor"

       do
             echo
             echo "Numero de téléphone mobile incorrect"
             echo -n "Veuillez le retapez: "
             read numpor
       done
else
echo -n "Numéro de téléphone portable: "
read numpor

while ! grep -E "^[0]{1}[6-7]{1}[0-9]{8}$" >/dev/null <<<"$numpor"

       do
             echo
             echo "Numero de téléphone mobile incorrect"
             echo -n "Veuillez le retapez: "
             read numpor
       done
fi

sed -i "${num1}c$nom, $prenom, $jour/$mois/$annee, $situation, $secu, $adresse, $numfix, $numpor" fichier_salaries
;;
   3)
echo
echo -n "Saisissez le nom du salarié dont vous voulez consulter les informations: "
read name
;;
   4)
if [ -e "fichier_salaries" ]
then
echo
cat fichier_salaries
echo
else
echo
echo "Action impossible car le fichier n'éxiste pas"
echo
fi
;;
   5)
nl -ba fichier_salaries
echo
echo -n "Saisissez le numéro correspondant au salarié que vous voulez supprimer: "
read num2
sed -i "${num2}d" fichier_salaries
;;
   6)
rm fichier_salaries
;;
   7)
exit 0
;;
esac

exit 0

Hors ligne

#31 Le 11/05/2012, à 09:18

TLK x TyGeRz

Re : Script formulaire

oublié la partie arabe c'est un pote qui a fais sa pour moi pasque je suis tunisien xD no racisme ^^'

Hors ligne

#32 Le 16/05/2012, à 11:06

TLK x TyGeRz

Re : Script formulaire

bon j'ai modifier le script depuis #30 sa vaux mieux cool

#!/bin/bash
shopt -s extglob
echo
echo "                                GESTION DES SALARIES"
echo
echo
echo "##########################################################################"
echo "### 1. Saisie des informations personelles d'un salarié                ###"
echo "### 2. Mise à jour des informations personnelles d'un salarié          ###"
echo "### 3. Consultation des informations personnelles d'un salarié         ###"
echo "### 4. Consultation des informations personnelles de tous les salariés ###"
echo "### 5. Supprimer un salarié                                            ###"
echo "### 6. Supprimer la fiche contenant les informations des salariés      ###"
echo "### 7. Quitter l'application                                           ###"
echo "##########################################################################"
echo
echo -n "Saisir un chiffre: "
read chiffre

while ! ( [ "$chiffre" -ge 1 ] && [ "$chiffre" -le 6 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez saisir un chiffre entre 1 et 6: "
             read chiffre
       done 2>/dev/null

case $chiffre in
    1)
echo
echo -n "nom: "
read nom

while [[ "$nom" != +([a-zA-Z]) ]]

       do
             echo
             echo "Caractère incorrecte."
             echo -n "Retapez votre nom: "
             read nom
       done

echo
echo -n "prenom: "
read prenom

while [[ "$prenom" != +([a-zA-Z]) ]]

       do
             echo
             echo "Caractère incorrecte."
             echo -n "Retapez votre prenom: "
             read prenom
       done

echo
echo -n "Veuillez tapez votre civilité(M., Mme ou Melle): "
read civi

while [ "$civi" != M. ] && [ "$civi" != Mme ] && [ "$civi" != Melle ]

       do
             echo
             echo "Saisie incorrect"
             echo -n "Retapez votre civilitée(M., Mme, Melle): "
             read civi
       done

if [ $civi = M. ]
then
codecivi=1
else
codecivi=2
fi

IFS=/
echo
echo -n "date de naissance (jj/mm/aaaa): "
read jour mois annee

while [ -z "$jour" ] || [ -z "$mois" ] || [ -z "$annee" ]

       do
             echo
             echo "Champs incorrects ou manquants"
             echo -n "Retapez votre date de naissance sous la forme (jj/mm/aaaa): "
             read jour mois annee
       done

while ! ( [ "$annee" -ge 1901 ] && [ "$annee" -le 1999 ] )

       do
             echo
             echo "Saisie incorrecte."
             echo -n "Retapez l'année de naissance: "
             read annee
       done 2>/dev/null

while ! ( [ "$mois" -ge 1 ] && [ "$mois" -le 12 ] )

       do
             echo
             echo "Saisie incorrects"
             echo -n "Retapez le mois de naissance: "
             read mois
       done 2>/dev/null

case $mois in
   1|3|5|7|8|10|12)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 31 ] )

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read number
       done 2>/dev/null
;;
   4|6|9|11)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 30 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
   ;;
   2)
     if [ $(expr $annee % 4) = 0 ]
     then
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 29 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
     else
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 28 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
     fi
   ;;
esac

jour=$(sed 's/^.$/0&/' <<< "$jour") # Rajout du 0 au jour si nécessaire
mois=$(sed 's/^.$/0&/' <<< "$mois") # Rajout du 0 au mois si nécessaire
an=`expr $annee - 1900`

echo
echo "Date de naissance : $jour/$mois/$annee valide"
echo
echo -n "Situation familiale (C pour célibataire, D pour divorcé(e), M pour marié(e), P pour pacsé(e): "
read situation

while [ "$situation" != C ] && [ "$situation" != D ] && [ "$situation" != M ] && [ "$situation" != P ]

       do
             echo -n "Saisie incorrecte. Choisir parmis la liste proposée (C, D, M, P): "
             read situation
       done

echo -n "Adresse(numero et nom de votre rue): "
read adresse

while [ -z "$adresse" ]

       do
             echo
             echo "Champs obligatoire"
             echo -n "Veuillez ressaisir votre adresse: "
             read adresse
       done

while ! grep -E "^[0-9a-zA-Z., ]*$" >/dev/null <<<"$adresse"

       do
             echo
             echo "Caractère invalide"
             echo -n "Veuillez tapez une adresse valide: "
             read adresse
       done
echo
echo -n "Entrez votre code postal: "
read codepost

while [[ "$codepost" != +([0-9]) ]]

       do
             echo
             echo "Code postal incorrect"
             echo -n "Veuillez retapez votre code postal: "
             read codepost
       done

case "$codepost" in
0[1-9][0-9][0-9][0-9])
;;
[2-8][0-9][0-9][0-9][0-9])
;;
7[0-4][0-9][0-9][0-9])
;;
750[01-20])
;;
7[6-9][0-9][0-9][0-9])
;;
8[0-9][0-9][0-9][0-9])
;;
9[0-5][0-9][0-9][0-9])
;;
*)
;;
esac

echo
echo -n "Veuillez entrer votre ville: "
read ville

while [[ "$ville" != +([a-zA-Z]) ]]

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Retapez votre ville: "
             read ville
       done

lieu=$adresse $codepost $ville

echo
echo "Votre adresse est: $lieu"

echo
echo -n "Numéro de téléphone de fixe: "
read numfix

while ! grep -E "^[0][19]{1}[0-9]{8}$" >/dev/null <<<"$numfix"

       do
             echo
             echo "Numero de téléphone fixe incorrect"
             echo -n "Veuillez le retapez: "
             read numfix
       done

echo -n "Numéro de téléphone portable: "
read numpor

while ! grep -E "^[0]{1}[6-7]{1}[0-9]{8}$" >/dev/null <<<"$numpor"

       do
             echo
             echo "Numero de téléphone mobile incorrect"
             echo -n "Veuillez le retapez: "
             read numpor
       done

#automatisation du numéro de la sécurité sociale

echo
echo "Tapez les 3 dernier chiffres de votre numéro de sécurité sociale"
echo -n "Ils correspondent aux numéro d'ordres de l'acte de naissance: "
read number

while ! grep -E "^[001-999]{3}$" >/dev/null <<<"$number"

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read number
       done 2>/dev/null

echo
echo -n "Tapez la clé de sécurité à 2 chiffres: "
read cle 

while ! grep -E "^[01-97]{2}$" >/dev/null <<<"$cle"

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read cle
       done 2>/dev/null

nss=$codecivi-$an-$mois-$codepost-$number-$cle
echo
echo "Votre numéro de sécurité sociale est: $nss"

fich=fichier_salaries
if [ -f $fich ]
then
              if  grep "$nom, $prenom, $civi, $jour/$mois/$annee, $situation, $lieu, $numfix, $numpor, $nss" $fich > /dev/null
              then                     
                  echo "fin du script"
                  exit 0

                  else
                  echo "$nom, $prenom, $civi, $jour/$mois/$annee, $situation, $lieu, $numfix, $numpor, $nss" >> $fich
       fi
         else       
                echo "$nom, $prenom, $civi, $jour/$mois/$annee, $situation, $lieu, $numfix, $numpor, $nss" > $fich
       fi
;;
   2)
nl -ba fichier_salaries
echo
echo -n "Saisissez le numéro correspondant au salarié que vous voulez mettre à jour: "
read num1

echo
echo -n "nom: "
read nom

while [[ "$nom" != +([a-zA-Z]) ]]

       do
             echo
             echo "Caractère incorrecte."
             echo -n "Retapez votre nom: "
             read nom
       done

echo
echo -n "prenom: "
read prenom

while [[ "$prenom" != +([a-zA-Z]) ]]

       do
             echo
             echo "Caractère incorrecte."
             echo -n "Retapez votre prenom: "
             read prenom
       done

echo
echo -n "Veuillez tapez votre civilité(M., Mme ou Melle): "
read civi

while [ "$civi" != M. ] && [ "$civi" != Mme ] && [ "$civi" != Melle ]

       do
             echo
             echo "Saisie incorrect"
             echo -n "Retapez votre civilitée(M., Mme, Melle): "
             read civi
       done

if [ $civi = M. ]
then
codecivi=1
else
codecivi=2
fi

IFS=/
echo
echo -n "date de naissance (jj/mm/aaaa): "
read jour mois annee

while [ -z "$jour" ] || [ -z "$mois" ] || [ -z "$annee" ]

       do
             echo
             echo "Champs incorrects ou manquants"
             echo -n "Retapez votre date de naissance sous la forme (jj/mm/aaaa): "
             read jour mois annee
       done

while ! ( [ "$annee" -ge 1901 ] && [ "$annee" -le 1999 ] )

       do
             echo
             echo "Saisie incorrecte."
             echo -n "Retapez l'année de naissance: "
             read annee
       done 2>/dev/null

while ! ( [ "$mois" -ge 1 ] && [ "$mois" -le 12 ] )

       do
             echo
             echo "Saisie incorrects"
             echo -n "Retapez le mois de naissance: "
             read mois
       done 2>/dev/null

case $mois in
   1|3|5|7|8|10|12)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 31 ] )

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read number
       done 2>/dev/null
;;
   4|6|9|11)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 30 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
   ;;
   2)
     if [ $(expr $annee % 4) = 0 ]
     then
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 29 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
     else
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 28 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
     fi
   ;;
esac

jour=$(sed 's/^.$/0&/' <<< "$jour") # Rajout du 0 au jour si nécessaire
mois=$(sed 's/^.$/0&/' <<< "$mois") # Rajout du 0 au mois si nécessaire
an=`expr $annee - 1900`

echo
echo "Date de naissance : $jour/$mois/$annee valide"
echo
echo -n "Situation familiale (C pour célibataire, D pour divorcé(e), M pour marié(e), P pour pacsé(e): "
read situation

while [ "$situation" != C ] && [ "$situation" != D ] && [ "$situation" != M ] && [ "$situation" != P ]

       do
             echo -n "Saisie incorrecte. Choisir parmis la liste proposée (C, D, M, P): "
             read situation
       done

echo -n "Adresse(numero et nom de votre rue): "
read adresse

while [ -z "$adresse" ]

       do
             echo
             echo "Champs obligatoire"
             echo -n "Veuillez ressaisir votre adresse: "
             read adresse
       done

while ! grep -E "^[0-9a-zA-Z., ]*$" >/dev/null <<<"$adresse"

       do
             echo
             echo "Caractère invalide"
             echo -n "Veuillez tapez une adresse valide: "
             read adresse
       done
echo
echo -n "Entrez votre code postal: "
read codepost

while [[ "$codepost" != +([0-9]) ]]

       do
             echo
             echo "Code postal incorrect"
             echo -n "Veuillez retapez votre code postal: "
             read codepost
       done

case "$codepost" in
0[1-9][0-9][0-9][0-9])
;;
[2-8][0-9][0-9][0-9][0-9])
;;
7[0-4][0-9][0-9][0-9])
;;
750[01-20])
;;
7[6-9][0-9][0-9][0-9])
;;
8[0-9][0-9][0-9][0-9])
;;
9[0-5][0-9][0-9][0-9])
;;
*)
;;
esac

echo
echo -n "Veuillez entrer votre ville: "
read ville

while [[ "$ville" != +([a-zA-Z]) ]]

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Retapez votre ville: "
             read ville
       done

lieu=$adresse $codepost $ville

echo
echo "Votre adresse est: $lieu"
echo
echo -n "Numéro de téléphone de fixe: "
read numfix

while ! grep -E "^[0][19]{1}[0-9]{8}$" >/dev/null <<<"$numfix"

       do
             echo
             echo "Numero de téléphone fixe incorrect"
             echo -n "Veuillez le retapez: "
             read numfix
       done

echo -n "Numéro de téléphone portable: "
read numpor

while ! grep -E "^[0]{1}[6-7]{1}[0-9]{8}$" >/dev/null <<<"$numpor"

       do
             echo
             echo "Numero de téléphone mobile incorrect"
             echo -n "Veuillez le retapez: "
             read numpor
       done

#automatisation du numéro de la sécurité sociale

echo
echo "Tapez les 3 dernier chiffres de votre numéro de sécurité sociale"
echo -n "Ils correspondent aux numéro d'ordres de l'acte de naissance: "
read number

while ! grep -E "^[001-999]{3}$" >/dev/null <<<"$number"

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read number
       done 2>/dev/null

echo
echo -n "Tapez la clé de sécurité à 2 chiffres: "
read cle 

while ! grep -E "^[01-97]{2}$" >/dev/null <<<"$cle"

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read cle
       done 2>/dev/null

nss=$codecivi-$an-$mois-$codepost-$number-$cle
echo
echo "Votre numéro de sécurité sociale est: $nss"

sed -i "${num1}c$nom, $prenom, $jour/$mois/$annee, $situation, $secu, $adresse, $numfix, $numpor" fichier_salaries
;;
   3)
echo
echo -n "Saisissez le nom du salarié dont vous voulez consulter les informations: "
read name
;;
   4)
if [ -e "fichier_salaries" ]
then
echo
cat fichier_salaries
echo
else
echo
echo "Action impossible car le fichier n'éxiste pas"
echo
fi
;;
   5)
nl -ba fichier_salaries
echo
echo -n "Saisissez le numéro correspondant au salarié que vous voulez supprimer: "
read num2
sed -i "${num2}d" fichier_salaries
;;
   6)
rm fichier_salaries
;;
   7)
exit 0
;;
esac

exit 0

une idée pour le 3 ?? je ne trouve rien...

Hors ligne

#33 Le 21/05/2012, à 09:03

TLK x TyGeRz

Re : Script formulaire

par exemple je fais une recheche par nom, quand on tape 3 il demande de rentrer le nom du salarié dont on veut les informations

Hors ligne

#34 Le 23/05/2012, à 10:35

TLK x TyGeRz

Re : Script formulaire

#!/bin/bash
shopt -s extglob

while true
do

# Menu

echo '
                           GESTION DES SALARIES


##########################################################################
### 1. Saisie des informations personelles d un salarié                ###
### 2. Mise à jour des informations personnelles d un salarié          ###
### 3. Consultation des informations personnelles d un salarié         ###
### 4. Consultation des informations personnelles de tous les salariés ###
### 5. Supprimer un salarié                                            ###
### 6. Supprimer la fiche contenant les informations des salariés      ###
### 7. Quitter l application                                           ###
##########################################################################'

echo
echo -n "Saisir un chiffre: "
read chiffre

while ! ( [ "$chiffre" -ge 1 ] && [ "$chiffre" -le 7 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez saisir un chiffre entre 1 et 7: "
             read chiffre
       done 2>/dev/null

case $chiffre in
    1)
echo
echo -n "nom: "
read nom

while [[ "$nom" != +([a-zA-Z]) ]]

       do
             echo
             echo "Caractère incorrecte."
             echo -n "Retapez votre nom: "
             read nom
       done

echo
echo -n "prenom: "
read prenom

while [[ "$prenom" != +([a-zA-Z]) ]]

       do
             echo
             echo "Caractère incorrecte."
             echo -n "Retapez votre prenom: "
             read prenom
       done

echo
echo -n "Veuillez tapez votre civilité(M., Mme, Melle ou Trans,): "
read civi

while [ "$civi" != M. ] && [ "$civi" != Mme ] && [ "$civi" != Melle ] && [ "$civi" != Trans ]

       do
             echo
             echo "Saisie incorrect"
             echo -n "Retapez votre civilitée(M., Mme, Melle ou Trans): "
             read civi
       done

if [ $civi = M. ]
then
codecivi=1
fi
if [ $civi = Mme. || Melle ]
then
codecivi=2
fi
if [ $civi = Trans ]
then
codecivi=3
fi

IFS=/
echo
echo -n "date de naissance (jj/mm/aaaa): "
read jour mois annee

while [ -z "$jour" ] || [ -z "$mois" ] || [ -z "$annee" ]

       do
             echo
             echo "Champs incorrects ou manquants"
             echo -n "Retapez votre date de naissance sous la forme (jj/mm/aaaa): "
             read jour mois annee
       done

while ! ( [ "$annee" -ge 1901 ] && [ "$annee" -le 1999 ] )

       do
             echo
             echo "Saisie incorrecte."
             echo -n "Retapez l'année de naissance: "
             read annee
       done 2>/dev/null

while ! ( [ "$mois" -ge 1 ] && [ "$mois" -le 12 ] )

       do
             echo
             echo "Saisie incorrects"
             echo -n "Retapez le mois de naissance: "
             read mois
       done 2>/dev/null

case $mois in
   1|3|5|7|8|10|12)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 31 ] )

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read number
       done 2>/dev/null
;;
   4|6|9|11)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 30 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
   ;;
   2)
     if [ $(expr $annee % 4) = 0 ]
     then
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 29 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
     else
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 28 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
     fi
   ;;
esac

jour=$(sed 's/^.$/0&/' <<< "$jour") # Rajout du 0 au jour si nécessaire
mois=$(sed 's/^.$/0&/' <<< "$mois") # Rajout du 0 au mois si nécessaire
an=`expr $annee - 1900`

echo
echo "Date de naissance : $jour/$mois/$annee valide"
echo
echo -n "Situation familiale (C pour célibataire, D pour divorcé(e), M pour marié(e), P pour pacsé(e): "
read situation

while [ "$situation" != C ] && [ "$situation" != D ] && [ "$situation" != M ] && [ "$situation" != P ]

       do
             echo -n "Saisie incorrecte. Choisir parmis la liste proposée (C, D, M, P): "
             read situation
       done

echo -n "Adresse(numero et nom de votre rue): "
read adresse

while [ -z "$adresse" ]

       do
             echo
             echo "Champs obligatoire"
             echo -n "Veuillez ressaisir votre adresse: "
             read adresse
       done

while ! grep -E "^[0-9a-zA-Z., ]*$" >/dev/null <<<"$adresse"

       do
             echo
             echo "Caractère invalide"
             echo -n "Veuillez tapez une adresse valide: "
             read adresse
       done
echo
echo -n "Entrez votre code postal: "
read codepost

while [[ "$codepost" != +([0-9]) ]]

       do
             echo
             echo "Code postal incorrect"
             echo -n "Veuillez retapez votre code postal: "
             read codepost
       done

case "$codepost" in
0[1-9][0-9][0-9][0-9])
;;
[2-8][0-9][0-9][0-9][0-9])
;;
7[0-4][0-9][0-9][0-9])
;;
750[01-20])
;;
7[6-9][0-9][0-9][0-9])
;;
8[0-9][0-9][0-9][0-9])
;;
9[0-5][0-9][0-9][0-9])
;;
*)
;;
esac

echo
echo -n "Veuillez entrer votre ville: "
read ville

while [[ "$ville" != +([a-zA-Z]) ]]

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Retapez votre ville: "
             read ville
       done

echo
echo "Votre adresse est: $adresse $codepost $ville"
echo
echo -n "Numéro de téléphone de fixe: "
read numfix

while ! grep -E "^[0][19]{1}[0-9]{8}$" >/dev/null <<<"$numfix"

       do
             echo
             echo "Numero de téléphone fixe incorrect"
             echo -n "Veuillez le retapez: "
             read numfix
       done

echo -n "Numéro de téléphone portable: "
read numpor

while ! grep -E "^[0]{1}[6-7]{1}[0-9]{8}$" >/dev/null <<<"$numpor"

       do
             echo
             echo "Numero de téléphone mobile incorrect"
             echo -n "Veuillez le retapez: "
             read numpor
       done

#automatisation du numéro de la sécurité sociale

echo
echo "Tapez les 3 dernier chiffres de votre numéro de sécurité sociale"
echo -n "Ils correspondent aux numéro d'ordres de l'acte de naissance: "
read number

while ! grep -E "^[001-999]{3}$" >/dev/null <<<"$number"

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read number
       done 2>/dev/null

echo
echo -n "Tapez la clé de sécurité à 2 chiffres: "
read cle 

while ! grep -E "^[01-97]{2}$" >/dev/null <<<"$cle"

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read cle
       done 2>/dev/null

nss=$codecivi-$an-$mois-$codepost-$number-$cle
echo
echo "Votre numéro de sécurité sociale est: $nss"

fich=fichier_salaries
if [ -f $fich ]
then
              if  grep "$nom, $prenom, $civi, $jour/$mois/$annee, $situation, $adresse $codepost $ville, $numfix, $numpor, $nss" $fich > /dev/null
              then                     
                  echo "fin du script"
                  exit 0

                  else
                  echo "$nom, $prenom, $civi, $jour/$mois/$annee, $situation, $adresse $codepost $ville, $numfix, $numpor, $nss" >> $fich
       fi
         else       
                echo "$nom, $prenom, $civi, $jour/$mois/$annee, $situation, $adresse $codepost $ville, $numfix, $numpor, $nss" > $fich
       fi
;;
   2)
nl -ba fichier_salaries
echo
echo -n "Saisissez le numéro correspondant au salarié que vous voulez mettre à jour: "
read num1

echo
echo -n "nom: "
read nom

while [[ "$nom" != +([a-zA-Z]) ]]

       do
             echo
             echo "Caractère incorrecte."
             echo -n "Retapez votre nom: "
             read nom
       done

echo
echo -n "prenom: "
read prenom

while [[ "$prenom" != +([a-zA-Z]) ]]

       do
             echo
             echo "Caractère incorrecte."
             echo -n "Retapez votre prenom: "
             read prenom
       done

echo
echo -n "Veuillez tapez votre civilité(M., Mme ou Melle): "
read civi

while [ "$civi" != M. ] && [ "$civi" != Mme ] && [ "$civi" != Melle ]

       do
             echo
             echo "Saisie incorrect"
             echo -n "Retapez votre civilitée(M., Mme, Melle): "
             read civi
       done

if [ $civi = M. ]
then
codecivi=1
else
codecivi=2
fi

IFS=/
echo
echo -n "date de naissance (jj/mm/aaaa): "
read jour mois annee

while [ -z "$jour" ] || [ -z "$mois" ] || [ -z "$annee" ]

       do
             echo
             echo "Champs incorrects ou manquants"
             echo -n "Retapez votre date de naissance sous la forme (jj/mm/aaaa): "
             read jour mois annee
       done

while ! ( [ "$annee" -ge 1901 ] && [ "$annee" -le 1999 ] )

       do
             echo
             echo "Saisie incorrecte."
             echo -n "Retapez l'année de naissance: "
             read annee
       done 2>/dev/null

while ! ( [ "$mois" -ge 1 ] && [ "$mois" -le 12 ] )

       do
             echo
             echo "Saisie incorrects"
             echo -n "Retapez le mois de naissance: "
             read mois
       done 2>/dev/null

case $mois in
   1|3|5|7|8|10|12)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 31 ] )

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read number
       done 2>/dev/null
;;
   4|6|9|11)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 30 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
   ;;
   2)
     if [ $(expr $annee % 4) = 0 ]
     then
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 29 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
     else
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 28 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
     fi
   ;;
esac

jour=$(sed 's/^.$/0&/' <<< "$jour") # Rajout du 0 au jour si nécessaire
mois=$(sed 's/^.$/0&/' <<< "$mois") # Rajout du 0 au mois si nécessaire
an=`expr $annee - 1900`

echo
echo "Date de naissance : $jour/$mois/$annee valide"
echo
echo -n "Situation familiale (C pour célibataire, D pour divorcé(e), M pour marié(e), P pour pacsé(e): "
read situation

while [ "$situation" != C ] && [ "$situation" != D ] && [ "$situation" != M ] && [ "$situation" != P ]

       do
             echo -n "Saisie incorrecte. Choisir parmis la liste proposée (C, D, M, P): "
             read situation
       done

echo -n "Adresse(numero et nom de votre rue): "
read adresse

while [ -z "$adresse" ]

       do
             echo
             echo "Champs obligatoire"
             echo -n "Veuillez ressaisir votre adresse: "
             read adresse
       done

while ! grep -E "^[0-9a-zA-Z., ]*$" >/dev/null <<<"$adresse"

       do
             echo
             echo "Caractère invalide"
             echo -n "Veuillez tapez une adresse valide: "
             read adresse
       done
echo
echo -n "Entrez votre code postal: "
read codepost

while [[ "$codepost" != +([0-9]) ]]

       do
             echo
             echo "Code postal incorrect"
             echo -n "Veuillez retapez votre code postal: "
             read codepost
       done

case "$codepost" in
0[1-9][0-9][0-9][0-9])
;;
[2-8][0-9][0-9][0-9][0-9])
;;
7[0-4][0-9][0-9][0-9])
;;
750[01-20])
;;
7[6-9][0-9][0-9][0-9])
;;
8[0-9][0-9][0-9][0-9])
;;
9[0-5][0-9][0-9][0-9])
;;
*)
;;
esac

echo
echo -n "Veuillez entrer votre ville: "
read ville

while [[ "$ville" != +([a-zA-Z]) ]]

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Retapez votre ville: "
             read ville
       done

echo
echo "Votre adresse est: $adresse $codepost $ville"
echo
echo -n "Numéro de téléphone de fixe: "
read numfix

while ! grep -E "^[0][19]{1}[0-9]{8}$" >/dev/null <<<"$numfix"

       do
             echo
             echo "Numero de téléphone fixe incorrect"
             echo -n "Veuillez le retapez: "
             read numfix
       done

echo -n "Numéro de téléphone portable: "
read numpor

while ! grep -E "^[0]{1}[6-7]{1}[0-9]{8}$" >/dev/null <<<"$numpor"

       do
             echo
             echo "Numero de téléphone mobile incorrect"
             echo -n "Veuillez le retapez: "
             read numpor
       done

#automatisation du numéro de la sécurité sociale

echo
echo "Tapez les 3 dernier chiffres de votre numéro de sécurité sociale"
echo -n "Ils correspondent aux numéro d'ordres de l'acte de naissance: "
read number

while ! grep -E "^[001-999]{3}$" >/dev/null <<<"$number"

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read number
       done 2>/dev/null

echo
echo -n "Tapez la clé de sécurité à 2 chiffres: "
read cle 

while ! grep -E "^[01-97]{2}$" >/dev/null <<<"$cle"

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read cle
       done 2>/dev/null

nss=$codecivi-$an-$mois-$codepost-$number-$cle

sed -i "${num1}c$nom, $prenom, $civi, $jour/$mois/$annee, $situation, $adresse $codepost $ville, $numfix, $numpor, $nss" fichier_salaries
;;
   3)
echo
echo -n "Saisissez une information conçernant le salarié(nom ou prénom): "
read saisie

while [[ "$saisie" != +([a-zA-Z]) ]]

       do
             echo "Saisie incorrecte"
             echo -n "Ressaisissez le nom ou le prénom du salarié: "
             read saisie
       done

if [ -e "fichier_salaries" ];then
     if [ -z "$saisie" ];then
             echo
             echo "Aucun caractère entré"
     else
             echo
             echo "Voiçi le(s) salarié(s) correspondant à la recherche: "
             echo
retour= cat fichier_salaries |grep $saisie
     fi
echo
echo "Aucun salarié ne correspont à la recherche"
else
echo
echo "Aucune fiche n'a été trouvée"
fi
;;
   4)
if [ -e "fichier_salaries" ]
then
echo
cat fichier_salaries
echo
else
echo
echo "Action impossible car le fichier n'éxiste pas"
echo
fi
;;
   5)
nl -ba fichier_salaries
echo
echo -n "Saisissez le numéro correspondant au salarié que vous voulez supprimer: "
read num2
sed -i "${num2}d" fichier_salaries
;;
   6)
echo
echo "Voulez-vous vraiment supprimer l'intégralité de la fiche salarié ?"
echo -n "[Y/N]: Y pour oui, N pour non || [O/n]: O pour oui, N pour non: "
read rep

while [ "$rep" != Y ] && [ "$rep" != y ] && [ "$rep" != O ] && [ "$rep" != o ] && [ "$rep" != N ] && [ "$rep" != n ]

       do
             echo "Saisie incorrecte"
             echo -n "Veuillez retapez votre réponse([Y/N], [O/n]): "
             read rep
       done

if [ "$rep" = Y ] && [ "$rep" = y ] && [ "$rep" = O ] && [ "$rep" = o ];then
rm fichier_salaries
else
exit
fi
;;
   7)
exit 0
;;
esac
done

voila mon dernier code mais je dois vérifier si une ligne existe ou pas avec grep pour la recherche par nom svp

Hors ligne

#35 Le 25/05/2012, à 10:09

TLK x TyGeRz

Re : Script formulaire

#!/bin/bash
shopt -s extglob

while true
do

# Menu

echo '
                           GESTION DES SALARIES


##########################################################################
### 1. Saisie des informations personelles d un salarié                ###
### 2. Mise à jour des informations personnelles d un salarié          ###
### 3. Consultation des informations personnelles d un salarié         ###
### 4. Consultation des informations personnelles de tous les salariés ###
### 5. Supprimer un salarié                                            ###
### 6. Supprimer la fiche contenant les informations des salariés      ###
### 7. Quitter l application                                           ###
##########################################################################'

echo
echo -n "Saisir un chiffre: "
read chiffre

while ! ( [ "$chiffre" -ge 1 ] && [ "$chiffre" -le 7 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez saisir un chiffre entre 1 et 7: "
             read chiffre
       done 2>/dev/null

case $chiffre in
    1)
echo
echo -n "nom: "
read nom

while [[ "$nom" != +([a-zA-Z]) ]]

       do
             echo
             echo "Caractère incorrecte."
             echo -n "Retapez votre nom: "
             read nom
       done

echo
echo -n "prenom: "
read prenom

while [[ "$prenom" != +([a-zA-Z]) ]]

       do
             echo
             echo "Caractère incorrecte."
             echo -n "Retapez votre prenom: "
             read prenom
       done

echo
echo -n "Veuillez tapez votre civilité(M., Mme, Melle ou Trans,): "
read civi

while [ "$civi" != M. ] && [ "$civi" != Mme ] && [ "$civi" != Melle ] && [ "$civi" != Trans ]

       do
             echo
             echo "Saisie incorrect"
             echo -n "Retapez votre civilitée(M., Mme, Melle ou Trans): "
             read civi
       done

if [ $civi = M. ]
then
codecivi=1
fi
if [ $civi = Mme ] || [ $civi = Melle ]
then
codecivi=2
fi
if [ $civi = Trans ]
then
codecivi=3
fi

IFS=/
echo
echo -n "date de naissance (jj/mm/aaaa): "
read jour mois annee

while [ -z "$jour" ] || [ -z "$mois" ] || [ -z "$annee" ]

       do
             echo
             echo "Champs incorrects ou manquants"
             echo -n "Retapez votre date de naissance sous la forme (jj/mm/aaaa): "
             read jour mois annee
       done

while ! ( [ "$annee" -ge 1901 ] && [ "$annee" -le 1999 ] )

       do
             echo
             echo "Saisie incorrecte."
             echo -n "Retapez l'année de naissance: "
             read annee
       done 2>/dev/null

while ! ( [ "$mois" -ge 1 ] && [ "$mois" -le 12 ] )

       do
             echo
             echo "Saisie incorrects"
             echo -n "Retapez le mois de naissance: "
             read mois
       done 2>/dev/null

case $mois in
   1|3|5|7|8|10|12)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 31 ] )

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read number
       done 2>/dev/null
;;
   4|6|9|11)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 30 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
   ;;
   2)
     if [ $(expr $annee % 4) = 0 ]
     then
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 29 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
     else
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 28 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
     fi
   ;;
esac

jour=$(sed 's/^.$/0&/' <<< "$jour") # Rajout du 0 au jour si nécessaire
mois=$(sed 's/^.$/0&/' <<< "$mois") # Rajout du 0 au mois si nécessaire
an=`expr $annee - 1900`

echo
echo "Date de naissance : $jour/$mois/$annee valide"
echo
echo -n "Situation familiale (C pour célibataire, D pour divorcé(e), M pour marié(e), P pour pacsé(e): "
read situation

while [ "$situation" != C ] && [ "$situation" != D ] && [ "$situation" != M ] && [ "$situation" != P ]

       do
             echo -n "Saisie incorrecte. Choisir parmis la liste proposée (C, D, M, P): "
             read situation
       done

echo -n "Adresse(numero et nom de votre rue): "
read adresse

while [ -z "$adresse" ]

       do
             echo
             echo "Champs obligatoire"
             echo -n "Veuillez ressaisir votre adresse: "
             read adresse
       done

while ! grep -E "^[0-9a-zA-Z., ]*$" >/dev/null <<<"$adresse"

       do
             echo
             echo "Caractère invalide"
             echo -n "Veuillez tapez une adresse valide: "
             read adresse
       done

echo
echo -n "Entrez votre code postal: "
read codepost

while [[ "$codepost" != +([0-9]) ]]

       do
             echo
             echo "Code postal incorrect"
             echo -n "Veuillez retapez votre code postal: "
             read codepost
       done

case "$codepost" in
0[1-9]-[0-9][0-9][0-9])
;;
[2-8][0-9]-[0-9][0-9][0-9])
;;
7[0-4]-[0-9][0-9][0-9])
;;
75-0[01-20])
;;
7[6-9]-[0-9][0-9][0-9])
;;
8[0-9]-[0-9][0-9][0-9])
;;
9[0-5]-[0-9][0-9][0-9])
;;
esac

len={#codepost}
echo "$len"
echo
echo -n "Veuillez entrer votre ville: "
read ville

while [[ "$ville" != +([a-zA-Z]) ]]

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Retapez votre ville: "
             read ville
       done 2>dev/null

echo
echo "Votre adresse est: $adresse $codepost $ville"
echo
echo -n "Numéro de téléphone de fixe: "
read numfix

while ! grep -E "^[0][19]{1}[0-9]{8}$" >/dev/null <<<"$numfix"

       do
             echo
             echo "Numero de téléphone fixe incorrect"
             echo -n "Veuillez le retapez: "
             read numfix
       done

echo -n "Numéro de téléphone portable: "
read numpor

while ! grep -E "^[0]{1}[6-7]{1}[0-9]{8}$" >/dev/null <<<"$numpor"

       do
             echo
             echo "Numero de téléphone mobile incorrect"
             echo -n "Veuillez le retapez: "
             read numpor
       done

#automatisation du numéro de la sécurité sociale

echo
echo "Tapez les 3 dernier chiffres de votre numéro de sécurité sociale"
echo -n "Ils correspondent aux numéro d'ordres de l'acte de naissance: "
read number

while ! grep -E "^[001-999]{3}$" >/dev/null <<<"$number"

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read number
       done 2>/dev/null

echo
echo -n "Tapez la clé de sécurité à 2 chiffres: "
read cle 

while ! grep -E "^[01-97]{2}$" >/dev/null <<<"$cle"

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read cle
       done 2>/dev/null

nss=$codecivi-$an-$mois-$codepost-$number-$cle
echo
echo "Votre numéro de sécurité sociale est: $nss"

fich=fichier_salaries
if [ -f $fich ]
then
              if  grep "$nom, $prenom, $civi, $jour/$mois/$annee, $situation, $adresse $ccodepost $ville, $numfix, $numpor, $nss" $fich > /dev/null
              then                     
                  echo "fin du script"
                  exit 0

                  else
                  echo "$nom, $prenom, $civi, $jour/$mois/$annee, $situation, $adresse $codepost $ville, $numfix, $numpor, $nss" >> $fich
       fi
         else       
                echo "$nom, $prenom, $civi, $jour/$mois/$annee, $situation, $adresse $codepost $ville, $numfix, $numpor, $nss" > $fich
       fi
;;
   2)
nl -ba fichier_salaries
echo
echo -n "Saisissez le numéro correspondant au salarié que vous voulez mettre à jour: "
read num1

echo
echo -n "nom: "
read nom

while [[ "$nom" != +([a-zA-Z]) ]]

       do
             echo
             echo "Caractère incorrecte."
             echo -n "Retapez votre nom: "
             read nom
       done

echo
echo -n "prenom: "
read prenom

while [[ "$prenom" != +([a-zA-Z]) ]]

       do
             echo
             echo "Caractère incorrecte."
             echo -n "Retapez votre prenom: "
             read prenom
       done

echo
echo -n "Veuillez tapez votre civilité(M., Mme ou Melle): "
read civi

while [ "$civi" != M. ] && [ "$civi" != Mme ] && [ "$civi" != Melle ]

       do
             echo
             echo "Saisie incorrect"
             echo -n "Retapez votre civilitée(M., Mme, Melle): "
             read civi
       done

if [ $civi = M. ]
then
codecivi=1
else
codecivi=2
fi

IFS=/
echo
echo -n "date de naissance (jj/mm/aaaa): "
read jour mois annee

while [ -z "$jour" ] || [ -z "$mois" ] || [ -z "$annee" ]

       do
             echo
             echo "Champs incorrects ou manquants"
             echo -n "Retapez votre date de naissance sous la forme (jj/mm/aaaa): "
             read jour mois annee
       done

while ! ( [ "$annee" -ge 1901 ] && [ "$annee" -le 1999 ] )

       do
             echo
             echo "Saisie incorrecte."
             echo -n "Retapez l'année de naissance: "
             read annee
       done 2>/dev/null

while ! ( [ "$mois" -ge 1 ] && [ "$mois" -le 12 ] )

       do
             echo
             echo "Saisie incorrects"
             echo -n "Retapez le mois de naissance: "
             read mois
       done 2>/dev/null

case $mois in
   1|3|5|7|8|10|12)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 31 ] )

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read number
       done 2>/dev/null
;;
   4|6|9|11)
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 30 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
   ;;
   2)
     if [ $(expr $annee % 4) = 0 ]
     then
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 29 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
     else
while ! ( [ "$jour" -ge 1 ] && [ "$jour" -le 28 ] )

       do
             echo
             echo "Saisie invalide"
             echo -n "Veuillez retapez le jour de naissance: "
             read jour
       done 2>/dev/null
     fi
   ;;
esac

jour=$(sed 's/^.$/0&/' <<< "$jour") # Rajout du 0 au jour si nécessaire
mois=$(sed 's/^.$/0&/' <<< "$mois") # Rajout du 0 au mois si nécessaire
an=`expr $annee - 1900`

echo
echo "Date de naissance : $jour/$mois/$annee valide"
echo
echo -n "Situation familiale (C pour célibataire, D pour divorcé(e), M pour marié(e), P pour pacsé(e): "
read situation

while [ "$situation" != C ] && [ "$situation" != D ] && [ "$situation" != M ] && [ "$situation" != P ]

       do
             echo -n "Saisie incorrecte. Choisir parmis la liste proposée (C, D, M, P): "
             read situation
       done

echo -n "Adresse(numero et nom de votre rue): "
read adresse

while [ -z "$adresse" ]

       do
             echo
             echo "Champs obligatoire"
             echo -n "Veuillez ressaisir votre adresse: "
             read adresse
       done

while ! grep -E "^[0-9a-zA-Z., ]*$" >/dev/null <<<"$adresse"

       do
             echo
             echo "Caractère invalide"
             echo -n "Veuillez tapez une adresse valide: "
             read adresse
       done
echo
echo -n "Entrez votre code postal: "
read codepost

while [[ "$codepost" != +([0-9]) ]]

       do
             echo
             echo "Code postal incorrect"
             echo -n "Veuillez retapez votre code postal: "
             read codepost
       done

case "$codepost" in
0[1-9][0-9][0-9][0-9])
;;
[2-8][0-9][0-9][0-9][0-9])
;;
7[0-4][0-9][0-9][0-9])
;;
750[01-20])
;;
7[6-9][0-9][0-9][0-9])
;;
8[0-9][0-9][0-9][0-9])
;;
9[0-5][0-9][0-9][0-9])
;;
*)
;;
esac

echo
echo -n "Veuillez entrer votre ville: "
read ville

while [[ "$ville" != +([a-zA-Z]) ]]

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Retapez votre ville: "
             read ville
       done

echo
echo "Votre adresse est: $adresse $codepost $ville"
echo
echo -n "Numéro de téléphone de fixe: "
read numfix

while ! grep -E "^[0][19]{1}[0-9]{8}$" >/dev/null <<<"$numfix"

       do
             echo
             echo "Numero de téléphone fixe incorrect"
             echo -n "Veuillez le retapez: "
             read numfix
       done

echo -n "Numéro de téléphone portable: "
read numpor

while ! grep -E "^[0]{1}[6-7]{1}[0-9]{8}$" >/dev/null <<<"$numpor"

       do
             echo
             echo "Numero de téléphone mobile incorrect"
             echo -n "Veuillez le retapez: "
             read numpor
       done

#automatisation du numéro de la sécurité sociale

echo
echo "Tapez les 3 dernier chiffres de votre numéro de sécurité sociale"
echo -n "Ils correspondent aux numéro d'ordres de l'acte de naissance: "
read number

while ! grep -E "^[001-999]{3}$" >/dev/null <<<"$number"

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read number
       done 2>/dev/null

echo
echo -n "Tapez la clé de sécurité à 2 chiffres: "
read cle 

while ! grep -E "^[01-97]{2}$" >/dev/null <<<"$cle"

       do
             echo
             echo "Saisie incorrecte"
             echo -n "Veuillez le ressaisir: "
             read cle
       done 2>/dev/null

nss=$codecivi-$an-$mois-$codepost-$number-$cle

sed -i "${num1}c$nom, $prenom, $civi, $jour/$mois/$annee, $situation, $adresse $codepost $ville, $numfix, $numpor, $nss" fichier_salaries
;;
   3)
echo
echo -n "Saisissez une information conçernant le salarié(nom ou prénom): "
read saisie

while [[ "$saisie" != +([a-zA-Z]) ]]

       do
             echo "Saisie incorrecte"
             echo -n "Ressaisissez le nom ou le prénom du salarié: "
             read saisie
       done

if [ -e "fichier_salaries" ];then
     if [ -z "$saisie" ];then
             echo
             echo "Aucun caractère entré"
     else
             echo
             echo "Voiçi le(s) salarié(s) correspondant à la recherche: "
             echo
retour= cat fichier_salaries |grep $saisie
     fi
echo
echo "Aucun salarié ne correspont à la recherche"
else
echo
echo "Aucune fiche n'a été trouvée"
fi
;;
   4)
if [ -e "fichier_salaries" ]
then
echo
cat fichier_salaries
echo
else
echo
echo "Action impossible car le fichier n'éxiste pas"
echo
fi
;;
   5)
nl -ba fichier_salaries
echo
echo -n "Saisissez le numéro correspondant au salarié que vous voulez supprimer: "
read num2
sed -i "${num2}d" fichier_salaries
;;
   6)
echo
echo "Voulez-vous vraiment supprimer l'intégralité de la fiche salarié ?"
echo -n "[Y/N]: Y pour oui, N pour non || [O/n]: O pour oui, N pour non: "
read rep

while [ "$rep" != Y ] && [ "$rep" != y ] && [ "$rep" != O ] && [ "$rep" != o ] && [ "$rep" != N ] && [ "$rep" != n ]

       do
             echo "Saisie incorrecte"
             echo -n "Veuillez retapez votre réponse([Y/N], [O/n]): "
             read rep
       done

if [ "$rep" = Y ] || [ "$rep" = y ] || [ "$rep" = O ] || [ "$rep" = o ];then
rm fichier_salaries
fi
;;
   7)
exit 0
;;
esac
done

voila

Hors ligne

#36 Le 07/06/2012, à 16:04

TLK x TyGeRz

Re : Script formulaire

pour cette partie

  3)
echo
echo -n "Saisissez une information conçernant le salarié(nom ou prénom): "
read saisie

while [[ "$saisie" != +([a-zA-Z]) ]]

       do
             echo "Saisie incorrecte"
             echo -n "Ressaisissez le nom ou le prénom du salarié: "
             read saisie
       done

if [ -e "fichier_salaries" ];then
     if [ -z "$saisie" ];then
             echo
             echo "Aucun caractère entré"
     else
             echo
             echo "Voiçi le(s) salarié(s) correspondant à la recherche: "
             echo
retour= cat fichier_salaries |grep $saisie
     fi
echo
echo "Aucun salarié ne correspont à la recherche"
else
echo
echo "Aucune fiche n'a été trouvée"
fi
;;

comment vérifier que la ligne est vide ou non et si la recherche par nom ne correspond a aucune ligne et bien il ne me renvois rien yikes c'est normal ?

Hors ligne