GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cuál es el paquete más estándar, getopt o getopts (con s)?

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

  1. Utilidad externa
  2. No se pueden manejar cadenas de argumentos vacías o argumentos con espacios en blanco incrustados en la versión tradicional

getopts Ventajas

  1. Funciona en cualquier shell POSIX y es portátil
  2. Funciona bien con -a -b así como -ab

Linux
  1. ¿Qué intérprete de Shell ejecuta un script sin Shebang?

  2. ¿Cuáles son los parámetros/variables especiales de Shell (bash)?

  3. ¿Cómo cambio el nombre de los archivos con espacios usando el shell de Linux?

  4. ¿Qué comando en el shell sh de Linux/UNIX devuelve mi directorio actual?

  5. du -h con más decimales

Haz matemáticas en el shell de Linux con GNU bc

Cómo consultar información de paquetes con el administrador de paquetes rpm

Cómo usar el comando RPM (con ejemplos)

¿Qué es el Shell en Linux?

¿Qué números de señal funcionan con el comando de matar?

¿Cómo puedo ocultar la salida de una aplicación de shell en Linux?