GNU/Linux >> Tutoriels Linux >  >> Linux

Quel est le package le plus standard, getopt ou getopts (avec un s) ?

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

  1. Utilitaire externe
  2. 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

  1. Fonctionne dans n'importe quel shell POSIX et est portable
  2. Fonctionne bien avec -a -b ainsi que -ab

Linux
  1. Quel interpréteur Shell exécute un script sans Shebang ?

  2. Quels sont les paramètres/variables spéciaux du shell (bash) ?

  3. Gartner sonne dans la nouvelle année avec 2015 Tech Forecast

  4. Quelle commande du shell sh Linux/UNIX renvoie mon répertoire actuel ?

  5. du -h avec plus de décimales

Naviguer dans le shell Bash avec pushd et popd

Comment interroger les informations sur les packages avec le gestionnaire de packages rpm

Comment utiliser la commande RPM (avec exemples)

Qu'est-ce que le Shell sous Linux ?

Quels numéros de signal fonctionnent avec la commande kill ?

Clarification concernant le comportement du script shell avec le tube