Parser un argument de commande en plusieurs
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 :
Code:
./script.ksh arg1 arg2 arg3 arg4
Les arguments 1 et 2 sont fixes.
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 :
Code:
1 2
| argument = $4
tab = `echo $argument | awk 'BEGIN{FS=":"}{for (i=1; i<=NF; i++) tab[i]=print $i}'` |
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.
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 :ccool: