Provided by: manpages-es-extra_0.8a-19_all 

NOMBRE
getopt - analiza una línea de comandos (mejorado)
SINOPSIS
getopt optstring parameters
getopt [options] [--] optstring parameters
getopt [options] -o|--options optstring [options] [--] parameters
DESCRIPCIÓN
getopt se usa para partir (analizar) las opciones de las líneas de comandos para un fácil análisis por
parte de los procedimientos del shell, y para identificar las opciones legales. Usa las rutinas
getopt(3) de GNU para hacerlo.
Los parámetros con los que se llama a getopt se pueden dividir en dos partes: opciones que modifican la
manera en la que getopt analizará (options y -o|--options optstring en la SINOPSIS), y los parámetros que
deben ser analizados (parameters en la SINOPSIS).
La segunda parte comenzará en el primer parámetro que no sea una opción, o después de la primera
aparición de `--'. Si las opciones `-o' o `--options' no se encuentran en la primera parte, el primer
parámetro de la segunda parte se interpreta como la cadena de opciones cortas.
Si la variable de entorno GETOPT_COMPATIBLE está definida, o si su primer parámetro no es una opción (no
comienza por un `-', entonces se toma el primer formato descrito en la SINOPSIS), getopt generará una
salida compatible con esta u otras versiones de getopt(1). Todavía se realizará el reordenamiento de
parámetros y el reconocimiento de argumentos opcionales (ver la sección COMPATIBILIDADES para más
información).
Las implementaciones tradicionales de getopt(1) son incapaces de soportar los espacios en blanco y otros
caracteres especiales (específicos del shell) en argumentos y parámetros libres. Para resolver este
problema, esta implementación puede generar salida entrecomillada ( N. del T. quoted ) que puede ser, a
su vez, tratada por el shell (típicamente usando el comando eval ). Esto tiene el efecto de preservar
dichos caracteres, pero debe llamarse a getopt de una manera no compatible con otras versiones (el
segundo y tercer formato en la SINOPSIS). Para determinar cuando esta versión mejorada de getopt(1) está
instalada, puede usarse la opción (-T) que realiza dicha prueba.
OPCIONES
-a, --alternative
Permitir que las opciones largas comiencen con un solo `-'.
-h, --help
Genera como salida una guia de uso y termina correctamente. No se genera ninguna otra salida.
-l, --longoptions longopts
Las opciones largas (más de un carácter) para ser analizadas. Pueden especificarse más de una
opción al mismo tiempo, separándolas con comas. Esta opción puede darse más de una vez, ya que
longopts es acumulativa. Cada nombre de opción larga en longopts puede ir secundado por dos
puntos (:) para indicar que es un argumento requerido, y por doble dos puntos (::) para indicar
que es un argumento opcional.
-n, --name progname
El nombre que será usado por las rutinas getopt(3) cuando generen algún error. Nótese que los
errores de getopt(1) son todavía generados tal y como se obtienen de getopt.
-o, --options shortopts
Las opciones cortas (un solo carácter) para ser analizadas. Si esta opción no se encuentra, el
primer parámetro de getopt que no comience por un `-' (y no sea un argumento opcional) es usado
como la cadena de opciones cortas. Cada carácter de una opción corta en shortopts puede ir
secundada por dos puntos (:) para indicar que es un argumento requerido, y por doble dos puntos
(::) para indicar que es un argumento opcional. El primer carácter de shortopts puede ser `+' o
`-' para influenciar sobre la manera en que las opciones son pasadas y la salida es generada (ver
la sección MODOS DE EXPLORACIÓN para más detalles).
-q, --quiet
Deshabilita la salida de errores por parte de getopt(3).
-Q, --quiet-output
No genera la salida normal. getopt(3) sigue generando errores a menos que no se use -q.
-s, --shell shell
Establece las convenciones de entrecomillado para cada tipo de shell. Si el argumento -s no se
encuentra, se utilizan las convenciones de BASH `sh' `bash', `csh', y `tcsh'.
-u, --unquoted
No produce salida entrecomillada. Nótese que los espacios en blanco y los caracteres especiales
(dependientes del shell) pueden causar estragos en este modo (tal y como se producen en otras
implementaciones de getopt(1) ).
-T --test
Prueba si su getopt(1) es esta versión mejorada o una versión antigua. No genera ningún tipo de
salida y devuelve un código de error 4. Otras implementaciones de getopt(1), y esta versión si la
variable de entorno GETOPT_COMPATIBLE está definida, retornan `--' y un código de error 0.
-V, --version
Genera información sobre la versión y finaliza satisfactoriamente. No se genera ninguna otra
salida.
ANÁLISIS
Esta sección especifica el formato de la segunda parte de los parámetros de getopt (los parameters en la
SINOPSIS). La siguiente sección (SALIDA) describe la salida que se genera. Estos parámetros serán los
que típicamente se usen al llamar a un programa del shell. Debe tenerse cuidado de que cada parámetro
con el que se llamó al fichero de comandos del shell corresponda exactamente con un parámetro de la lista
de parámetros de getopt (véase los EJEMPLOS). Todo el análisis es llevado a cabo por las rutinas
getopt(3) de GNU.
Los parámetros son pasados de izquierda a derecha. Cada parámetro es clasificado como una opción corta,
una opción larga, un argumento de una opción, o un parámetro libre.
Una opción corta es un `-' seguido por un carácter de una opción corta. Si la opción tiene un argumento
requerido, deberá aparecer justo después del carácter de la opción o como el siguiente parámetro (por
ejemplo, separados por espacios en blanco en la línea de comandos). Si la opción tiene un argumento
opcional, deberá aparecer justo después del carácter de la opción si es que existe.
Es posible especificar varias opciones cortas después de un `-', siempre y cuando todas (exceptuando
posiblemente la última) no necesite argumentos requeridos o opcionales.
Una opción larga normalmente comienza por `--' seguido por el nombre de la opción.Si la opción tiene un
argumento requerido,
deberá aparecer justo después del nombre de la opción, separado por un `=', o como el siguiente
argumento (por ejemplo separado por espacios en blanco en la línea de comandos).Si la opción tiene un
argumento opcional, deberá aparecer justo después del nombre de la opción, separado por `=', si es que
existe, (si se añade el `=' pero nada detrás de el, se interpretará como si no existiera ningún
argumento; este es un ligero fallo, véase la sección FALLOS). Las opciones largas pueden ser abreviadas,
siempre y cuando la abreviación no sea ambigua.
Cualquier parámetro que no comience por un `-', y no sea un argumento requerido de una opción previa,
será interpretado como un parámetro libre. Cualquier parámetro después de un `--' aislado será
interpretado como un parámetro libre.
Si la variable de entorno POSIXLY_CORRECT está definida, o si el carácter de una opción corta comienza
por un `+', los restantes parámetros son interpretados como parámetros libres tan pronto como sea
encontrado el primero de los parámetros libres.
SALIDA
Se genera una salida por cada elemento descrito en la sección anterior. Se realiza en el mismo orden en
el que los elementos son especificados en la entrada, exceptuando los parámetros libres. La salida puede
generarse en modo compatible ( sin entrecomillado ) , o en un modo en el que los espacios en blanco y
otros caracteres especiales entre argumentos y parámetros libres son preservados (véase ENTRECOMILLADO).
Cuando la salida es procesada en un fichero de comandos del shell , aparecerá compuesta por distintos
elementos que pueden ser tratados uno a uno (usando el comando shift existente el la mayoría de los
lenguajes de shell). Esto no funciona completamente en el modo sin entrecomillado, ya que los elementos
pueden ser divididos por lugares inesperados si contienen espacios en blanco o caracteres especiales.
Si hay problemas durante el análisis de los parámetros, por ejemplo como consecuencia de no encontrar un
argumento requerido o de una opción no reconocida, se generará un error en stderr, no aparecerá en la
salida el elemento en discordia, y se devolverá un código de error diferente de cero.
Para una opción corta, la salida consta de un simple `-' y el carácter de la opción. Si la opción tiene
un argumento, el siguiente parámetro se tomará como el argumento. Si la opción necesita de un argumento
opcional, pero no se ha encontrado ninguno, el siguiente parámetro se generará pero se encontrará vacío
en el formato entrecomillado, y no se generará ese segundo parámetro en el formato no entrecomillado
(compatible). Nótese que la mayoría de las otras implementaciones de getopt(1) no soportan argumentos
opcionales.
Si se especificaran más de una opción después de un `-', cada una se presentaría en la salida como un
parámetro independiente.
Para una opción larga, se generará el `--' y el nombre completo de la opción como un único parámetro.
Esto se hace indistintamente de que la opción estuviera abreviada o fuera especificada con un `-' en la
entrada. Los argumentos se manejan como con las opciones cortas.
Normalmente, la salida de los parámetros libres no se generará hasta que todas las opciones y sus
argumentos hayan sido generadas. Entonces se generará un `--' como si fuera un solo parámetro , y después
los parámetros libres en el orden en que se encontraron, cada uno como un parámetro independiente. Solo
si el primer carácter de la cadena de opciones cortas fuera un solo `-', la salida de los parámetros
libres se generaría en el lugar en que fueron encontrados en la entrada (esto no está soportado si se usa
el primer formato que aparece en la SINOPSIS ; en este caso todas las ocurrencias anteriores de `-' y `+'
son ignoradas).
ENTRECOMILLADO (QUOTING)
En el modo compatible, los espacios en blanco o caracteres `especiales' en los argumentos o parámetros
libres no son tratados correctamente. Dado que la salida alimenta al fichero de comandos del shell, este
programa no sabe como se supone que la entrada es troceada en los diferentes parámetros. Para solventar
el problema, esta implementación ofrece el entrecomillado. La idea es que la salida es generada con
comillas encerrando a cada parámetro. Cuando esta salida alimenta al shell (típicamente por el comando
eval del intérprete), se particiona correctamente en los diferentes parámetros.
El entrecomillado no se encontrará activado si la variable de entorno GETOPT_COMPATIBLE está definida, si
se usa la primera forma de la SINOPSIS , o si la opción `-u' es encontrada.
Cada tipo de shell usa convenciones de entrecomillado diferentes. Pero puede usarse la opción `-s' para
seleccionar el shell que esté usando. Actualmente son soportados los siguientes: `sh', `bash', `csh' y
`tcsh'. Actualmente, solo se distinguen dos `tipos': las convenciones de entrecomillado del tipo sh y
las del tipo csh. Probablemente si usa algún otro lenguaje de shell, uno de estos dos tipos pueda
servirle.
MODOS DE EXPLORACIÓN
El primer carácter de la cadena de opciones cortas debe ser un `-' o un `+' para indicar el modo de
exploración especial. Si se una la primera forma que aparece en la SINOPSIS son ignoradas; aun así, la
variable de entorno POSIXLY_CORRECT es examinada, téngase en cuenta.
Si el primer carácter es `+', o si la variable de entorno POSIXLY_CORRECT está definida, el análisis
finaliza tan pronto como en primer parámetro libre (por ejemplo un parámetro que no comience por un `-')
es encontrado y no es un argumento de alguna opción. Los restantes parámetros son interpretados como
parámetros libres.
Si el primer carácter es un `-', la salida de los parámetros libres se realiza en el orden en que son
encontrados; en el modo normal, se agrupan al final de la salida después de generar un parámetro
consistente en un único `--'. Nótese que este parámetro `--' se genera igualmente, pero siempre será el
último parámetro en este modo de exploración.
COMPATIBILIDADES
Esta versión de getopt(1) ha sido escrita para ser tan compatible como sea posible con otras versiones.
Normalmente solo debe reemplazar aquellas por esta nueva versión sin ningún otro cambio, y con algunas
ventajas.
Si el primer carácter del primer parámetro de getopt no es un `-', getopt entra en el modo compatible.
Entonces su primer parámetro será interpretado como la cadena de opciones cortas, y los restantes
argumentos serán analizados. Sigue manteniéndose el reordenamiento de parámetros (por ejemplo los
parámetros libres aparecen al final de la salida), a menos que la variable POSIXLY_CORRECT esté definida.
La variable de entorno GETOPT_COMPATIBLE fuerza a getopt a entrar en el modo compatible. Definiendo al
mismo tiempo esta variable de entorno y POSIXLY_CORRECT se ofrece una compatibilidad al 100% para
programas `problemáticos'. Aunque normalmente no es necesario.
En el modo compatible, los primeros caracteres `-' y `+' en la cadena de opciones cortas son ignorados.
VALOR DEVUELTO
getopt devuelve un código de error 0 si el análisis ha sido satisfactorio, 1 si getopt(3) retorna
errores, 2 si no es capaz de entender sus propios parámetros, 3 si un error interno ha ocurrido (como
falta de memoria), y 4 si es llamado con -T.
EJEMPLOS
Se ofrecen programas de ejemplo para (ba)sh y (t)csh con la distribución de getopt(1) , y se encontrarán
instalados opcionalmente en /usr/local/lib/getopt o /usr/lib/getopt.
ENTORNO
POSIXLY_CORRECT
Esta variable de entorno es examinada por las rutinas de getopt(3) un parámetro que no es una
opción o un argumento de una opción. Los restantes parámetros son interpretados como parámetros
libres, aunque comiencen por un `-'.
GETOPT_COMPATIBLE
Fuerza a getopt a usar el primer formato de llamada tal y como se especifica en la SINOPSIS.
FALLOS
getopt(3) puede analizar opciones largas con argumentos opcionales dados como un argumento opcional vacío
(pero no puede hacerlo con opciones cortas). Este getopt(1) trata a los argumentos opcionales vacíos
como si no estuvieran presentes.
AUTOR
Frodo Looijaard <frodol@dds.nl>
VÉASE TAMBIÉN
getopt(3), bash(1), tcsh(1).
Linux 31 Mayo 1997 GETOPT(1)