linux:scripts:getopts

Diferències

Ací es mostren les diferències entre la revisió seleccionada i la versió actual de la pàgina.

Enllaç a la visualització de la comparació

Següent revisió
Revisió prèvia
linux:scripts:getopts [06/09/2018 00:30] – creat matelinux:scripts:getopts [19/01/2019 12:06] (actual) – [uso] mate
Línia 1: Línia 1:
 = getopts = getopts
 +
 +buen tutorial: [[https://wiki.bash-hackers.org/howto/getopts_tutorial]]
 +
 +== uso
 +  * la cadena que acompaña a la instrucción getopts indica las opciones disponibles
 +  * ''getopts OPTSTRING VARNAME [ARGS...]''
 +    * OPTSTRING:
 +      * ''h'': comprueba la opción **-h sin parámetros**. Da error en opciones no soportadas
 +      * ''h:'': comprueba la opción **-h con parámetros**. Da error en opciones no soportadas
 +      * ''abc'': comprueba las opciones **-a**, **-b**, **-c**. Da error en opciones no soportadas
 +      * '':abc'': comprueba las opciones **-a**, **-b**, **-c**. NO da error en opciones no soportadas
 +      * resumiendo:
 +        * '':'' al principio de la cadena de OPTSTRING silencia opciones no soportadas
 +        * '':'' detrás de una opción hace que espere parámetro
 +    * al procesar VARNAME (en un case):
 +      * ''\?'' : es usado para las opciones no válidas
 +      * '':'' : es usado para las opciones que requieren parámetros pero no los llevan
 +      * ''a|b|c'': procesa en la misma instrucción las 3 opciones (si así lo necesiamos)
 +      * ''h|*'' : el **%%*%%** se usa como comodín para opciones que no se han definido (sin sentido con el uso de **?**)
 +
 +/via: [[https://stackoverflow.com/questions/16483119/an-example-of-how-to-use-getopts-in-bash]]
 +
 +== ejemplos
   * [[https://stackoverflow.com/questions/16483119/an-example-of-how-to-use-getopts-in-bash]]   * [[https://stackoverflow.com/questions/16483119/an-example-of-how-to-use-getopts-in-bash]]
  
-<code bash>+<code bash; primer ejemplo>
 #!/bin/bash #!/bin/bash
  
Línia 29: Línia 52:
 echo "s = ${s}" echo "s = ${s}"
 echo "p = ${p}" echo "p = ${p}"
 +</code>
 +
 +<code bash>
 +#!/bin/bash
 +
 +while getopts ":a:" opt; do
 +  case $opt in
 +    a)
 +      echo "-a was triggered, Parameter: $OPTARG" >&2
 +      ;;
 +    \?)
 +      echo "Invalid option: -$OPTARG" >&2
 +      exit 1
 +      ;;
 +    :)
 +      echo "Option -$OPTARG requires an argument." >&2
 +      exit 1
 +      ;;
 +  esac
 +done
 </code> </code>
  • linux/scripts/getopts.1536219001.txt.gz
  • Darrera modificació: 06/09/2018 00:30
  • per mate