Gerer une commande avec Parametres + Argument [ Ksh Script Shell ] - Programmation
Marsh Posté le 26-05-2002 à 09:12:37
Bonjour
ç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 !!!
aux ' & ` de la commande awk
!!!ATTENTION !!!
tu trouveras pleins d'exemples plus complexes et mieux expliqués surtout sur internet et dans la page man de awk...
salut
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
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.
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.
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
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
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