Re: hs: petite question script bash
Le 21/03/18 à 20:40, raphael.poite...@gmail.com (Raphaël POITEVIN) a écrit : RP> Pour moi c’est propre ! J'ajouterais quand même un # devrait se trouver au début de tout script bash, pour planter si on # utilise une variable non déclarée set -u et du coup plus loin, un ${1-} pour initialiser la variable "1" à "" si elle n'existe pas (${foo-bar} vaut $foo si la variable existe, indépendamment de sa valeur, et "bar" sinon) case ${1-} foo) # du code pour $1 == "foo" ;; bar|"bla bla") # du code pour $1 == "bar" ou $1 == "bla bla" ;; *) # du code pour tous les autres cas ;; esac -- Daniel S'il est impossible de ne pas penser à quelque chose, il reste encore possible de penser à autre chose. Lewis Carroll
Re: hs: petite question script bash
Jérémy PREGOwrites: > merci pour ça, mais du coup dans le *, je vais devoir mettre mes trois > fonction l'une après l'autre, pour qu'elles soient exécutés, si je > n'entre aucun paramètre. > > si c'est un moyen propre, je vais l'adopter :) Pour moi c’est propre ! -- Raphaël
Re: hs: petite question script bash
Le 21/03/2018 à 16:22, Jérémy PREGO a écrit : > Le 21/03/2018 à 15:52, yahoo a écrit : >> >> Bonjour >> >> en bash tu peux utiliser case. >> >> /case $1 in >> / >> >> / "")/ >> >> / ton code/ >> >> / ;;/ >> >> / "")/ >> >> / ton code// >> / >> >> / ;;/ >> >> / *)/ >> >> / si aucune option ou rien qui ne corresponde au choix ci-dessus// >> / >> >> / ;;/ >> >> /esac/ >> >> > merci pour ça, mais du coup dans le *, je vais devoir mettre mes trois > fonction l'une après l'autre, pour qu'elles soient exécutés, si je > n'entre aucun paramètre. > > si c'est un moyen propre, je vais l'adopter :) > > jerem >> Le 21/03/2018 à 15:40, Jérémy PREGO a écrit : >>> bonjour, >>> >>> est-ce qu'il exite un moyen simple en bash d'exécuter une partie >>> d'un script en fonction du paramètre $1 et si il y a pas de >>> paramètre, exécuter tout le script ? >>> >>> j'ai bien pensé faire des fonctions et faire une condition genre: >>> if [ $1 == "contenue de $1" ]; then >>> fonction1 >>> fi >>> >>> je suis convaincu qu'il y a plus propre que ça, avec un système que >>> je ne connais pas encore. >>> >>> merci pour l'aide apportée >>> >>> jerem >>> >> > Je ne sais pas si c'est le moyen le plus propre :) mais j'ai toujours vue cette solution pour les scripts d'init par exemple, dans les script l'option restart contient souvent l'appel de la fonction do_stop suivi de do_start, donc tu peux mettre autant de fonctions que tu veux pour chaque cas de case.
Re: hs: petite question script bash
Le 21/03/2018 à 15:52, yahoo a écrit : Bonjour en bash tu peux utiliser case. /case $1 in / / "")/ / ton code/ / ;;/ / "")/ / ton code// / / ;;/ / *)/ / si aucune option ou rien qui ne corresponde au choix ci-dessus// / / ;;/ /esac/ merci pour ça, mais du coup dans le *, je vais devoir mettre mes trois fonction l'une après l'autre, pour qu'elles soient exécutés, si je n'entre aucun paramètre. si c'est un moyen propre, je vais l'adopter :) jerem Le 21/03/2018 à 15:40, Jérémy PREGO a écrit : bonjour, est-ce qu'il exite un moyen simple en bash d'exécuter une partie d'un script en fonction du paramètre $1 et si il y a pas de paramètre, exécuter tout le script ? j'ai bien pensé faire des fonctions et faire une condition genre: if [ $1 == "contenue de $1" ]; then fonction1 fi je suis convaincu qu'il y a plus propre que ça, avec un système que je ne connais pas encore. merci pour l'aide apportée jerem
Re: hs: petite question script bash
Bonjour en bash tu peux utiliser case. /case $1 in / / "")/ / ton code/ / ;;/ / "")/ / ton code// / / ;;/ / *)/ / si aucune option ou rien qui ne corresponde au choix ci-dessus// / / ;;/ /esac/ C'est la solution utilisé dans les script sysvinit, souvent dans la partie *) on met un affichage sur la sortie standard pour afficher l'usage de la commande, mais tu peux mettre ce que tu veux. Le 21/03/2018 à 15:40, Jérémy PREGO a écrit : > bonjour, > > est-ce qu'il exite un moyen simple en bash d'exécuter une partie d'un > script en fonction du paramètre $1 et si il y a pas de paramètre, > exécuter tout le script ? > > j'ai bien pensé faire des fonctions et faire une condition genre: > if [ $1 == "contenue de $1" ]; then > fonction1 > fi > > je suis convaincu qu'il y a plus propre que ça, avec un système que je > ne connais pas encore. > > merci pour l'aide apportée > > jerem >