Provided by:
manpages-es-extra_0.8a-17_all 
NOMBRE
getopt - analiza una linea de comandos (mejorado)
SINOPSIS
getopt optstring parameters
getopt [options] [--] optstring parameters
getopt [options] -o|--options optstring [options] [--] parameters
DESCRIPCI'ON
getopt se usa para partir (analizar) las opciones de las lineas de
comandos para un facil analisis por parte de los procedimientos del
shell, y para identificar las opciones legales. Usa las rutinas
getopt(3) de GNU para hacerlo.
Los parametros con los que se llama a getopt se pueden dividir en dos
partes: opciones que modifican la manera en la que getopt analizara
(options y -o|--options optstring en la SINOPSIS), y los parametros que
deben ser analizados (parameters en la SINOPSIS).
La segunda parte comenzara en el primer parametro que no sea una
opcion, o despues de la primera aparicion de `--'. Si las opciones
`-o' o `--options' no se encuentran en la primera parte, el primer
parametro de la segunda parte se interpreta como la cadena de opciones
cortas.
Si la variable de entorno GETOPT_COMPATIBLE esta definida, o si su
primer parametro no es una opcion (no comienza por un `-', entonces se
toma el primer formato descrito en la SINOPSIS), getopt generara una
salida compatible con esta u otras versiones de getopt(1). Todavia se
realizara el reordenamiento de parametros y el reconocimiento de
argumentos opcionales (ver la seccion COMPATIBILIDADES para mas
informacion).
Las implementaciones tradicionales de getopt(1) son incapaces de
soportar los espacios en blanco y otros caracteres especiales
(especificos del shell) en argumentos y parametros libres. Para
resolver este problema, esta implementacion puede generar salida
entrecomillada ( N. del T. quoted ) que puede ser, a su vez, tratada
por el shell (tipicamente 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 version mejorada
de getopt(1) esta instalada, puede usarse la opcion (-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 (mas de un caracter) para ser analizadas.
Pueden especificarse mas de una opcion al mismo tiempo,
separandolas con comas. Esta opcion puede darse mas de una vez,
ya que longopts es acumulativa. Cada nombre de opcion 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 sera usado por las rutinas getopt(3) cuando
generen algun error. Notese que los errores de getopt(1) son
todavia generados tal y como se obtienen de getopt.
-o, --options shortopts
Las opciones cortas (un solo caracter) para ser analizadas. Si
esta opcion no se encuentra, el primer parametro de getopt que
no comience por un `-' (y no sea un argumento opcional) es usado
como la cadena de opciones cortas. Cada caracter de una opcion
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
caracter de shortopts puede ser `+' o `-' para influenciar sobre
la manera en que las opciones son pasadas y la salida es
generada (ver la seccion MODOS DE EXPLORACI'ON para mas
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. Notese 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 version mejorada o una version
antigua. No genera ningun tipo de salida y devuelve un codigo de
error 4. Otras implementaciones de getopt(1), y esta version si
la variable de entorno GETOPT_COMPATIBLE esta definida, retornan
`--' y un codigo de error 0.
-V, --version
Genera informacion sobre la version y finaliza
satisfactoriamente. No se genera ninguna otra salida.
AN'ALISIS
Esta seccion especifica el formato de la segunda parte de los
parametros de getopt (los parameters en la SINOPSIS). La siguiente
seccion (SALIDA) describe la salida que se genera. Estos parametros
seran los que tipicamente se usen al llamar a un programa del shell.
Debe tenerse cuidado de que cada parametro con el que se llamo al
fichero de comandos del shell corresponda exactamente con un parametro
de la lista de parametros de getopt (vease los EJEMPLOS). Todo el
analisis es llevado a cabo por las rutinas getopt(3) de GNU.
Los parametros son pasados de izquierda a derecha. Cada parametro es
clasificado como una opcion corta, una opcion larga, un argumento de
una opcion, o un parametro libre.
Una opcion corta es un `-' seguido por un caracter de una opcion corta.
Si la opcion tiene un argumento requerido, debera aparecer justo
despues del caracter de la opcion o como el siguiente parametro (por
ejemplo, separados por espacios en blanco en la linea de comandos). Si
la opcion tiene un argumento opcional, debera aparecer justo despues
del caracter de la opcion si es que existe.
Es posible especificar varias opciones cortas despues de un `-',
siempre y cuando todas (exceptuando posiblemente la ultima) no necesite
argumentos requeridos o opcionales.
Una opcion larga normalmente comienza por `--' seguido por el nombre de
la opcion.Si la opcion tiene un argumento requerido,
debera aparecer justo despues del nombre de la opcion, separado por un
`=', o como el siguiente argumento (por ejemplo separado por espacios
en blanco en la linea de comandos).Si la opcion tiene un argumento
opcional, debera aparecer justo despues del nombre de la opcion,
separado por `=', si es que existe, (si se anade el `=' pero nada
detras de el, se interpretara como si no existiera ningun argumento;
este es un ligero fallo, vease la seccion FALLOS). Las opciones largas
pueden ser abreviadas, siempre y cuando la abreviacion no sea ambigua.
Cualquier parametro que no comience por un `-', y no sea un argumento
requerido de una opcion previa, sera interpretado como un parametro
libre. Cualquier parametro despues de un `--' aislado sera interpretado
como un parametro libre.
Si la variable de entorno POSIXLY_CORRECT esta definida, o si el
caracter de una opcion corta comienza por un `+', los restantes
parametros son interpretados como parametros libres tan pronto como sea
encontrado el primero de los parametros libres.
SALIDA
Se genera una salida por cada elemento descrito en la seccion anterior.
Se realiza en el mismo orden en el que los elementos son especificados
en la entrada, exceptuando los parametros 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 parametros libres son preservados (vease ENTRECOMILLADO).
Cuando la salida es procesada en un fichero de comandos del shell ,
aparecera compuesta por distintos elementos que pueden ser tratados uno
a uno (usando el comando shift existente el la mayoria 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 analisis de los parametros, por ejemplo
como consecuencia de no encontrar un argumento requerido o de una
opcion no reconocida, se generara un error en stderr, no aparecera en
la salida el elemento en discordia, y se devolvera un codigo de error
diferente de cero.
Para una opcion corta, la salida consta de un simple `-' y el caracter
de la opcion. Si la opcion tiene un argumento, el siguiente parametro
se tomara como el argumento. Si la opcion necesita de un argumento
opcional, pero no se ha encontrado ninguno, el siguiente parametro se
generara pero se encontrara vacio en el formato entrecomillado, y no se
generara ese segundo parametro en el formato no entrecomillado
(compatible). Notese que la mayoria de las otras implementaciones de
getopt(1) no soportan argumentos opcionales.
Si se especificaran mas de una opcion despues de un `-', cada una se
presentaria en la salida como un parametro independiente.
Para una opcion larga, se generara el `--' y el nombre completo de la
opcion como un unico parametro. Esto se hace indistintamente de que la
opcion estuviera abreviada o fuera especificada con un `-' en la
entrada. Los argumentos se manejan como con las opciones cortas.
Normalmente, la salida de los parametros libres no se generara hasta
que todas las opciones y sus argumentos hayan sido generadas. Entonces
se generara un `--' como si fuera un solo parametro , y despues los
parametros libres en el orden en que se encontraron, cada uno como un
parametro independiente. Solo si el primer caracter de la cadena de
opciones cortas fuera un solo `-', la salida de los parametros libres
se generaria en el lugar en que fueron encontrados en la entrada (esto
no esta 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 parametros 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 parametros. Para solventar el problema, esta implementacion
ofrece el entrecomillado. La idea es que la salida es generada con
comillas encerrando a cada parametro. Cuando esta salida alimenta al
shell (tipicamente por el comando eval del interprete), se particiona
correctamente en los diferentes parametros.
El entrecomillado no se encontrara activado si la variable de entorno
GETOPT_COMPATIBLE esta definida, si se usa la primera forma de la
SINOPSIS , o si la opcion `-u' es encontrada.
Cada tipo de shell usa convenciones de entrecomillado diferentes. Pero
puede usarse la opcion `-s' para seleccionar el shell que este 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
algun otro lenguaje de shell, uno de estos dos tipos pueda servirle.
MODOS DE EXPLORACI'ON
El primer caracter de la cadena de opciones cortas debe ser un `-' o un
`+' para indicar el modo de exploracion especial. Si se una la primera
forma que aparece en la SINOPSIS son ignoradas; aun asi, la variable de
entorno POSIXLY_CORRECT es examinada, tengase en cuenta.
Si el primer caracter es `+', o si la variable de entorno
POSIXLY_CORRECT esta definida, el analisis finaliza tan pronto como en
primer parametro libre (por ejemplo un parametro que no comience por un
`-') es encontrado y no es un argumento de alguna opcion. Los restantes
parametros son interpretados como parametros libres.
Si el primer caracter es un `-', la salida de los parametros libres se
realiza en el orden en que son encontrados; en el modo normal, se
agrupan al final de la salida despues de generar un parametro
consistente en un unico `--'. Notese que este parametro `--' se genera
igualmente, pero siempre sera el ultimo parametro en este modo de
exploracion.
COMPATIBILIDADES
Esta version de getopt(1) ha sido escrita para ser tan compatible como
sea posible con otras versiones. Normalmente solo debe reemplazar
aquellas por esta nueva version sin ningun otro cambio, y con algunas
ventajas.
Si el primer caracter del primer parametro de getopt no es un `-',
getopt entra en el modo compatible. Entonces su primer parametro sera
interpretado como la cadena de opciones cortas, y los restantes
argumentos seran analizados. Sigue manteniendose el reordenamiento de
parametros (por ejemplo los parametros libres aparecen al final de la
salida), a menos que la variable POSIXLY_CORRECT este 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
`problematicos'. 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 codigo de error 0 si el analisis ha sido
satisfactorio, 1 si getopt(3) retorna errores, 2 si no es capaz de
entender sus propios parametros, 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
distribucion de getopt(1) , y se encontraran 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 parametro que no es una opcion o un argumento de
una opcion. Los restantes parametros son interpretados como
parametros 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 vacio (pero no puede hacerlo con
opciones cortas). Este getopt(1) trata a los argumentos opcionales
vacios como si no estuvieran presentes.
AUTOR
Frodo Looijaard <frodol@dds.nl>
V'EASE TAMBI'EN
getopt(3), bash(1), tcsh(1).