en espérant pas etre HS vu que c'est plus une question programmation
Linux que purement Debian.
je souhaite ecrire un script bash utilisant des flags avec des noms
longs genre :
$ ./monscript --user=toto --group=tutu
qui serait équivalent à (avec des flag court)
$ monscript -u toto -g tutu
donc pouvoir utiliser indifféremment des options à nom court ou long et
les récupérer dans le script.
.
j'ai un peu googlisé et j'ai trouvé getopt et getopts dans le "bash adv.
scripting howto" mais les exemples données ne portent que sur des flags
avec des noms courts (un caractère précédé d'un tiret). Apparemment en C
on peut utiliser la fonction getopt_long, egalement en Perl avec le
module GetOpt::Long qui crée une table de hachage pour les flags longs.
je voudrai savoir s'il existe l'équivalent en 100% shell/bash. Si oui,
comment faire ? car je n'ai rien trouvé pour le moment.
merci pour tout lien, exemple de script qui permet la récupération et le
traitement d'option longues avec double tirets.
2e question : y a t-il un moyen simple (sans faire des batteries de
tests) pour préciser qu'un flag est obligatoire ou facultatif ?
A+
Arnaud
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrice Karatchentzeff
Arnaud JAYET writes:
[...]
> je voudrai savoir s'il existe l'équivalent en 100% shell/bash. Si oui, > comment faire ? car je n'ai rien trouvé pour le moment. > merci pour tout lien, exemple de script qui permet la récupération et le > traitement d'option longues avec double tirets. > > 2e question : y a t-il un moyen simple (sans faire des batteries de > tests) pour préciser qu'un flag est obligatoire ou facultatif ?
1) si tu veux faire du scripting assez avancé, tu vas vite avoir du soucis avec les différents Bourne... Passe tout de suite la vitesse supérieure avec Perl ou un équivalent...
2) sinon, tu peux jouer aussi avec zsh... dans le genre Bourne très avancé, ce n'est pas mal :)
-- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Arnaud JAYET writes:
[...]
> je voudrai savoir s'il existe l'équivalent en 100% shell/bash. Si oui,
> comment faire ? car je n'ai rien trouvé pour le moment.
> merci pour tout lien, exemple de script qui permet la récupération et le
> traitement d'option longues avec double tirets.
>
> 2e question : y a t-il un moyen simple (sans faire des batteries de
> tests) pour préciser qu'un flag est obligatoire ou facultatif ?
1) si tu veux faire du scripting assez avancé, tu vas vite avoir du
soucis avec les différents Bourne... Passe tout de suite la vitesse
supérieure avec Perl ou un équivalent...
2) sinon, tu peux jouer aussi avec zsh... dans le genre Bourne très
avancé, ce n'est pas mal :)
> je voudrai savoir s'il existe l'équivalent en 100% shell/bash. Si oui, > comment faire ? car je n'ai rien trouvé pour le moment. > merci pour tout lien, exemple de script qui permet la récupération et le > traitement d'option longues avec double tirets. > > 2e question : y a t-il un moyen simple (sans faire des batteries de > tests) pour préciser qu'un flag est obligatoire ou facultatif ?
1) si tu veux faire du scripting assez avancé, tu vas vite avoir du soucis avec les différents Bourne... Passe tout de suite la vitesse supérieure avec Perl ou un équivalent...
2) sinon, tu peux jouer aussi avec zsh... dans le genre Bourne très avancé, ce n'est pas mal :)
-- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Arnaud JAYET
Arnaud JAYET a écrit :
Bonjour,
en espérant pas etre HS vu que c'est plus une question programmation Linux que purement Debian.
je souhaite ecrire un script bash utilisant des flags avec des noms longs genre :
$ ./monscript --user=toto --group=tutu
Salut,
me répond à moi-meme, si cela peut servir à d'autres....
utiliser getopt -o <optstring> -l <opstring>
et puis lire, relire et re-relire le man ;-) car
man getopt
EXAMPLES Example scripts for (ba)sh and (t)csh are provided with the getopt(1) distribution, and are optionally installed in /usr/lib/getopt or /usr/local/lib/getopt (if you have created it).
juste que c'est pas dans /usr/lib/getopt mais dans /usr/share-doc/util-linux/examples (paquet util-linux)
$ ls /usr/share/doc/util-linux/examples/ fstab.example2.gz getopt-parse.tcsh.gz getopt-test.tcsh.gz getopt-parse.bash.gz getopt-test.bash.gz sfdisk.examples.gz
$ zcat getopt-parse.bash.gz
un beau script d'exemples , ouin.....
A+ Arnaud
-- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Arnaud JAYET a écrit :
Bonjour,
en espérant pas etre HS vu que c'est plus une question programmation
Linux que purement Debian.
je souhaite ecrire un script bash utilisant des flags avec des noms
longs genre :
$ ./monscript --user=toto --group=tutu
Salut,
me répond à moi-meme, si cela peut servir à d'autres....
utiliser getopt -o <optstring> -l <opstring>
et puis lire, relire et re-relire le man ;-) car
man getopt
EXAMPLES
Example scripts for (ba)sh and (t)csh are provided with the
getopt(1) distribution, and are
optionally installed in /usr/lib/getopt or /usr/local/lib/getopt
(if you have created it).
juste que c'est pas dans /usr/lib/getopt mais dans
/usr/share-doc/util-linux/examples (paquet util-linux)
$ ls /usr/share/doc/util-linux/examples/
fstab.example2.gz getopt-parse.tcsh.gz getopt-test.tcsh.gz
getopt-parse.bash.gz getopt-test.bash.gz sfdisk.examples.gz
$ zcat getopt-parse.bash.gz
un beau script d'exemples , ouin.....
A+
Arnaud
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
en espérant pas etre HS vu que c'est plus une question programmation Linux que purement Debian.
je souhaite ecrire un script bash utilisant des flags avec des noms longs genre :
$ ./monscript --user=toto --group=tutu
Salut,
me répond à moi-meme, si cela peut servir à d'autres....
utiliser getopt -o <optstring> -l <opstring>
et puis lire, relire et re-relire le man ;-) car
man getopt
EXAMPLES Example scripts for (ba)sh and (t)csh are provided with the getopt(1) distribution, and are optionally installed in /usr/lib/getopt or /usr/local/lib/getopt (if you have created it).
juste que c'est pas dans /usr/lib/getopt mais dans /usr/share-doc/util-linux/examples (paquet util-linux)
$ ls /usr/share/doc/util-linux/examples/ fstab.example2.gz getopt-parse.tcsh.gz getopt-test.tcsh.gz getopt-parse.bash.gz getopt-test.bash.gz sfdisk.examples.gz
$ zcat getopt-parse.bash.gz
un beau script d'exemples , ouin.....
A+ Arnaud
-- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact