[ Ksh Script Shell ] Gerer une commande avec Parametres + Argument

Gerer une commande avec Parametres + Argument [ Ksh Script Shell ] - Programmation

Marsh Posté le 25-05-2002 à 12:27:29    

Voila je cherche desesperement comment je pourrais gerer une commande créer en Ksh avec des arguments.
Exemple
 
Commande -u arg1 arg2 arg3 -p
 
Pour un cas simple c'est facile mais quand on met un parametres mauvais ou qu'on enchaine plusieurs fois -u ou -p cela pose beaucoup de probleme
 
[B]Personne n'aurais un algo pour gerer ca ?[/B]
Jai essayer les while imbriqué, le getopts avec optargs etc... mais toujours des problemes
 
merci

Reply

Marsh Posté le 25-05-2002 à 12:27:29   

Reply

Marsh Posté le 25-05-2002 à 17:57:06    

up ! plz

Reply

Marsh Posté le 26-05-2002 à 01:49:11    

personne n'a jamais fait de ca meme en cours ?

Reply

Marsh Posté le 26-05-2002 à 09:12:37    

Bonjour  [:kuroineko]  
 
ça depand du type d'argument que tu veux utiliser.
 
mais une solution simple serait peut etre la creation et lecture d'un fichier temporaire (penses à le mettre dans /tmp pour etre bien propre)  
 
un exemple simple serrait de mettre dans le fichier temp :
 
ARG1 ARG2 ARG3 ARG4 etc....

si tu as des modifs d'arguments, tu peux gerer un fichier par argments et le mettre à jour à chaque modif de l'argument
on peut manipuler l'affichage des resultat avec AWK et scripter de telle sorte que par comparaison de valeur, de fichier, par concatenation de fichier, tu devrais pouvoir t'en sortir plus facilement.
 
Encore plus propre et moins gourmand en access disque & memoire, serrait de faire un tableau de variables (1 par argument dans un seul fichier temporaire & utiliser awk comme pointer) et de le manipuler un peu comme les pointeurs en C++ mais en plus simple. penses aussi aux commandes tail & gerp
________________
 
 
comment recuperé une variable dans un fichier temp  
______________
toto.tmp
valeur_old valeur_tmp valeur_arg_1 valeur_arg3 valeur_arg4  
 
_____________
 
où pour la mettre le 4eme argument dans une variable
variable =`cat /tmp/toto.temp | awk '{print $4}'`
 
et ensuite tu peux te servir de variable comme tu veux...en l'appelant par $variable...
 
en jouant comme ça sur un fichier temporaire tu devrais pouvoir ecrire un tableau dans le fichier temp et avec les pipes de la commande awk tu peux manipuler ça tres facilement.
 
!!! ATTENTION !!!  
:non: aux ' & ` de la commande awk  :non:  
!!!ATTENTION !!!

 
 
tu trouveras pleins d'exemples plus complexes et mieux expliqués surtout sur internet et dans la page man de awk...
 
salut
 [:kuroineko]


---------------
[:kuroineko] Francois.P tel: (+33)617230820 http://www.ifrance.com/fpussault  fpussault@caramail.com
Reply

Marsh Posté le 26-05-2002 à 11:57:26    

Le probleme c qu'il ya beaucoup de cas a gerer
il faut penser par exemple que je n'ai que 2 options valides
 
-p et -u
 
la seule option qui admet des parametre est -u
 
donc si la personne entre ca
 
[B]command -u arg1 arg2 arg3 -p arg4 arg5 -u arg6 arg 7[/B]
 
je ne doit recuperer que arg1,2,,3,6 et 7 car il suivent un -u et pas les 2 autre tu comprend ??
 
et encore un probleme imagine que le mec entre ca :
 
[B]command -u arg1 arg2 -g -t -u arg3[/B]
 
bah je doit ignorer -g et -t et ne pas les traiter car ce ne sont pas des argument valide
 
c'est la mon probleme, je ne voit pas quel structure de programme je pourrais utilisé
 
merci :jap:

Reply

Marsh Posté le 26-05-2002 à 12:25:49    

Oui je vois se que tu veux dire mais là tu semble etre plus feru que moi en developpement alors pour t'aider ....je te donnerai comme conseil de  respecter le standard UNIX des lignes de commande
 
 
commande -xxxxxx arg1 arg2 arg3
 
command -upgt dans l'exemple que tu donne
 
alors tu peux verifier la validité par comparaison de chaine de l'argument 1 puisqu'il contient -upgt  
en definissant les combinaisons possibles tu doit avoir 5 ou 6 cas possibles  
 
donc tu pourrais faire un  
case "SUR la STRING argument1"
     u)...;;
     up)...;;
     ug)...;;
esac

 
par contre si tu veux pouvoir faire un parametrage par argument
 
ARG1 u
ARG2 ut
ARG3 ug
 
là le mieux est peut etre de repenser le systeme par  
une lecture des arguments seuls  puis de modifier leurs parametres par un menu....
 
c'est pas propre et chiant à faire... mais j'ai pas d'autres idées...
 
 
désolé. Je peux pas trop t'aider j'ai touché à enormement de langage differents mais juste pour faire mumuse je me suis jamais interessé en profondeur au developpement alors je manque d'experience pour t'aider. :sweat:


---------------
[:kuroineko] Francois.P tel: (+33)617230820 http://www.ifrance.com/fpussault  fpussault@caramail.com
Reply

Marsh Posté le 26-05-2002 à 12:27:25    

ou mieux encore tu fait AUCUN argument en ligne et tout dans un menu.
 
tu entre argument et tu coches ses paramettres  
le suivant et ainsi de suite pui tu valide le tout.


---------------
[:kuroineko] Francois.P tel: (+33)617230820 http://www.ifrance.com/fpussault  fpussault@caramail.com
Reply

Marsh Posté le 26-05-2002 à 12:36:04    

c gentil de me donné c details ;)
 
mais un probleme c que je n'ai pas le choix
je suis obligé de faire ca de la maniere que je t dite
 
la est le probleme, et c largement faisable car plusieur perosnne l'on deja fait
 
suffit de penser que toute les commande unix sont basé la dessus ;)

Reply

Marsh Posté le 26-05-2002 à 12:52:19    

Ben je suis desolé mais là ça devient d'un niveau trop elevé pour moi...
 
à bientot


---------------
[:kuroineko] Francois.P tel: (+33)617230820 http://www.ifrance.com/fpussault  fpussault@caramail.com
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed