Pages : 1
#1 Le 07/10/2013, à 16:56
- NiRaDo
Bash : créer des arguments nommés
Bonjour tout le monde !
Je voudrais par exemple faire un script qui comporte des paramètres nommés de la sorte (c'est juste un exemple) :
./novsite--create-db.sh --dbname=nom_de_la_base --dbuser=nom_utilisateure --dbpwd=le_mot_de_passe
Je n'ai pas réussi à trouver sur le net comment je devais m'y prendre dans mon script bash pour récupérer la valeur de *dbname* par exemple.
Je pense qu'il existe une technique plus simple que de prendre le *$1* et de découper la chaine...
Sauriez-vous comment réaliser cela de manière simple ?
Merci d'avance !
Dernière modification par NiRaDo (Le 07/10/2013, à 16:57)
Hors ligne
#2 Le 07/10/2013, à 17:03
- serged
Re : Bash : créer des arguments nommés
Pour l'invoquer, tu peux faire :
dbname=nom_de_la_base
dbuser=utilisateur
dvpwd=mot_de_passe
./novsite
et utiliser les variables $dbname, $dbuser et $dbpwd
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#3 Le 07/10/2013, à 17:16
- PDemong
Re : Bash : créer des arguments nommés
Perso, quand je veux passer des arguments à un script shell, je gère cela avec getopts.
Voici un tuto en anglais.
Voici une page en français.
[Edit]:Désolé, je n'avais pas fait attention, je vois que tu veux des arguments nommés, avec 2 tirets... cela n'est pas nativement supporté par getopts. Par contre je te file cette discussion où plusieurs solutions alternatives permettent d'obtenir une solution :
http://stackoverflow.com/questions/4023 … ne-options
La proposition d'une bibliothèque supplémentaire avec shflags à l'air assez simple.
Mais la meilleure solution(selon moi) serait d'utiliser getopt (sans le s à la fin) : je viens de découvrir cet outil, en voici un exemple facile à suivre :
http://linuxaria.com/howto/parse-option … pt?lang=en
Je n'ai pas testé par contre, donc si tu utilises cela, dis-nous si cela fonctionne bien, je suis curieux.
Bonne chance.
Dernière modification par PDemong (Le 07/10/2013, à 17:40)
Hors ligne