[Bash] donner en input le nom de l'argument et sa valeur ?

Swiss Knight Messages postés 1956 Date d'inscription   Statut Membre Dernière intervention   -  
 Utilisateur anonyme -
Salut,

Dans un script bash, mettons mon_script.sh, j'ai décidé de pouvoir entrer 3 arguments, là encore, pour l'exemple :
./mon_script.sh 5 oui masculin

Voilà.

Le hic, c'est que j'aimerai pouvoir le lancer parfois sans l'argument numéro 2, mais si j'écris ceci :
./mon_script.sh 5 masculin

il y a un problème : l'argument 2 c'est "masculin" et il n'y a plus d'argument 3.

J'aimerai donc pouvoir faire ça comme ceci :
./mon_script.sh arg1=5 arg2=oui arg3=masculin

pour pouvoir
1. ne plus tenir compte de l'ordre dans lesquels les arguments sont passés.
2. omettre un argument qui est au milieu de la liste, typiquement ici le deuxième sans que ça pose problème au bon fonctionnement du script.

C'est tout bête mais je vois pas comment faire.
Merci beaucoup de vos tuyaux ! ;)
Et passez un bon vendredi.

2 réponses

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

Voir du côté de getopts.
2
Utilisateur anonyme
 
salut,

tu peux jouer avec BASH_ARGV
#!/bin/bash

typeset "${BASH_ARGV[@]}"

echo "nomVar_enDur = $nomVar_enDur"
le script sera lancé ainsi
./monScript peu importe nomVar_enDur="autre chose"
1