Verifier arguments au lancement d'un script shell
Bonjour à tous,
J'ai une interrogation à propos des arguments et aussi de leurs vérifications au moment de lancer un scripts
voici comment je mets en places mesarguments dans un script :
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
|
while (( "$#" ))
do
re='^-[a-z]$'
echo $1
if ! [[ $1 =~ $re ]]
then
echo "error"
exit 1
else
case $1 in
-f) file_arg=$2
if [ -z $file_arg ]
then
echo -e " [${Orange}Warn${NOCOLOR}] Fichier non renseigner\n------Sortie du script------"
exit 1
fi; shift 2 ;;
-s) schema_source=$2
if [ -z $schema_source ]
then
echo -e " [${Orange}Warn${NOCOLOR}] Schema source non renseigner\n ------Sortie du script------"
exit 1
fi; shift 2 ;;
-d) schema_dest=$2
if [ -z $schema_dest ]
then
echo -e " [${Orange}Warn${NOCOLOR}] Schema destination non renseigner\n ------Sortie du script------"
exit 1
fi; shift 2 ;;
-i) auto_import=$2
if [ -z $auto_import ]
then
auto_import="n"
fi; shift 2 ;;
-h) help; exit 1;;
*) echo "attention" ; shift ;;
esac
fi
done
echo "totototo" |
Du coup je fais une première verification pour détecter que l'argument est bien de la forme -[a-z]. par contre je n'arrive pas a faire sortir du script quand par exemple on a ca au lancement : et donc s'il manque un -[a-z] obligatoire (càd tous sauf le -h)
j'ai tester plusieurs chose mais aucune fonctionne :(
je vous remercie d'avance pour vos lumières :)
Cordialement.