which
est le mauvais outil. getopts
est généralement aussi une fonction intégrée :
Depuis
getopts
affecte l'environnement d'exécution du shell actuel, il est généralement fourni en tant que shell standard intégré.
~ for sh in dash ksh bash zsh; do "$sh" -c 'printf "%s in %s\n" "$(type getopts)" "$0"'; done
getopts is a shell builtin in dash
getopts is a shell builtin in ksh
getopts is a shell builtin in bash
getopts is a shell builtin in zsh
Si vous utilisez un script shell, vous pouvez compter sur getopts
en toute sécurité . Il peut y avoir d'autres raisons de privilégier l'une ou l'autre, mais getopts
est standard .
Voir aussi :Pourquoi ne pas utiliser « lequel » ? Quoi utiliser alors ?
Moi aussi je préférerais getopts
plus de getopt
pour les raisons suivantes :
getopt
Inconvénients
- Utilitaire externe
- Impossible de gérer une chaîne d'arguments vide ou des arguments avec des espaces blancs intégrés dans la version traditionnelle
getopts
Avantages
- Fonctionne dans n'importe quel shell POSIX et est portable
- Fonctionne bien avec
-a -b
ainsi que-ab