which est le mauvais outil. getopts est généralement aussi une fonction intégrée :
Depuis
getoptsaffecte 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 -bainsi que-ab