Bonjour ,
Je suis en train de developper un script en Shell (SH) pour Linux.
J'ai un gros problème sur lequel j'ai planché pendant plusieurs heures, voire
plusieur journées, en vain.
Je vous serai très reconnaissant si vous pouviez me depanner à
trouver l'algorithme correct en Bash (SH)
Tous les paramètres du programme sont rentrés en ligne de commande.
Leur nombre n'est pas connu à l'avance bien sûr !
Je ne trouve d'algorithme comparable à celui qui est realise lorsque l'on
execute un "ls -l" ou un "find . -type f -name "*.c"
Dans mon cas, je souhaiterai traiter les arguments rentres en ligne de commande
en suivant ce shema :
// Appel du programme : "./monprog <argument1> <argument2> <...>"
// Shema :
- Option "-C <arg1>" -> appelle fonction "F1 <arg1>"
- Option "-i <arg2>" -> fonctionne uniquement avec option -C
appelle fonction "F1 <arg1> <arg2>
- Option "-s <arg3>" -> fonctionne uniquement avec option -C
appelle fonction "F1 <arg1> <...> <arg3>
- Option "-d <arg4>" -> fonctionne uniquement avec option -C
appelle fonction "F1 <arg1> <...> <arg4>
// Exemple : l'appel "./monprog -C toto -i fifi -s lala" doit
executer la fonction "F1 toto fifi lala"
- Option "-l <arg4> <arg...>" -> appelle une fonction "F2" avec comme
paramètre au moins un argument.
// Exemple : l'appel "./monprog -l math opengl stdlib -C toto -s lala" doit
executer la fonction ---> "F2 math opengl stdlib"
puis la fonction ---> "F1 toto _rien lala"
###############################################################
################ Voici ce que j'ai deja essayé de programmer,
################ mais bien sur, ca ne marche pas

###############################################################
while test $# -ne 0
do
case $1 in
"-t") res=`echo "$2"|grep -E "^-"`;
if [ $? -ne 0 ]
then
verrifStructureProjet $2
else
echo "inco";break;
fi
shift;;
"-o")
test $t1 = 1 -a -z $t2
while [ $? -eq 0 ]
do
res=`echo "$2"|grep -E "^-"`;
echo "kkk "
done
t1=$?
if [ $t1 -ne 0 ]
then
test -z "$2"
t2=$?
if [ $t2 -eq 0 ]
then
echo "bye";break;
else
fixeLibrairies $2
fi
else
echo "bye";break;
fi
shift;;
"-C") res=`echo "$2"|grep -E "^-"`;
if [ $? -ne 0 ]
then
test -z "$2"
if [ $? -eq 0 ]
then
echo "bye";break;
else
nomFich="$2";
test $3 != "-i" -a $3 != "-s" -a $3 != "-d" -a $3 != "-O";
echo "----- $?"
case $3 in
"-i") test -z "$4"
if [ $? -ne 0 ]
then
testeArg $4 inc;
else
break;
fi;;
"-s") test -z "$4"
if [ $? -ne 0 ]
then
testeArg $4 src;
else
break;
fi;;
"-d") test -z "$4"
if [ $? -ne 0 ]
then
testeArg $4 dat;
else
break;
fi;;
"-O") test -z "$4"
if [ $? -ne 0 ]
then
testeArg $4 obj
else
break;
fi;;
esac
creeStructureProjet $nomFich $varInc $varSrc $varObj $varDat;
fi
else
echo "inco";break;
fi
shift
esac
shift
echo "++"
done