Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/10/2013, à 17: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, à 17:57)

Hors ligne

#2 Le 07/10/2013, à 18: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, à 18: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, à 18:40)

Hors ligne