Bonjour,
Je rencontre quelques difficultés pour parser un argument d'une ligne de commande en plusieurs.
Je m'explique, j'ai un script shell qui effectue certains traitements et qui prend en argument plusieurs paramètres :
Les arguments 1 et 2 sont fixes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ./script.ksh arg1 arg2 arg3 arg4
L'argument n°3 se présente sous la forme suivante var1:var2:var3:...:varn et est variable, c'est à dire que l'utilisateur peut mettre var1 ou var1:var2 ou var1:var2:var3. Le symbole '|' est le champ de séparation. L'argument 4 est optionnel.
Je voudrais parser l'argument 3 et stocker les différentes valeurs dans une variable de tableau. Par exemple var1:var2:var3 j'aurai tab[1]=var1, tab[2]=var2 et tab[3]=var3.
J'ai essayé d'utiliser la commande AWK :
Le tableau reste vide tout le temps, par contre si je fais un echo $tab je me retrouve avec var1 var2 var3 mais ce n'est pas ce que je veux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 argument = $4 tab = `echo $argument | awk 'BEGIN{FS=":"}{for (i=1; i<=NF; i++) tab[i]=print $i}'`
Avez-vous des pistes ? Il y a t-il une solution plus facile pour parser un argument de ligne de commande en plusieurs et les stocker pour les réutiliser ?
Merci pour votre aide![]()
Partager