Le vendredi 4 octobre 2024 à 19:39, didier gaumet <didier.gau...@gmail.com> a écrit :
> Le 04/10/2024 à 18:37, benoit a écrit : > > > Bonjour, > > > > Avec getopts, je ne sais pas comment on fait pour récupérer de multiple > > arguments dans $OPTARG, j’ai regardé un peu sur le net, mais je ne > > comprends pas bien. > > > > Si par exemple, je voulais écrire un script qui concatène des fichiers > > dans le fichier destination.txt > > % ./monscript -i fichier1.txt fichier2.txt -o destination.txt > > > > $OPTARG ne contient que fichier1.txt, comme si fichier2.txt, n’était pas > > analysé par getopts > > > > Merci d’avance > > > > – > > Benoît > > > Avertissement: j'y connais rien, je n'écris pas de scripts bash, je > n'utilise pas $OPTARGS > > par contre, c'est peut-être moi qui ne comprends pas mais d'après les docs: > https://linuxsimply.com/bash-scripting-tutorial/functions/script-argument/bash-optarg/ > file://///usr/share/doc/util-linux/examples/getopt-example.bash > et les pages man getopt(1 et 3) Pour l'instant, je intéresse à getopts (avec un "s") qui fait partie du bash, mais si getopt répond mieux à ce que je veux faire, je suis prenneur > (tout ça malheureusement parcouru en diagonale) > > 1) j'ai l'impression que $OPTARGS ne retourne que la valeur du paramètre > choisi (désolé si j'enfonce une porte ouverte): > voir exemple 1 sur linuxsimply > > 2) l'exemple du fichier /usr/share/[...] pourrait suggérer (mais j'ai > peut-être rien compris) que lorsque un paramètre comprend des > séparateurs (espaces,...) il faut utiliser "$@" > Et testant ce que retourne "$@", j'ai l'impression (je découvre et je n'y connais rien, dis moi si je me trompe) que "$@" c'est stdin "en vrac" tout ce qui vient après la commande et que getopts et là pour m'aider à traiter les options. ---- #!/bin/bash echo $@ ---- % ./teststdin -o destination.txt fichier1.txt fichier2.txt -o destination.txt fichier1.txt fichier2.txt Merci, -- Benoît