which es la herramienta equivocada. getopts suele ser también un incorporado:
Desde getopts afecta el entorno de ejecución de shell actual, generalmente se proporciona como un shell incorporado normal.
~ 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 está utilizando un script de shell, puede confiar con seguridad en getopts . Puede haber otras razones para favorecer uno u otro, pero getopts es estándar .
Ver también:¿Por qué no usar "cuál"? ¿Qué usar entonces?
Yo también preferiría getopts más de getopt por las siguientes razones:
getopt Contras
- Utilidad externa
- No se pueden manejar cadenas de argumentos vacías o argumentos con espacios en blanco incrustados en la versión tradicional
getopts Ventajas
- Funciona en cualquier shell POSIX y es portátil
- Funciona bien con
-a -basí como-ab