.\" -*- coding: UTF-8 -*- .de zZ .. .\" .\" MAN PAGE COMMENTS to .\" .\" Chet Ramey .\" Case Western Reserve University .\" chet.ramey@case.edu .\" .\" Last Change: Mon Sep 19 11:13:21 EDT 2022 .\" .\" bash_builtins, strip all but Built-Ins section .de zY .. .de FN \fI\|\\$1\|\fP .. .\" .\" File Name macro. This used to be `.PN', for Path Name, .\" but Sun doesn't seem to like that very much. .\" .if !rzZ .nr zZ 0 \" avoid a warning about an undefined register .\" Number register zZ is defined in bash-builtins(7) .\" Number register zY is defined in rbash(1) .\" This man-page is included in them .if !rzY .nr zY 0 \" avoid a warning about an undefined register .if \n(zZ=1 .ig zZ .if \n(zY=1 .ig zY .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH BASH 1 "19 de Septiembre de 2022" "GNU Bash 5.2" .\" .\" There's some problem with having a `@' .\" in a tagged paragraph with the BSD man macros. .\" It has to do with `@' appearing in the }1 macro. .\" This is a problem on 4.3 BSD and Ultrix, but Sun .\" appears to have fixed it. .\" If you're seeing the characters .\" `@u-3p' appearing before the lines reading .\" `possible-hostname-completions .\" and `complete-hostname' down in READLINE, .\" then uncomment this redefinition. .\" .\" .de }1 .\" .ds ]X \&\*(]B\ .\" .nr )E 0 .\" .if !"\$1"" .nr )I \$1n .\" .}f .\" .ll \n(LLu .\" .in \n()Ru+\n(INu+\n()Iu .\" .ti \n(INu .\" .ie !\n()Iu+\n()Ru-\w\*(]Xu-3p \{\*(]X .\" .br\} .\" .el \*(]X\h|\n()Iu+\n()Ru .\" .}f .\" .. .SH NOMBRE bash \- GNU Bourne\-Again SHell (la shell de Bourne otra vez, de GNU) .SH SINOPSIS \fBbash\fP [opciones] [orden | achivo] .SH COPYRIGHT .if n Bash is Copyright (C) 1989-2022 by the Free Software Foundation, Inc. .if t Bash is Copyright \(co 1989-2022 by the Free Software Foundation, Inc. .SH DESCRIPCIÓN \fBBash\fP es un intérprete de lenguage de script compatible con \fBsh\fP que ejecuta órdenes recibidas desde la entrada estándar o desde un archivo. \fBBash\fP también incorpora funcionalidades tomadas de otras shell como \fIKorn\fP y \fIC\fP (\fBksh\fP y \fBcsh\fP). .PP \fBBash\fP está pensado para ser una implementación conforme con la especificación POSIX de Shell y Herramientas, de la IEEE (Grupo de Trabajo 1003.2 de la IEEE). \fBBash\fP puede configurarse para ser conforme a POSIX por defecto. .SH OPCIONES La shell puede ejecutarse con cualquiera de las opciones descritas en la descripción de la orden interna \fBset\fP, incluso la opcion \fB\-o\fP. Además, \fBbash\fP tambień interpreta las siguientes opciones cuando se ejecuta: .PP .PD 0 .TP 10 \fB\-c\fP Con la opción \fB\-c\fP, las órdenes se empiezan a leer a partir del primer argumento \fIorden\fP que no sea una opción. Si hay algún argumento después de \fIorden\fP, el primero de ellos se asignará a \fB$0\fP y el resto a los parámetros posicionales. La asignacióna \fB$0\fP define el nombre de la shell que se usará en los mensajes de error y avisos. .TP \fB\-i\fP Si la opción \fB\-i\fP está presente, la shell es \fIinteractivo\fP. .TP \fB\-l\fP Hace que \fBbash\fP actúe como si se le hubiera llamado como una shell de entrada (consulte .SM \fBLLAMADA\fP más adelante). .TP \fB\-r\fP Si la opción \fB\-r\fP está presente, entonces la shell se pone en modo \fIrestringido\fP (consulte .SM \fBSHELL RESTRINGIDA\fP más adelante). .TP \fB\-s\fP Si la opción \fB\-s\fP está presente, o si no quedan argumentos tras el procesado de las opciones, entonces las órdenes se leen desde la entrada estándar. Esta opción permite definir los parámetros posicionales cuando se llama a una shell interactiva o cuando se reciban datos mediante una tubería. .TP \fB\-v\fP Repite en la salida las líneas de entrada de la shell tras leerlas. .TP \fB\-x\fP Muestra las órdenes y sus argumentos a medida que se ejecutan. .TP \fB\-D\fP Se muestra en la salida estándar una lista de cadenas de caracteres entrecomilladas precedidas por \fB$\fP. Estas cadenas son las que están sujetas a traducción cuando la localización en curso no es \fBC\fP ni \fBPOSIX\fP. Esta opción implica también la \fB\-n\fP; no se ejecuta ninguna orden. .TP \fB[\-+]O [\fP\fIopción_shopt\fP\fB]\fP \fIopción_shopt\fP representa una de las opciones de la shell aceptadas por la orden nativa \fBshopt\fP (consulte \fBÓRDENES NATIVAS DE LA SHELL\fP a continuación). Si está presente \fIopción_shopt\fP, \fB\-0\fP definirá el valor de dicha opción y \fB+0\fP anulará esa definición. Si no está presente \fIopción_shopt\fP, se muestran en pantalla una lista con los nombres y los valores de las opciones aceptadas por \fBshopt\fP. Si se invoca con la opción \fB+0\fP, se muestra una lista apta para su reutilización. .TP \fB\-\-\fP Un \fB\-\-\fP señala el fin de las opciones e inhabilita cualquier posterior procesado de opciones. Cualesquier argumentos tras \fB\-\-\fP se tratan como nombres de fichero y argumentos. Un argumento \fB\-\fP es equivalente a \fB\-\-\fP. .PD .PP \fBBash\fP también interpreta una variedad de opciones multi\-carácter. Estas opciones deben aparecer en la línea de órdenes antes de las opciones monocarácter para que puedan ser reconocidas. .PP .PD 0 .TP \fB\-\-debugger\fP Ejecuta el depurador antes del inicio de la shell. Activa el modo de depuración ampliado (consulte la descripción de la opción \fBextdebug\fP de la orden nativa \fBshopt\fP a continuación). .TP \fB\-\-dump\-po\-strings\fP Equivalente a \fB\-D\fP, pero la salida es en el formato de un fichero \fBpo\fP (objeto portable), del \fIgettext\fP de GNU. .TP \fB\-\-dump\-strings\fP Equivalente a \fB\-D\fP. .TP \fB\-\-help\fP Muestra un mensaje de ayuda y termina. .TP \fB\-\-init\-file\fP \fIarchivo\fP .PD 0 .TP \fB\-\-rcfile\fP \fIarchivo\fP .PD Ejecuta órdenes desde \fIarchivo\fP en vez de hacerlo desde el archivo de inicio estándar \fI/etc/bash.bashrc\fP y el personal en \fI~/.bashrc\fP si la shell es interactiva (consulte .SM \fBLLAMADA\fP más adelante). .TP \fB\-\-login\fP Equivale a \fB\-l\fP. .TP \fB\-\-noediting\fP No utiliza la biblioteca de GNU \fBreadline\fP para leer líneas de órdenes en modo interactivo. .TP \fB\-\-noprofile\fP No lee ni el fichero de arranque de sistema .FN /etc/profile ni ninguno de los ficheros de inicio personales \fI~/.bash_profile\fP, \fI~/.bash_login\fP, ni \fI~/.profile\fP. Por omisión, \fBbash\fP lee estos ficheros cuando se le llama como una shell de entrada (vea .SM \fBLLAMADA\fP más adelante). .TP \fB\-\-norc\fP No lee ni ejecuta el archivo de inicio general \fI/etc/bash.bashrc\fP ni el personal de cada usuario en \fI~/.bashrc\fP si la shell es interactiva. Esta opción está activa de forma predeterminada si se ejecutó la shell mediante \fBsh\fP. .TP \fB\-\-posix\fP Cambia el comportamiento de \fBbash\fP cuando el funcionamiento difiera del estándar POSIX 1003.2, de forma que concuerde con éste(\fIposix mode\fP). Consulte .SM \fBVEASE TAMBIÉN\fP más delante si quiere leer un documento donde se detalla la influencia del modo posix sobre el funcionamiento de bash. .TP \fB\-\-restricted\fP la shell se pone en modo restringido (consulte .SM \fBSHELL RESTRINGIDA\fP más adelante). .TP \fB\-\-verbose\fP Equivale a \fB\-v\fP. .TP \fB\-\-version\fP Muestra información acerca de la versión de esta instancia de \fBbash\fP y finaliza. .PD .SH ARGUMENTOS Si quedan argumentos tras el procesado de las opciones, y no se han dado ni la opción \fB\-c\fP ni la \fB\-s\fP, se supondrá que el primer argumento es el nombre de un archivo que contiene órdenes de la shell. Si \fBbash\fP se llama de esta manera, \fB$0\fP se define con el nombre del archivo, y los parámetros posicionales se definen con los restantes argumentos. \fBBash\fP lee y ejecuta órdenes de este archivo y después finaliza. El estado de salida de \fBbash\fP es el de la última orden ejecutada en el script. Si no se ejecuta ninguna orden, el estado de salida es 0. Primero se intenta abrir el archivo en el directorio actual, si no se encunetra ninguno entonces se buscará en los directorios definidos en el .SM \fBPATH\fP para el script. .SH LLAMADA Una \fIshell de entrada\fP es aquella cuyo primer carácter del argumento cero es un \fB\-\fP, o que ha sido llamada con la opción \fB\-\-login\fP. .PP Una shell \fIinteractiva\fP es aquella que se inició sin argumentos sin opciones (salvo que se especifique \fB\-s\fP) y sin la opción \fB\-c\fP cuya entrada y error estandar están conectadas a terminales (según se determina en \fIisatty\fP(3)), o uno iniciado con la opción \fB\-i\fP. .SM \fBPS1\fP está definido y \fB$\-\fP incluye \fBi\fP si \fBbash\fP es interactivo, permitiendo así a un script de shell o a un archivo de inicio la comprobación de este estado. .PP Los siguientes párrafos describen cómo \fBbash\fP ejecuta sus archivos de inicio. Si cualquiera de los archivo existe pero no puede leerse, \fBbash\fP informa de un error. Las tildes de la ñ se expanden en nombres de archivos como se describe más adelante en \fBExpansión de la tilde\fP en la sección .SM \fBEXPANSIÓN\fP. .PP Cuando \fBbash\fP se llama como una shell de entrada interactiva, primero lee y ejecuta órdenes desde el archivo \fI/etc/profile\fP, si es que existe. Tras leer este archivo, buscará \fI~/.bash_profile\fP, \fI~/.bash_login\fP, y \fI~/.profile\fP, en ese orden, ejecutando las órdenes del primero de ellos que exista y se pueda leer. La opción \fB\-\-noprofile\fP evitará estas acciones. .PP Cuando una shell de entrada termina o una shel de entrada no interactiva ejecuta la orden natia \fBexit\fP, \fBbash\fP ejecutará las órdenes contenidas en \fI~/.bash_logout\fP, si existiese. .PP Cuando se inicia una shell interactiva no de inicio, \fBbash\fP lee y ejecuta las órdenes que encuentra en \fI~/.bashrc\fP, si existiese. Esto puede evitarse mediante la opción \fB\-\-norc\fP. La opción \fB\-\-rcfile\fP \fIarchivo\fP forzará a \fBbash\fP a leer y ejecutar órdenes desde \fIarchivo\fP en lugar de hacerlo desde \fI~/.bashrc\fP. .PP Cuando \fBbash\fP se arranque de forma no interactiva, por ejemplo para ejecutar un script de la shell, busca la variable .SM \fBBASH_ENV\fP en el entorno, expande su valor si está definida, y utiliza el valor expandido como el nombre de un fichero a leer y ejecutar. \fBBash\fP se comporta como si se ejecutaran las siguientes órdenes: .sp .5 .RS .if t \f(CWif [ \-n "$BASH_ENV" ]; then . "$BASH_ENV"; fi\fP .if n if [ \-n "$BASH_ENV" ]; then . "$BASH_ENV"; fi .RE .sp .5 pero el valor de la variable .SM \fBPATH\fP no se emplea para buscar el nombre del fichero. .PP Si \fBbash\fP se ejecuta con con el nombre \fBsh\fP, intentará imitar el comportamiento de arranque de versiones antiguas de \fBsh\fP tanto como sea posible, pero sin salirse del estándar POSIX. Cuando se ejecuta como una shell interactiva de entrada, primero intentará ejecutar las órdenes de \fI/etc/profile\fP y \fI~/.profile\fP, en ese orden. La opción \fB\-\-noprofile\fP anulará esta acción. Cuando se ejecuta como una shell interactiva con el nombre \fBsh\fP, \fBbash\fP busca la variable .SM \fBENV\fP, expande su valor si está definida, y emplea el valor expandido como el nombre de un archivo a ejecutar. Como una shell llamada como \fBsh\fP no intentará ejecutar órdenes desde cualquier otro archivo de inicio, la opción \fB\-\-rcfile\fP no tiene efecto. Una shell no interactiva ejecutada con el nombre \fBsh\fP no intenta leer ningún archivo de inicio. Cuando se ejecuta como \fBsh\fP, \fBbash\fP entra en modo \fIposix\fP después de leer los ficheros de inicio. .PP Cuando \fBbash\fP se arranca en modo \fIposix\fP, como ocurre cuando se da la opción de línea de órdenes \fB\-\-posix\fP, sigue el estándar POSIX para los ficheros de arranque. En este modo, los shells interactivos expanden la variable .SM \fBENV\fP y se leen y ejecutan órdenes desde el fichero cuyo nombre es el valor expandido de dicha variable. No se lee ningún otro fichero de arranque. .PP \fBBash\fP intenta determinar cuándo se está ejecutando con su entrada estándar conectada a una red como si se ejecutase con el antiguo demonio remoto de la shell, generalmente \fIrshd\fP o \fIsshd\fP. Si \fBbash\fP determina que está siendo ejecutado de este modo, lee y ejecuta órdenes desde \fI/etc/bash.bashrc\fP y \fI~/.bashrc\fP, si existen y tienen permiso de lectura. Esto no lo hará si se ejecuta mediante la orden \fBsh\fP. La opción \fB\-\-norc\fP puede emplearse para inhibir este comportamiento, y la opción \fB\-\-rcfile\fP puede utilizarse para forzar la lectura de otro archivo, pero ni \fIrshd\fP, ni \fIsshd\fP suelen invocar la shell con estas opciones ni permitir su uso. .PP Si se inicia la shell con un id de usuario (o grupo) efectivo distinto del id de usuario (o grupo) real y no se indica la opción \fB\-p\fP, no se leerá ningún archivo de inicio, no se heredarán las funciones de la shell del entorno, si están presentes en el entorno se ignorarán las variables .SM \fBSHELLOPTS\fP, .SM \fBBASHOPTS\fP, .SM \fBCDPATH\fP y .SM \fBGLOBIGNORE\fP y el id de usuario efectivo será el mismo del usuario real. Si se indica la opción \fB\-p\fP, se hará lo mismo salvo que el id de usuario efectivo no se cambia. .SH DEFINICIONES Las siguientes definiciones se usan a través del resto de este documento. .PD 0 .TP \fBblanco\fP Un espacio en blanco o tabulación (tab). .TP \fBpalabra\fP Una secuencia de caracteres considerados por la shell como una sola unidad. También se conoce como un \fBlexema\fP (token). .TP \fBnombre\fP Una \fIpalabra\fP que consiste solamente en caracteres alfanuméricos y subrayados, y comienza con un carácter alfabético o un subrayado. También se llama \fBidentificador\fP. .TP \fBmetacarácter\fP Un carácter que, cuando no está entrecomillado, separa palabras. Uno de los siguientes: .br .RS .PP .if t \fB| & ; ( ) < > space tab newline\fP .if n \fB| & ; ( ) < > space tab newline\fP .RE .TP \fBoperador de control\fP Un \fIlexema\fP que realiza una función de control. Es uno de los siguientes símbolos: .RS .PP .if t \fB|| & && ; ;; ;& ;;& ( ) | |& \fP .if n \fB|| & && ; ;; ;& ;;& ( ) | |& \fP .RE .PD .SH "PALABRAS RESERVADAS" Las \fIPalabras reservadas\fP son palabras que tienen un significado especial para la shell. Las siguientes palabras se reconocen como reservadas cuando no van entrecomilladas y/o son la primera palabra de una orden simple (vea .SM \fBGRAMÁTICA DE LA SHELL\fP a continuación) o la tercera palabra de una orden \fBcase\fP o \fBselect\fP (solo sería válido \fBin\fP) o de la orden \fBfor\fP (solo \fBin\fP y \fBdo\fP serían válidos): .if t .RS .PP .B .if n ! case coproc do done elif else esac fi for function if in select then until while { } time [[ ]] .if t ! case coproc do done elif else esac fi for function if in select then until while { } time [[ ]] .if t .RE .SH "GRAMÁTICA DE LA SHELL" Esta sección describe la sintaxis de diversas formas de órdenes de la shell. .SS "Órdenes simples" Una \fIorden simple\fP es una secuencia de asignaciones opcionales de variables seguida por palabras separadas por \fBblancos\fP y redirecciones, y terminadas por un \fIoperador de control\fP. La primera palabra especifica la orden a ser ejecutada, se pasa como argumento cero. Las palabras restantes se pasan como argumentos a la orden invocada. .PP El valor devuelto de una \fIorden simple\fP es su estado de salida, ó 128+\fIn\^\fP si la orden ha terminado debido a la señal \fIn\fP. .SS Tuberías Una \fItubería\fP es una secuencia de una o más órdenes separadas por uno de los operadores de control \fB|\fP o \fB|&\fP. El formato de una tubería es: .RS .PP [\fBtime\fP [\fB\-p\fP]] [ ! ] \fIorden1\fP [ [\fB|\fP\(bv\fB|&\fP] \fIorden2\fP ... ] .RE .PP La salida estándar de \fIorden1\fP está conectada mediante una tubería a la entrada estándar de \fIorden2\fP. Dicha conexión se reliza antes de cualquier redirección que defina la \fIorden1\fP (consulte .SM \fBREDIRECCIÓN\fP más adelante). Si se emplea \fB|&\fP la salida de error estándar de \fIorden1\fP también se conectará a la entrada estándar de \fIorden2\fP junto con su salida estándar a través de la tubería; esto es una abreviatura de \fB2>&1 |\fP. Esta redirección implícita de la salida de error estándar hacia la salida estándar se realiza después de cualquier redirección definida mediante \fIorden1\fP. .PP El estado de salida de una tubería será el de la última orden salvo que la opción \fBpipefail\fP esté activada, en cuyo caso el estado de salida será el de la última (más a la derecha) orden que conforme la tubería. Si se precede la tubería de la palabra reservada \fB!\fP, su estado de salida será la negación lógica del estado de salida descrito para los casos anteriores. La shell esperará que finalice la ejecución de la última orden para devolver un estado de salida. .PP Si la palabra reservada \fBtime\fP precede una tubería, se informa del tiempo transcurrido, así como del de usuario y sistema, consumido en la ejecución de la tubería, cuando ésta termina. La opción \fB\-p\fP cambia el formato de salida al especificado por POSIX. Cuando la shell está en \fImodo posix\fP, no reconoce \fBtime\fP como palabra reservada si el siguiente conjunto de opciones comienza por "\-". La variable .SM \fBTIMEFORMAT\fP puede definir la forma en que se muestran las temporizaciones. Consulte .SM \fBTIMEFORMAT\fP en el apartado \fBVariables de la Shell\fP. .PP Cuando la shell está en \fImodo posix\fP, \fBtime\fP puede ir seguido de un salto de línea. En cuyo caso, se muestra la totalidad del tiempo de usuario y sistema consumido por la shell y sus descendientes. Puede usarse la variable .SM \fBTIMEFORMAT\fP para definir el formato de la información de tiempo. .PP Cada orden que forme parte de una tubería se ejecuta en un proceso separado, es decir, en una subshell. Consulte .SM \fBENTORNO DE EJECUCIÓN DE ÓRDENES\fP si precisa información acerca del entorno en una subshell. Si la opción \fBlastpipe\fP está activada mediante la orden nativa \fBshopt\fP (vea la descripción de \fBshopt\fP a continuación), el último elemento de una tubería puede ser ejecutado por la propia shell cuando no está activado el control de tareas. .SS Listas Una \fIlista\fP es una secuencia de una o más tuberías separadas por uno de los operadores \fB;\fP, \fB&\fP, \fB&&\fP, o \fB||\fP, y terminada opcionalmente por uno de \fB;\fP, \fB&\fP, o \fB\fP. .PP De estos operadores de listas, \fB&&\fP y \fB||\fP tienen igual precedencia. Le siguen \fB;\fP y \fB&,\fP que también tienen igual precedencia. .PP Puede aparece uno o varios saltos de línea en lugar de un punto y coma para delimitar órdenes en una \fIlista\fP .PP Si una orden se termina mediante el operador de control \fB&\fP, la shell ejecuta la orden en \fIsegundo plano\fP en una subshell. La shell no espera que la orden acabe, y el estado de salida será 0. Esto es lo que se denomina órdenes \fIasíncronas\fP. Las órdenes separadas por un \fB;\fP se ejecutan secuencialmente; la shell espera que cada orden termine, por orden. En este caso, el estado de salida será el de la última orden ejecutada. .PP Las listas AND y OR son secuencias formadas por una o más tuberías separadas por los operadores de control \fB&&\fP y \fB||\fP, respectivamente. Se comienzan a interpretar por la izquierda. Una lista AND tiene el siguiente formato: .RS .PP \fIorden1\fP \fB&&\fP \fIorden2\fP .RE .PP \fIorden2\fP se ejecuta si y solo si \fIorden1\fP devuelve un estado de salida 0. .PP Una lista O tiene el siguiente formato .RS .PP \fIorden1\fP \fB||\fP \fIorden2\fP .RE .PP \fIorden2\fP se ejecuta si y solo si \fIorden1\fP devuelve un estado de salida distinto de cero. El estado de salida de las listas Y y O es el de la última orden ejecutada en la lista. .SS "Órdenes Compuestas" Una \fIorden compuesta\fP es una de las siguientes. En la mayoría de los casos, una \fIlista\fP en la descripción de una orden puede ir separada del resto de la orden por uno o más saltos de línea y puede ir seguido de un salto de línea en lugar de un punto y coma. .TP (\fIlista\fP) \fIlista\fP se ejecuta en una subshell (consulte .SM \fBENTORNO DE EJECUCIÓN DE ÓRDENES\fP más adelante). Después de que la orden finaliza su ejecución, las asignaciones a variables y órdenes nativas que afectaran al entorno de la shell no siguen vigentes. El estado de retorno es el de salida de \fIlista\fP. .TP { \fIlista\fP; } \fIlista\fP se ejecuta en el entorno actual de la shell, deberá finalizar con un salto de línea o un punto y coma. Esto se conoce como un \fIgrupo de órdenes\fP. El estado de salida es el de \fIlista\fP. Observe que a diferencia de los metacaracteres \fB(\fP y \fB)\fP, los metacaracteres \fB{\fP y \fB}\fP son \fIpalabras reservadas\fP y solo deberían utilizarse donde dichas palabras se reconozcan como tales. Como no pueden causar una división de palabra, deben separarse de la \fIlista\fP mediante espacio o mediante otro metacarácter de la shell. .TP ((\fIexpresión\fP)) La \fIexpresión\fP se evalúa de acuerdo a las reglas descritas más adelante bajo la sección .SM \fBEVALUACIÓN ARITMÉTICA\fP. Si el valor de la expresión es distinto de cero, el estado de retorno es 0; de otro modo el estado de retorno es 1. La \fIexpresión\fP está sujeta a la misma expansión que tendria estnado entre comillas dobles, salvo que dichas comillas no seria tratadas como caracteres especiales y se eliminarían. .TP \fB[[\fP \fIexpresión\fP \fB]]\fP Devuelve un estado de 0 o 1 dependiendo de la evaluación de la expresión condicional \fIexpresión\fP. Las expresiones se componen de las primarias descritas más adelante en el apartado .SM \fBEXPRESIONES CONDICIONALES\fP. No tienen lugar división de palabras ni expansión de nombres de ruta en las palabras entre el \fB[[\fP y el \fB]]\fP; sí se realizan la expansión de tilde, expansión de parámetros y variables, expansión aritmética, sustitución de orden, sustitución de proceso y eliminación de comillas en dichas palabras (la expansión que ocurriría si las palabras estuviesen entre comillas dobles). Deben eliminarse las comillas de los operadores condicionales como \fB\-f\fP para que sean reconocidos como primarios. .if t .sp 0.5 .if n .sp 1 Cuando se emplean con \fB[[\fP, los operadores \fB<\fP y \fB>\fP ordenan lexicográficamente en base a la configuración del idioma actual. .PP Vea la descripción de la orden nativa \fItest\fP en la sección ÓRDENES NATIVAS DE LA SHELL más adelante para la gestión de parámetros (es decir, para los parámetros que no se indican). .if t .sp 0.5 .if n .sp 1 Cuando se emplean los operadores \fB==\fP y \fB!=\fP, la cadena a la derecha del operador se considera un patrón y se hace concordar de acuerdo a las reglas descritas más adelante bajo el epígrafe \fBConcordancia de patrones\fP, tal como si estuviese activa la opción \fBextglob\fP de la shell. El operador \fB==\fP equivale a \fB=\fP. Si está activada la opción \fBnocasematch\fP de la shell, se buscará la concordancia sin diferenciar entre mayúsculas y minúsculas. El valor devuelto es 0 si la cadena concuerda (\fB==\fP) o no concuerda (\fB=\fP0 )con el patrón, respectivamente, y 1 en otro caso. Cualquier parte del patrón puede entrecomillarse para forzar la concordancia como una cadena de caracteres pura. .if t .sp 0.5 .if n .sp 1 Dispone de otro operador binario: \fB=~\fP. Tiene la misma prevalencia que \fB==\fP y \fB!=\fP. Al usarlo, la cadena a la derecha se considerará una expresión regular ampliada POSIX y concordada adecuadamente (mediante las interfaces POSIX \fIregcomp\fP y \fIregexec\fP generalmente descritas en \fIregex\fP(3). El valor devuelto será 0 si la cadena concuerda con el patrón y 1 en caso contrario. Si la expresión regular contiene algún error de sintaxis se devolverá el valor 2. Si la opción \fBnocasematch\fP está activa, se buscará la concordancia sin distinguir entre mayúsculas y minúsculas. Si se entrecomilla una parte del patrón, dicha parte concordará literalmente. Debe tenerse especial cuidado con el uso de corchetes ya que las comillas normales pierden su especial significado entre ellos. .if t .sp 0.5 .if n .sp 1 El patrón concordará si lo hace cualquier parte de la cadena. Para hacer que concuerde la cadena completa, puede rodear el patrón con los operadores de expresiones regulares \fB^\fP y \fB$\fP. La variable vectorial .SM \fBBASH_REMATCH\fP registra la parte de la cadena que concordó con el patrón. El elemento de .SM \fBBASH_REMATCH\fP con índice 0 contendrá el fragemento de la cadena que concuerda con toda la expresión regular. Las subcadenas que concuerdan con subexpresiones entre paréntesis se guardan en los índices de .SM \fBBASH_REMATCH\fP donde el índice \fIn\fP es la parte de la cadena que concuerda con la \fIn\fPésima subexpresión entre paréntesis. Bash define .SM \fBBASH_REMATCH\fP con un alcance general, declararla como una variable local puede dar lugar a resultados indeseados. .if t .sp 0.5 .if n .sp 1 Las expresiones pueden combinarse mediante los siguientes operadores, listados en orden decreciente de precedencia: .if t .sp 0.5 .if n .sp 1 .RS .PD 0 .TP \fB( \fP\fIexpresión\fP\fB )\fP Devuelve el valor de \fIexpresión\fP. Esto puede emplearse para cambiar la precedencia normal de los operadores. .TP \fB! \fP\fIexpresión\fP Verdad si \fIexpresión\fP es falsa. .TP \fIexpresión1\fP \fB&&\fP \fIexpresión2\fP Verdad si ambas \fIexpresión1\fP y \fIexpresión2\fP son verdaderas. .TP \fIexpresión1\fP \fB||\fP \fIexpresión2\fP Verdad si una al menos de \fIexpresión1\fP o \fIexpresión2\fP es verdad. .PD .LP Los operadores \fB&&\fP y \fB||\fP no evalúan la \fIexpresión2\fP si el valor de \fIexpresión1\fP es suficiente para determinar el valor de retorno de toda la expresión condicional. .RE .TP \fBfor\fP \fInombre\fP [ [ \fBin\fP \fIpalabra ...\fP; ] ] \fBdo\fP \fIlista\fP ; \fBdone\fP La lista de palabras que va detrás de \fBin\fP se expande, generando una lista de elementos. La variable \fInombre\fP se define como cada elemento de la lista en cada iteración, y \fIlista\fP se ejecuta cada vez. Si la \fIpalabra\fP de \fBin\fP se omite, la orden \fBfor\fP ejecuta \fIlista\fP una vez para cada parámetro posicional que esté definido (consulte .SM \fBPARÁMETROS\fP más adelante). El estado de retorno es el de salida de la última orden que se ejecuta. Si la expansión de los elementos después del \fBin\fP resulta en una lista vacía, no se ejecuta ninguna orden y el estado de salida es 0. .TP \fBfor\fP (( \fIexpr1\fP ; \fIexpr2\fP ; \fIexpr3\fP )) ; \fBdo\fP \fIlista\fP ; \fBdone\fP Primeramente se evaluará la expresión aritmética \fIexpr1\fP en base a las reglas definidas más adelante en la sección .SM \fBEVALUACIÓN ARITMÉTICA\fP. Después se evalúa la expresión \fIexpr2\fP repetidamente hasta que el resultado sea cero. Cada vez que \fIexpr2\fP se evalúe con un resultado diferente a cero, se ejecutará \fIlista\fP y se evaluará \fIexpr3\fP. Si se omite alguna de las expresiones, se considerará el valor 1 como resultado de su evaluación. El valor retornado es el estado de salida de la última orden de \fIlista\fP ejecutada o falso si alguna de las expresiones no es válida. .TP \fBselect\fP \fInombre\fP [ \fBin\fP \fIpalabra\fP ] ; \fBdo\fP \fIlista\fP ; \fBdone\fP La lista de palabras que sigue a \fBin\fP se expande, generando una lista de elementos. El conjunto de palabras expandidas se muestra en la salida estándar de errores, cada una precedida por un número. Si la \fIpalabra\fP del \fBin\fP se omite, se muestran los parámetros posicionales (consulte .SM \fBPARÁMETROS\fP más adelante). Entonces se muestra el indicador .SM \fBPS3\fP y se lee una línea desde la entrada estándar. Si la línea consiste en un número correspondiente a una de las palabras mostradas, entonces el valor de \fInombre\fP se pone a esa palabra. Si la línea está vacía, las palabras y el indicador se muestran de nuevo. Si se lee EOF, la orden \fBselect\fP se completa y devuelve 1. Cualquier otro valor leída hace que \fInombre\fP se defina como un valor vacío. La línea leída se guarda en la variable .SM \fBREPLY\fP. La \fIlista\fP se ejecuta tras cada selección hasta que se ejecute una orden \fBbreak\fP. El estado de salida de \fBselect\fP es el de la última orden ejecutada en \fIlista\fP o cero si no se ha ejecutado ninguna orden. .TP \fBcase\fP \fIpalabra\fP \fBin\fP [ [(] \fIpatrón\fP [ \fB|\fP \fIpatrón\fP ] ... ) \fIlista\fP ;; ] ... \fBesac\fP Una orden \fBcase\fP expandirá primero \fIpalabra\fP y buscará si concuerda con cada uno de los \fIpatrones\fP en base a las reglas de concordancia descritas más adelante en \fBConcordancia\fP. La palabra se expandirá empleando expansión de tilde, expansión de parámetros y variables, expansión aritmética, sustitución de órdenes, sustitución de procesos y eliminación de comillas. Cada \fIpatrón\fP examinado se expande empleando expansión de tilde, expansión de parámetros y variables, expansión aritmética, sustitución de órdenes, sustitución de procesos y eliminación de comillas. Si está activa la opción \fBnocasematch\fP, se buscará la concordancia sin distinguir entre mayúsculas y minúsculas. Cada vez que se encuentre una concordancia, se ejecutará la correspondiente \fIlista\fP. Si se emplea el operador \fB;;\fP, una vez encontrada una concordancia, no se seguirán buscando más. Si se emplea \fB;&\fP en lugar de \fB;;\fP, la ejecución continuará con la \fIlista\fP asociada con el siguiente conjunto de patrones. Si se utiliza \fB;;&\fP en lugar de \fB;;\fP hará que la shell pruebe el siguiente conjunto de patrones, si lo hubiese, ejecutando las \fIlistas\fP de una concordancia, siguiendo con la ejecución de la estructura 'case' como si no hubiese habido concordancia alguna. El valor de salida será cero si no existen concordancias con ningún patrón. En cualquier otro caso, será el estado de salida correspondiente a la última orden ejecutada en \fIlista\fP. .TP \fBif\fP \fIlista\fP; \fBthen\fP \fIlista\fP; [ \fBelif\fP \fIlista\fP; \fBthen\fP \fIlista\fP; ] ... [ \fBelse\fP \fIlista\fP; ] \fBfi\fP La \fIlista\fP \fBif\fP se ejecuta. Si su estado de salida es cero, se ejecuta la \fIlista\fP \fBthen\fP. De otro modo, se ejecuta por turno cada \fIlista\fP \fBelif\fP, y si su estado de salida es cero, se ejecuta la \fIlista\fP \fBthen\fP correspondiente y la orden se completa. Si no, se ejecuta la \fIlista\fP \fBthen\fP si está presente. El estado de salida es el de la última orden ejecutada, o cero si ninguna condición fue verdadera. .TP \fBwhile\fP \fIlista\-1\fP; \fBdo\fP \fIlista\-2\fP; \fBdone\fP .PD 0 .TP \fBuntil\fP \fIlista\-1\fP; \fBdo\fP \fIlista\-2\fP; \fBdone\fP .PD La orden \fBwhile\fP ejecuta continuamente la lista \fIlista\-2\fP siempre que la última orden de \fIlista\-1\fP devuelva un estado de salida cero. La orden \fBuntil\fP es idéntica a la \fBwhile\fP, salvo que la comprobación es a la inversa: la \fIlista\-2\fP se ejecuta mientras que la última orden en \fIlista\-1\fP devuelva un estado de salida distinto de cero. El estado de salida de las órdenes \fBwhile\fP y \fBuntil\fP es el de la última orden de la \fIlista\-2\fP ejecutada, o cero si no se ejecutó ninguna orden. .SS Coprocesos Un \fIcoproceso\fP es una orden de la shell precedida de la palabra reservada \fBcoproc\fP. Un coproceso se ejecuta de modo asíncrono en una subshell, de igual modo que si la orden fuese seguida del operador de control \fB&\fP, con una tubería bidireccional entre la shell y el coproceso. .PP La sintaxis de un coproceso es la siguiente: .RS .PP \fBcoproc\fP [\fINOMBRE\fP] \fIorden\fP [\fIredirecciones\fP] .RE .PP Esto creará un coproceso llamado \fINOMBRE\fP. \fIorden\fP puede ser un orden simple o compuesta. \fINOMBRE\fP será una variable de la shell. Si no se da ningún \fINOMBRE\fP, por defecto se asignará el de \fBCOPROC\fP. .PP El formato recomendado de un coproceso es el siguiente: .RS .PP \fBcoproc\fP \fINOMBRE\fP { \fIorden\fP [\fIredirecciones\fP]; } .RE .PP Esta forma es recomendable porque las ordenes simples harán que el coproceso siempre se llame \fBCOPROC\fP, siendo más sencillo su uso y más completo que las otras órdenes compuestas. .PP Si \fIorden\fP es una orden compuesta, \fINOMBRE\fP será opcional. La palabra que siga a \fBcoproc\fP determinará si dicha palabra debe interpretarse como el nombre de una variable: se considerará como el valor de \fINOMBRE\fP si no es una palabra reservada que introduzca una orden compuesta. Si \fIorden\fP es una orden simple, \fINOMBRE\fP no está permitido; esto se hace para evitar confusiones entre \fINOMBRE\fP y la primera palabra de la orden compuesta. .PP Cuando se ejecuta un coproceso, la shell crea una variable vectorial (consulte \fBvectores\fP más adelante) llamada \fINOMBRE\fP dentro de la shell que lo ejecuta. La salida estándar de \fIorden\fP está unida a un descriptor de archivo de la shell mediante una tubería, asignándose éste a \fINOMBRE\fP[0]. La entrada estándar de la \fIorden\fP también está conectada mediante una tubería a otro descriptor de archivo de la shell asignado a \fINOMBRE\fP[1]. Esta tubería se define antes de cualquier redirección definida en la orden (consulte \fBREDIRECCIONES\fP más adelante). Estos descriptores de archivo pueden emplearse como argumentos en órdenes y redirecciones mediante epansión de palabra. Salvo aquellos creados durante la ejecución de órdenes y la sustitución de procesos, los descriptores de archivo no están disponibles en subshells. .PP El identificador de proceso de la shell abierta para ejecutar el coproceso se almacena en el valor de la variable \fINAME\fP_PID. La orden nativa \fBwait\fP puede emplearse para esperar la finalización del coproceso. .PP Como el coproceso se creó como una orden asíncrona, la orden \fBcoproc\fP siempre tiene una valor de salida de éxito. El valor de salida de un coproceso es el de \fIorden\fP. .SS "Definición de Funciones de la Shell" Una función de la shell es un objeto que se invoca de igual manera que las órdenes simples y pero ejecutan una orden compuesta con un conjunto propio de parámetros posicionales. Las funciones de la shell se declaran del siguiente modo: .TP \fInombre_función\fP () \fIorden_incluida\fP [\fIredirección\fP] .PD 0 .TP \fBfunction\fP \fInombrefunción\fP [()] \fIorden\-compuesta\fP [\fIredirección\fP] .PD Define una función llama \fInombrefunción\fP. La palabra reservada \fBfunction\fP es opcional, si se indica pueden omitirse los paréntesis. El \fIcuerpo\fP de la función será la orden compuesta (consulte \fBÓrdenes Compuestas\fP más atrás). Esta orden suele consistir en una \fIlista\fP de órdenes entre { y }, pero puede ser cualquier orden que figure bajo \fBÓrdenes Compuestas\fP con una única excepción: si se emplea la palabra reservada \fBfunction\fP sin paréntesis, son recomendables las llaves. \fIorden\-compuesta\fP se ejecutará siempre y cuando \fInombrefunción\fP se especifique como el nombre de una orden simple. Si estamos en \fImodo posix\fP, \fInombrefunción\fP deberá ser un nombre de shell válido y no podrá ser una de las \fIórdenes nativas\fP de POSIX. En el modo por defecto, podrá emplearse cualquier palabra de la shell sin entrecomillar como nombre de una función (simpre que no contenga \fB$\fP. Cualquier redirección que se haga cuando se define una función se llevará a cabo cuando se ejecute la función. El estado de salida al definir una función será cero salvo que se incurra en un error de sintaxis o ya exista una función de sólo\-lectura con el mismo nombre. El estado de salida de la ejecución de una función viene dado por el de la última orden ejecutada. Consulte .SM \fBFUNCIONES\fP más adelante. .SH COMENTARIOS En una shell no interactiva, o en una interactiva en el que la opción \fBinteractive_comments\fP de la orden nativa \fBshopt\fP está activa (consulte .SM \fBÓRDENES NATIVAS DE LA SHELL\fP más adelante), una palabra que empiece por \fB#\fP hace que esa palabra y todos los caracteres que queden en esa línea no sean tenidos en cuenta. Una shell interactiva sin la opción \fBinteractive_comments\fP habilitada, no admite comentarios. La opción \fBinteractive_comments\fP está activa por defecto en shells interactivas. .SH ENTRECOMILLADO El \fIentrecomillado\fP se emplea para quitar el significado especial para la shell de ciertos metacaracteres o palabras. Puede emplearse para que no se traten caracteres especiales de forma especial, para que palabras reservadas no sean reconocidas como tales, y para evitar la expansión de parámetros. .PP Cada uno de los \fImetacaracteres\fP listados a continuación bajo el epígrafe .SM \fBDEFINICIONES\fP tiene un significado especial para la shell y deben ser protegidos o entrecomillados si quieren referirse a sí mismos. .PP Cuando se utilizan la funciones de expansión de historial (consulte .SM \fBEXPANSIÓN DEL HISTORIAL\fP a continuación), tiene que entrecomillarse el \fIcarácter de expansión del historial\fP, generalmente \fB!\fP si se desea evitar dicha expansión. .PP Existen tres métodos de entrecomillado: El \fIcarácter de escape\fP, comillas simples y comillas dobles. .PP Una barra inclinada inversa no entrecomillada (\fB\e\fP) es el \fIcarácter de escape\fP. Preserva el valor literal del siguiente carácter que lo acompaña, con la excepción de . Si aparece un par \fB\e\fP y la barra invertida no está ella misma entre comillas, el \fB\e\fP se trata como una continuación de línea (esto es, se quita del flujo de entrada y no se tiene efectivamente en cuenta). .PP Encerrar caracteres entre apóstrofes preserva el valor literal de cada carácter entre las comillas. Una comilla simple no puede estar entre comillas simples, ni siquiera precedida de una barra invertida. .PP Encerrar caracteres entre comillas dobles preserva el valor literal de todos los caracteres de dentro de las comillas, con la excepción de \fB$\fP, \fB\`\fP, y \fB\e\fP, si está activa la expansión del historial, también \fB!\fP. Cuando la shell está en \fImodo posix\fP, \fB!\fP no tiene un significado especial si va entre dobles comillas aunque esté activa la expansión del historial. Los caracteres \fB$\fP y \fB`\fP mantienen sus significados especiales dentro de comillas dobles. La barra invertida mantiene su significado especial solamente cuando está seguida por uno de los siguientes caracteres: \fB$\fP, \fB`\fP, \^\fB"\fP\^", \fB\e\fP, o \fB\fP. Una comilla doble puede ser entrecomillada entre otras comillas dobles precediéndola de una barra invertida. Si está activa, la expansión del historial se realizará salvo que un \fB!\fP entre comillas dobles se escape con una barra invertida. No se elimina la barra invertida si precede a \fB!\fP. .PP Los parámetros especiales \fB*\fP y \fB@\fP tienen un significado especial cuando están entre comillas dobles (consulte .SM \fBPARÁMETROS\fP más adelante). .PP Las secuencias de caracteres de la forma \fB$\fP\(aq\fIcadena\fP\(aq se consideran como una forma espcial de comillas simples. La secuencia se expande a \fIcadena\fP, con los caracteres de \fIcadena\fP que estén protegidos por una barra invertida reemplazados según especifica el estándar ANSI de C. Las secuencias de escape con barra invertida, si están presentes, se descodifican como sigue: .RS .PD 0 .TP \fB\ea\fP alerta (pitido) .TP \fB\eb\fP espacio\-atrás .TP \fB\ee\fP .TP \fB\eE\fP un carácter de escape (ESC) .TP \fB\ef\fP nueva página .TP \fB\en\fP nueva linea .TP \fB\er\fP retorno de carro .TP \fB\et\fP tabulación horizontal .TP \fB\ev\fP tabulación vertical .TP \fB\e\e\fP barra invertida .TP \fB\e\(aq\fP comillas simples .TP \fB\e"\fP comillas dobles .TP \fB\e?\fP signo de interrogación .TP \fB\e\fP\fInnn\fP el carácter de 8\-bits cuyo código es el valor octal \fInnn\fP (de uno a tres dígitos octales) .TP \fB\ex\fP\fIHH\fP el carácter de 8\-bits cuyo código es el valor hexadecimal \fIHH\fP (uno o dos dígitos hexadecimales) .TP \fB\eu\fP\fIHHHH\fP caŕácter Unicode (ISO/IEC 10646) cuyo valor hexadecimal es \fIHHHH\fP (de uno a cuatro caracteres hexadecimales) .TP \fB\eU\fP\fIHHHHHHHH\fP caŕácter Unicode (ISO/IEC 10646) cuyo valor hexadecimal es \fIHHHHHHHH\fP (de uno a ocho caracteres hexadecimales) .TP \fB\ec\fP\fIx\fP un carácter de control \-\fIx\fP .PD .RE .LP El resultado de la expansión es entrecomillado con comillas simples, como si el signo de dólar no hubiera estado presente. .PP Una cadena entre comillas dobles precedida por un signo de dólar (\fB$\fP"\fIcadena\fP") hará que la cadena se traduzca según la localización actual.\fIgettext\fP buscará su traducción en el catálogo de mensajes mediante las variables de la shell \fBLC_MESSAGES\fP, \fBTEXTDOMAINDIR\fP y \fBTEXTDOMAIN\fP. Si la localización actual es \fBC\fP o \fBPOSIX\fP, la cadena no estuviese traducida o no hubiese ninguna traducción disponible, el signo de dólar no se tiene en cuenta. Esta es una manera de entrecomillado doble ya que la cadena preserva las dobles comillas por defecto ya sea traducida o no. Si se activa la opción \fBnoexpand_translation\fP mediante la orden nativa \fBshopt\fP, las cadenas traducidas tendrán comillas simples en lugar de dobles. Consulte la descripción de \fBshopt\fP más adelante en el aprtado .SM \fBÓRDENES NATIVAS DE LA SHELL\fP. .SH PARÁMETROS Un \fIparámetro\fP es una entidad que almacena valores. Puede ser un \fInombre\fP, un número, o uno de los caracteres especiales listados a continuación bajo el epígrafe \fBParámetros especiales\fP. Una \fIvariable\fP es un parámetro que se denota mediante un \fInombre\fP, puede tener un \fIvalor\fP de cero o más \fIatributos\fP. Dichos atributos se asigna mediante la orden nativa \fBdeclare\fP (consulte \fBdeclare\fP más adelante en la sección .SM \fBÓRDENES NATIVAS DE LA SHELL\fP). .PP Un parámetro está definido si se le ha asignado un valor. La cadena vacía es un valor válido. Una vez que una variable está definida, solo puede quitarse de la lista de variables mediante la orden nativa \fBunset\fP (consulte .SM \fBÓRDENES NATIVAS DE LA SHELL\fP más adelante). .PP A una \fIvariable\fP se le puede asignar un valor mediante una sentencia de la forma .RS .PP \fInombre\fP=[\fIvalor\fP] .RE .PP Si no se da el \fIvalor\fP, a la variable se asigna la cadena vacía. Todos los \fIvalores\fP están sujetos a expansión de tilde, de parámetros y de variables, sustitución de órdenes, expansión aritmética, y eliminación de comillas (consulte .SM \fBEXPANSIÓN\fP más adelante). Si la variable tiene activado su atributo \fBinteger\fP entonces \fIvalor\fP se evaluará como una expresión aritmética incluso si no se emplea la expansión $((...)) (consulte \fBExpansión aritmética\fP más adelante). No se realiza la división de palabras ni la expansión de nombres de ruta. Las asignaciones también pueden figurar como argumentos de las órdenes nativas \fBalias\fP, \fBdeclare\fP, \fBtypeset\fP, \fBexport\fP, \fBreadonly\fP y \fBlocal\fP (órdenes de \fIdeclaración\fP). En \fImodo posix\fP estas órdenes nativas puede aparecer en una orden después de una o más instancias de la \fIorden\fP nativa y mantener las propiedades de la asignación. .PP En el contexto en el que una declaración de asignación asigna un valor a una variable de la shell o índice vectorial, el operador += puede emplearse para agregar o incluir en el valor anterior de la variable. Esto incluye argumentos para órdenes nativas como \fBdeclare\fP que acepten declaraciones de asignación (órdenes de \fBdeclaración\fP). Cuando se aplica += a una variable que se definido como número entero (\fIinteger\fP), su \fIvalor\fP se calcula como una expresión aritmética y se suma al valor actual de la variable, que también se calcula. Cuando += se aplica a una variable vectorial mediante asignación compuesta (consulte \fBVectores\fP a continuación), el valor de la variable no se anula (como sucede cuando se usa =), y los nuevos valores se agregan al vector a partir de uno mayor que el índice máximo del mismo (caso de vectores indexados) o agregados como pares clave\-valor adicionales si es un vector asociativo. Cuando se aplica a una variable con valor de cadena, el valor se expande y se agrega al valor de la variable. .PP A una variable se le puede asignar el atributo \fInameref\fP ejecutando las órdenes nativas \fBdeclare\fP o \fBlocal\fP con la opción \fB\-n\fP (consulte las descripciones de \fBdeclare\fP y \fBlocal\fP a continuación) para crear un \fInameref\fP, o una referencia a otra variable. Esto permite que las variables sean manipuladas de forma indirecta. Cada vez que se hace referencia a la variable \fInameref\fP, se asigna, se anula o se modifican sus atributos (no usando o cambiando el atributo nameref en sí), la operación se realizará sobre la variable definida por el valor de la variable nameref. Una referencia de nombre (nameref) suele usarse dentro de las funciones de shell para referirse a una variable cuyo nombre se pasa como argumento a la función. Por ejemplo, si se pasa un nombre de variable a una función de shell como su primer argumento, ejecutando .sp .5 .RS .if t \f(CWdeclare -n ref=$1\fP .if n declare -n ref=$1 .RE .sp .5 dentro de la función se creará una variable \fBref\fP cuyo valor es el nombre de la variable pasado como primer argumento. Las referencias y asignaciones a \fBref\fP, y los cambios en sus atributos, se tratan como referencias, asignaciones y modificaciones de atributos a la variable cuyo nombre se pasó como \fB$1\fP. Si la variable de control en un bucle \fBfor\fP tiene el atributo nameref, la lista de palabras puede ser una lista de variables de shell, y se establecerá una referencia de nombre para cada palabra en la lista, cada vez que se ejecute el ciclo. A las variables vectoriales no se les puede asignar el atributo \fBnameref\fP. Sin embargo, las variables nameref pueden hacer referencia a variables vectoriales y variables vectoriales con subíndice. Las referencias de nombre se pueden desactivar mediante la opción \-n en la orden nativa \fBunset\fP. De lo contrario, si se ejecuta \fBunset\fP con el nombre de una variable nameref como argumento, la variable a la que hace referencia se desactivará. .SS "Parámetros Posicionales" Un \fIparámetro posicional\fP es un parámetro denotado por uno o más dígitos, distintos del simple 0. Los parámetros posicionales se asignan a partir de los argumentos de la shell cuando éste es llamado, y pueden ser reasignados mediante la orden nativa \fBset\fP. Los parámetros posicionales no pueden ser asignados con sentencias de asignación. Los parámetros posicionales se reemplazan temporalmente cuando se ejecuta una función de la shell (consulte .SM \fBFUNCIONES\fP más adelente). .PP Cuando un parámetro posicional consistente en más de un solo dígito se expande, debe rodearse por llaves (consulte .SM \fBEXPANSIÓN\fP más adelante). .SS "Parámetros Especiales" la shell trata de forma especial a ciertos parámetros. Éstos solo pueden referenciarse; no se permite asignarles nada. .PD 0 .TP \fB*\fP Se expande a los parámetros posicionales, empezando por 1. Cuando la expansión no ocurre entre comillas dobles, cada parámetro posicional se expande a una palabra separada. En los contextos en los que se realiza, estas palabras pueden ser objeto de separación y de expansión del nombre de ruta. Cuando dicha expansión ocurren dentro de un entrecomillado doble, ésta se expande a una sola palabra con el valor de cada parámetro separado por el primer carácter de la variable especial .SM \fBIFS\fP. Esto es, "\fB$*\fP" es equivalente a "\fB$1\fP\fIc\fP\fB$2\fP\fIc\fP\fB...\fP", donde \fIc\fP es el primer carácter del valor de la variable .SM \fBIFS\fP. Si .SM \fBIFS\fP no está definida, los parámetros se separan por espacios. Si .SM \fBIFS\fP es la cadena vacía, los parámetros se juntan sin ningún separador. .TP \fB@\fP Se expande a los parámetros posicionales, comenzando desde el uno. En donde se realiza la división de palabras, se expande cada parámetro posicional a una palabra separada; si no están entrecomillada con comillas dobles, estas palabras estarán sujetas a división de palabra. Donde no se realiza la división de palabra, se expande a una sola palabra con cada parámetro posicional separado por un espacio. Cuando la expansión ocurre entre comillas dobles, cada parámetro se expande a una palabra separada. Es decir, "\fB$@\fP" es equivalente a '\fB$1\fP' '\fB$2\fP'... Si la expansión entre comillas dobles ocurre dentro de una palabra, la expansión del primer parámetro se une con la parte inicial de la palabra original y la expansión del último parámetro se une con la última parte de la palabra original. Cuando no hay parámetros posicionales, '\fB$@\fP'y \fB$@\fP se eliminan (se expande a 'nada'). .TP \fB#\fP Se expande al número en base 10 de parámetros posicionales. .TP \fB?\fP Se expande al estado de salida de la tubería más recientemente ejecutada en primer plano. .TP \fB\-\fP Se expande a las opciones de la shell activas actualmente según se hayan especificado en la llamada, mediante la orden nativa \fBset\fP, o las que haya puesto el mismo shell (como la opción \fB\-i\fP). .TP \fB$\fP Se expande al PID de la shell. En una subshell, se expande al PID de la shell actual, no al del subshell. .TP \fB!\fP Se expande al PID del proceso más recientemente ejecutado en segundo plano ya fuese ejecutado como una orden asíncrona o mediante la orden nativa \fBbg\fP. Consulte .SM \fBCONTROL DE TAREAS\fP más adelante. .TP \fB0\fP Se expande al nombre de la shell o script de la shell. Este parámetro se pone en el inicio de la shell. Si \fBbash\fP se llama con un fichero de órdenes, \fB$0\fP se pone al nombre de ese fichero. Si \fBbash\fP se arranca con la opción \fB\-c\fP, entonces \fB$0\fP se pone al primer argumento tras la cadena que se va a ejecutar, si hay alguno presente. Si no, se pone al nombre de fichero empleado para llamar a \fBbash\fP, como se da en el argumento cero. .PD .SS "Variables de la Shell" la shell define automáticamente las siguientes variables: .PP .PD 0 .TP \fB_\fP Al inicio de la shell, adopta el valor de la ruta con la que se inició dicha shell o el script que se ejecute tal como se indicó en el entorno en los argumentos. Por lo tanto se expandirá al último argumento de la anterior orden ejecutada en primer plano después de la expansión. También adopta el valor de la ruta completa empleada para invocar cada orden ejecutada, se pone en el entorno exportado para esa orden. En el caso de la lectura de correo electrónico, esta variable adopta el valor del nombre del archivo de correo leído en cada instante. .TP \fBBASH\fP Se expande al nombre completo del fichero empleado para llamar a esta instancia de \fBbash\fP. .TP \fBBASHOPTS\fP Una lista, de elementos separados por dos puntos, de opciones activas de la shell. Cada palabra en la lista es un argumento válido para la opción \fB\-s\fP de la orden nativa \fBshopt\fP (consulte .SM \fBÓRDENES NATIVAS DE LA SHELL\fP más adelante). Las opciones que aparecen en .SM \fBBASHOPTS\fP son aquéllas que aparecen como \fIon\fP en \fBshopt\fP. Si esta variable está en el entorno cuando se inicia \fBbash\fP, cada opción de la shell en la lista se activará antes de cargar cualquier archivo de inicio. Es una variable de solo lectura. .TP \fBBASHPID\fP Se expande al ID del proceso en ejecución de \fBbash\fP. Esto difiere de \fB$$\fP en ciertos casos, como las subshells que no requieren una reinicialización de \fBbash\fP. No se consideran las asignaciones de .SM \fBBASHPID\fP. Si se anula el valor definido a \fBBASHPID\fP, ésta pierde sus propiedades especiales aunque se vuelva a definir posteriormente. .TP \fBBASH_ALIASES\fP Una variable vectorial asociativa cuyos miembros pertenecen a la lista interna de alias tal como la gestiona la orden nativa \fBalias\fP. Los elementos agregados a este vector aparecen en la lista de los alias; sin embargo, desactivar elementos del vector no hará que los alias se eliminen de dicha lista. Si se desactiva \fBBASH_ALIASES\fP, perderá sus propiedades especiales, incluso si se reactiva posteriormente. .TP \fBBASH_ARGC\fP Una variable vectorial formada por el número de parámetros en cada marco de la pila de llamadas de la actual ejecución de \fBbash\fP. El número de parámetros de la subrutina actual (función o script ejecutado mediante \fB.\fP o \fBsource\fP) se encuentra en la parte superior de la pila. Cuando se ejecuta una subrutina, se envian los parámetros a .SM \fBBASH_ARGC\fP. La shell activa .SM \fBBASH_ARGC\fP solo cuando está en modo de depuración ampliado (consulte más adelante la descripción de la opción \fBextdebug\fP de la orden nativa \fBshopt\fP). La activación de \fBextdebug\fP después de iniciar la ejecución de un script, o hacer referencia a esta variable cuando no se ha configurado, puede dar lugar a resultados inconsistentes. .TP \fBBASH_ARGV\fP Una variable vectorial que contiene todos los parámetros de la pila de llamadas de la ejecución actual de \fBbash\fP. El parámetro final de la última llamada a la subrutina está en la parte superior de la pila; el primer parámetro de la llamada inicial está en la parte inferior. Cuando se ejecuta una subrutina, los parámetros proporcionados se envían a .SM \fBBASH_ARGV\fP. La shell activa .SM \fBBASH_ARGV\fP solo cuando está en modo de depuración ampliado (consulte a continuación la descripción de la opción \fBextdebug\fP de la orden nativa \fBshopt\fP). Activar \fBextdebug\fP después del inicio de la ejecución de un script, o hacer referencia a él cuando no se ha configurado, puede generar valores inconsistentes. .TP \fBBASH_ARGV0\fP Esta variable se expande al nombre de la shell o del script (igual que \fB$0\fP, consulte al descripción del parámetro especial 0 anteriormente). Los valores asignados a \fBBASH_ARGV0\fP, también se asignan automáticamente a \fB$0\fP. Si se desactiva \fBBASH_ARGV0\fP, perderá sus propiedades especiales aunque posteriormente sea reactivado. .TP \fBBASH_CMDS\fP Variable vectorial asociativa cuyos miembros corresponden al hash de la tabla interna de órdenes tal como la gestiona la orden nativa \fBhash\fP. Los elementos que se añadan a ese vector aparecerán en dicha tabla, sin embargo los elementos que se desactiven sí que seguirán apareciendo. Si se desactiva \fBBASH_CMDS\fP, perderá sus propiedades especiales aunque se vuelva a reactivar posteriormente. .TP \fBBASH_COMMAND\fP La orden que está siendo ejecutada en ese instante o que va a serlo, excepto cuando se ejecute una orden marcada en una tramp (trap) e cuyo caso equivaldría a dicha orden. Si se anula la definición de \fBBASH_COMMAND\fP, pierde sus propiedades especiales aunque se vuelva a definir con posterioridad. .TP \fBBASH_EXECUTION_STRING\fP La orden dada como argumento al ejecutar con la opción \fB\-c\fP. .TP \fBBASH_LINENO\fP Variable vectorial cuyos miembros corresponden a los números de línea de código fuente donde se invocó .SM \fBFUNCNAME\fP. \fB${BASH_LINENO[\fP\fI$i\fP\fB]}\fP será el número de línea en el archivo de código fuente (\fB${BASH_SOURCE[\fP\fI$i+1\fP\fB]}\fP) donde se invocó \fB${FUNCNAME[\fP\fI$i\fP\fB]}\fP (o bien \fB${BASH_LINENO[\fP\fI$i\-1\fP\fB]}\fP si está referenciado en el seno de otra función de la shell). El número de línea actual puede obtenerse mediante .SM \fBLINENO\fP. .TP \fBBASH_LOADABLES_PATH\fP Lista de directorios separados entre si po dos puntos en los cuales la shell busca órdenes nativas cargables dinámicamente definidas por la orden \fBenable\fP. .TP \fBBASH_REMATCH\fP Variable vectorial cuyos miembros se asignan mediante el operador \fB=~\fP a la orden condicional \fB[[\fP. El elemento con índice 0 corresponderá a la parte de la cadena que concuerda con la totalidad de la expresión regular. El elemento con índice \fIn\fP corresponderá a la porción de cadena que concuerda con la \fIn\fPésima subexpresión entre paréntesis. .TP \fBBASH_SOURCE\fP Variable vectorial cuyos miembros lo forman los nombres de los archivos de código fuente donde se definen los nombres de las funciones de la shell de la variable vectorial .SM \fBFUNCNAME\fP. La función de la shell \fB${FUNCNAME[\fP\fI$i\fP\fB]}\fP se define en el archivo \fB${BASH_SOURCE[\fP\fI$i\fP\fB]}\fP y se invoca desde \fB${BASH_SOURCE[\fP\fI$i+1\fP\fB]}\fP. .TP \fBBASH_SUBSHELL\fP Se incrementa en una unidad dentro de cada subshell o cada entorno de subshell cuando la shell se incia en él. El valor inicial es 0. Si se desactiva \fBBASH_SUBSHELL\fP, ésta perderá su propiedades especiales aunque luego se vuelva a definir. .TP \fBBASH_VERSINFO\fP Una variable vector de lectura exclusiva cuyos miembros contienen información de versión para esta instancia de \fBbash\fP. Los valores asignados a los miembros del vector son como sigue: .sp .5 .RS .TP 24 \fBBASH_VERSINFO[\fP0\fB]\fP El número mayor de versión (la \fIdistribución\fP). .TP \fBBASH_VERSINFO[\fP1\fB]\fP El número menor de versión (la \fIversión\fP). .TP \fBBASH_VERSINFO[\fP2\fB]\fP El nivel de parcheo. .TP \fBBASH_VERSINFO[\fP3\fB]\fP La versión de compilación. .TP \fBBASH_VERSINFO[\fP4\fB]\fP El estado de la distribución (por ejemplo, \fIbeta1\fP). .TP \fBBASH_VERSINFO[\fP5\fB]\fP El valor de .SM \fBMACHTYPE\fP. .RE .TP \fBBASH_VERSION\fP Se expande a una cadena que describe la versión de esta instancia de \fBbash\fP. .TP \fBCOMP_CWORD\fP Índice en \fB${COMP_WORDS}\fP de la palabra que contiene la posición actual del cursos. Esta variable solo está disponible en las funciones de la shell invocadas por las utilidades de autocompletado. Consulte \fBAutocompletado Programable\fP a continuación. .TP \fBCOMP_KEY\fP La clave (o última clave de una secuencia de claves) empleada para invocar la actual función de autocompletado. .TP \fBCOMP_LINE\fP Línea de órdenes actual. Esta variable solo estará disponible para las funciones de la shell y órdenes externas invocadas por las utilidades de autocompletado programable. Consulte \fBAutocompletado Programable\fP a continuación. .TP \fBCOMP_POINT\fP Índice de la posición actual del cursor respecto del comienzo de la orden actual. Si el cursor está al final de dicha orden, el valor de esta variable será igual a \fB${#COMP_LINE}\fP. Esta variable sólo estará disponible en funciones de la shell y órdenes externas invocadas durante autocompletados. Consulte \fBAutocompletado Programable\fP más adelante. .TP \fBCOMP_TYPE\fP Definida como un entero según el tipo de completado provocó la llamada a una función de autocompletado: \fITAB\fP para un autocompletado normal, \fI?\fP para mostrar autocompletados después de varias tabulaciones, \fI!\fP para mostrar las alternativas disponibles en autocompletados parciales, \fI@\fP para mostrar alternativas disponibles cuando se modificó la palabra en cuestión o \fI%\fP para los menus. Esta variable sólo estará disponible en funciones de la shell y órdenes externas invocadas durante autocompletados. Consulte \fBAutocompletado Programable\fP más adelante. .TP \fBCOMP_WORDBREAKS\fP Conjunto de caracteres que la biblioteca \fBreadline\fP considera separadores de palabras durante el autocompletado. Si se desactiva .SM \fBCOMP_WORDBREAKS\fP, perderá sus características especiales aunque se reactive de nuevo. .TP \fBCOMP_WORDS\fP Una variable vectorial (consulte \fBVectores\fP más adelante) que consta de palabras individuales en la actual línea de órdenes. La línea se divide en palabras como lo haría \fBreadline\fP, usando .SM \fBCOMP_WORDBREAKS\fP tal como se describe anteriormente. Esta variable está disponible solo en las funciones de la shell invocadas mediante autocompletado (consulte \fBAutocompletado Progamable\fP a continuación). .TP \fBCOPROC\fP Variable vectorial (consulte \fBVectores\fP más adelante) creada para contener los descriptores de archivo de entrada/salida de un coproceso cualquiera (consulte \fBCoprocesos\fP anteriormente. .TP \fBDIRSTACK\fP Una variable vector (consulte \fBVectores\fP más adelante) que aloja los contenidos actuales de la pila de directorios. Los directorios aparecen en la pila en el orden en el que se muestran con la orden nativa \fBdirs\fP. La asignación a miembros de este vector puede emplearse para modificar directorios que ya estén en la pila, pero entonces deben utilizarse las órdenes nativas \fBpushd\fP y \fBpopd\fP para añadir y quitar directorios. La asignación a esta variable no cambiará el directorio de trabajo. Si .SM \fBDIRSTACK\fP no está definido, pierde sus propiedades especiales, incluso si posteriormente es redefinido. .TP \fBEPOCHREALTIME\fP Este parámetro se sustituirá por una cifra de coma flotante con el número de segundos desde el Inicio (Epoch) de Unix (consulte \fItime\fP(3)) medidos en microsegundos. No se tienen en cuenta las asignaciones a .SM \fBEPOCHREALTIME\fP. Si .SM \fBEPOCHREALTIME\fP no está definido, pierde sus propiedades especiales, incluso si posteriormente es redefinido. .TP \fBEPOCHSECONDS\fP Cada vez que este parámetro es referenciado, se devuelve en él el número de segundos transcurridos desde el Inicio (Epoch) de Unix (consulte \fItime\fP(3)). No se tendrá en cuenta ninguna asignación de un valor a .SM \fBEPOCHSECONDS\fP. Si .SM \fBEPOCHSECONDS\fP no está definido, pierde sus propiedades especiales, incluso si posteriormente es redefinido. .TP \fBEUID\fP Se expande al UID efectivo del usuario actual, puesta en el incio de la shell. Esta variable es de solo lectura. .TP \fBFUNCNAME\fP Una matriz variable que contiene todas las funciones de la shell que están en la pila de ejecución en ese instante. El elemento con índice 0 es el nombre de cualquier función de la shell que se esté ejecutando. El último elemento (aquel con el índice más elevado) es .if t \f(CW"main"\fP. .if n "main". Esta variable solo existe cuando se está ejecutando un función de la shell. No se tendrá en cuenta ninguna asignación en a .SM \fBFUNCNAMES\fP. Si .SM \fBFUNCNAMES\fP no está definido, pierde sus propiedades especiales, incluso si posteriormente es redefinido. .if t .sp 0.5 .if n .sp 1 Esta variable puede emplearse con \fBBASH_LINENO\fP y con \fBBASH_SOURCE\fP. Cada elemento de \fBFUNCNAME\fP se corresponde con otros en \fBBASH_LINENO\fP y \fBBASH_SOURCE\fP para describir la pila de llamadas. Por ejemplo: \fB${FUNCNAME[\fP\fI$i\fP\fB]}\fP se invoca desde el archivo \fB${BASH_SOURCE[\fP\fI$i+1\fP\fB]}\fP en el número de línea \fB${BASH_LINENO[\fP\fI$i\fP\fB]}\fP. La función interna \fBcaller\fP muestra la invocación actual en base a esta información. .TP \fBGROUPS\fP Una matriz variable que contiene la lista de grupos a los que pertenece el usuario actual. No se tendrá en cuenta ninguna asignación en a .SM \fBGROUPS\fP. Si .SM \fBGROUPS\fP no está definido, pierde sus propiedades especiales, incluso si posteriormente es redefinido. .TP \fBHISTCMD\fP El número de historial o índice en el historial de la orden actual. No se consideran asignaciones a .SM \fBHISTCMD\fP. Si .SM \fBHISTCMD\fP no está definido, pierde sus propiedades especiales, incluso si posteriormente es redefinido. .TP \fBHOSTNAME\fP Asignados automáticamente al nombre del anfitrión (equipo) actual. .TP \fBHOSTTYPE\fP Asignado automáticamente a una cadena que describe de forma unívoca el tipo de máquina en la que \fBbash\fP se está ejecutando. El valor predefinido depende del sistema. .TP \fBLINENO\fP Cada vez que este parámetro es referenciado, la shell sustituye un número en base 10 representando el número de línea secuencial actual (empezando por 1) dentro de un script o función. Si no estamos en un script o función, no se garantiza que el valor sustituido tenga significado. Si .SM \fBLINENO\fP no está definido, pierde sus propiedades especiales, incluso si posteriormente es redefinido. .TP \fBMACHTYPE\fP Asignado automáticamente a una cadena que describe completamente el tipo de sistema en el que \fBbash\fP se está ejecutando, en el formato estándar de GNU \fIcpu\-compañía\-sistema\fP. El valor predefinido depende del sistema. .TP \fBMAPFILE\fP Una matriz variable (consulte \fBMatrices\fP a continuación) creada para incluir el texto captado por la orden nativa \fBmapfile\fP cuando no se indica ningún nombre de variable. .TP \fBOLDPWD\fP El directorio de trabajo anterior como lo puso la orden \fBcd\fP. .TP \fBOPTARG\fP El valor del último argumento que es una opción procesado por la orden nativa \fBgetopts\fP (consulte .SM \fBÓRDENES NATIVAS DE LA SHELL\fP a continuación). .TP \fBOPTIND\fP El índice del siguiente argumento a ser procesado por la orden nativa \fBgetopts\fP (consulte .SM \fBÓRDENES NATIVAS DE LA SHELL\fP más adelante). .TP \fBOSTYPE\fP Asignado automáticamente a una cadena que describe el sistema operativo en el que \fBbash\fP se está ejecutando. El valor predefinido depende del sistema. .TP \fBPIPESTATUS\fP Una variable vector (consulte \fBVectores\fP más adelante) que contiene una lista de valores de estado de salida de los procesos en la tubería en primer plano ejecutada más recientemente (que puede contener una sola orden). .TP \fBPPID\fP El PID del proceso padre de la shell. Esta variable es de lectura exclusiva. .TP \fBPWD\fP El directorio de trabajo actual como lo pone la orden \fBcd\fP. .TP \fBRANDOM\fP Cada vez que este parámetro sea referenciado, se genera un entero aleatorio entre 0 y 32767. Si se asigna un valor a .SM \fBRANDOM\fP se inicia (se \&'siembra') la secuencia de números aleatorios. Si .SM \fBRANDOM\fP no está definido, pierde sus propiedades especiales, incluso si posteriormente es redefinido. .TP \fBREADLINE_ARGUMENT\fP Cualquier argumento numérico dado un una orden Readline definido mediante .if t \f(CWbind -x\fP .if n "bind -x" (consulte .SM \fBÓRDENES NATIVAS DE LA SHELL\fP a continuación) cuando se ha invocado. .TP \fBREADLINE_LINE\fP Contenido del buffer de línea de \fBreadline\fP, para emplear con .if t \f(CWbind -x\fP .if n "bind -x" (consulte .SM \fBÓRDENES NATIVAS DE LA SHELL\fP a continuación). .TP \fBREADLINE_MARK\fP Posición de la marca (punto de inserción) en la línea guardad de \fBreadline\fP para emplear con .if t \f(CWbind -x\fP .if n "bind -x" (consulte .SM \fBÓRDENES NATIVAS DE LA SHELL\fP más adelante). Los caracteres situadoes entre el punto de inserción y la marca suelen denominarse \fIregión\fP. .TP \fBREADLINE_POINT\fP Posición del punto de inserción en la línea guardada de \fBreadline\fP, para emplear con .if t \f(CWbind -x\fP .if n "bind -x" (consulte .SM \fBÓRDENES NATIVAS DE LA SHELL\fP a continuación). .TP \fBREPLY\fP La línea de entrada leída por la orden nativa \fBread\fP cuando no se le dan argumentos. .TP \fBSECONDS\fP Cada vez que este parámetro es referenciado, se devuelve en él el número de segundos transcurridos desde la llamada al shell. Si se asigna un valor a .SM \fBSECONDS\fP, el valor devuelto en posteriores referencias es el número de segundos desde la asignación más el valor asignado. La cantidad de segundos transcurridos hasta la llamada de la shell y hasta el momento actual vienen dados por el reloj del sistema. Si .SM \fBSECONDS\fP no está definido, pierde sus propiedades especiales, incluso si posteriormente es redefinido. .TP \fBSHELLOPTS\fP Una lista, de elementos separados por dos puntos, de opciones activas del shell. Cada palabra en la lista es un argumento válido para la opción \fB\-o\fP de la orden nativa \fBset\fP (consulte .SM \fBÓRDENES NATIVAS DE LA SHELL\fP más adelante). Las opciones que aparecen en .SM \fBSHELLOPTS\fP son aquéllas que aparecen como \fIon\fP en \fBset \-o\fP. Si esta variable está en el entorno cuando \fBbash\fP empieza, cada opción de la shell en la lista se activará antes de leer cualquier archivo de inicio. Esta variable es de lectura exclusiva. .TP \fBSHLVL\fP Se incrementa en uno cada vez que se arranca una nueva instancia de \fBbash\fP. .TP \fBSRANDOM\fP Esta variable se expande en un número pseudo\-aleatorios de 32\-bits cada vez que es referenciada. El generador de números aleatorios no es líneal en los sistemas con soporte para \f(CW/dev/urandom\fP o \fIarc4random\fP por lo que cada número generado no tendrá ninguna relación con los anteriores. No es posible \&'sembrar' el generador por lo que no tendrán ningún efecto las asignaciones a esta variable. Si .SM \fBSRANDOM\fP no está definido, pierde todas sus propiedades aunque se redefina posteriormente. .TP \fBUID\fP Se expande al UID del usuario en curso, puesta en el inicio de la shell. Esta variable es de solo lectura. .PD .PP la shell hace uso de las siguientes variables. En algunos casos, \fBbash\fP asigna un valor predeterminado a una variable; estos casos se indican a continuación. .PP .PD 0 .TP \fBBASH_COMPAT\fP Este valor define el nivel de compatibilidad de la shell. Más adelante en .SM \fBMODO DE COMPATIBILIDAD DE LA SHELL\fP puede leer la descripción de los distintos niveles de compatibilidad y sus efectos. Su valor puede ser un número decimal (p.ej: 4.2) o un entero (p.ej: 42) debiendo corresponder al nivel de compatibilidad deseado. Si \fBBASH_COMPAT\fP no está definido o lo está como una cadena vacía, el nivel de compatibilidad se establecerá al de la versión actual. Si se define a un valor inválido (no coincida con ningún valor válido de compatibilidad), la shell mostrará un mensaje de error y definirá el nivel de compatibilidad por defecto al de la versión actual. Los valores válidos de compatibilidades se definen más adelante bajo el epígrafe .SM \fBMODO DE COMPATIBILIDAD DE LA SHELL\fP. Ejemplos de valores válidos serían 4.2 o 42, ambos correspondientes a la opción \fBcompat42\fP \fBshopt\fP definiendo el nivel de compatibilidad a 42. La versión actual también es un nivel de compatibilidad válido. .TP \fBBASH_ENV\fP Si este parámetro está definido cuando \fBbash\fP está ejecutando un script de shell, su valor se interpreta como un nombre de archivo que contiene órdenes para iniciar la shell, como en \fI~/.bashrc\fP. El valor de .SM \fBBASH_ENV\fP está sujeto a expansión de parámetros, sustitución de órdenes y expansión aritmética, antes de ser interpretado como un nombre de archivo. .SM \fBPATH\fP no se usa para buscar el nombre de archivo resultante. .TP \fBBASH_XTRACEFD\fP Si se le asigna un número entero cuyo valor coincida con un descriptor de archivo válido, \fBbash\fP anotará la salida generada cuando .if t \f(CWset -x\fP .if n \fIset -x\fP está activada para este descriptor de archivo. El descriptor de archivo se cerrará cuando .SM \fBBASH_XTRACEFD\fP se desactive o se le asigne un valor nuevo. Si se desactiva o se le asigne una cadena vacía, la salida de la traza se envía a la salida de error estándar. Observe que si se define a 2 el valor de .SM \fBBASH_XTRACEFD\fP (descriptor de archivo de error estándar) y a continuaciń de desactiva se provocará el cierre de la salida de error estándar. .TP \fBCDPATH\fP Ruta de búsqueda para la orden \fBcd\fP. Es una lista de directorios separados por dos puntos en los cuales la shell busca directorios destino especificados por la orden \fBcd\fP. Un valor de muestra es .if t \f(CW".:~:/usr"\fP. .if n ".:~:/usr". .TP \fBCHILD_MAX\fP Define el valor númerico del estado de salida del descendiente para ser recordado por la shell. Bash no permitirá que este valor se reduzca más allá de lo definido por POSIX, el valor máximo (actualmente 8192) tampoco puede ser excedido. El valor mínimo varía según el sistema. .TP \fBCOLUMNS\fP Utilizado por la orden compuest \fBselect\fP para determinar el ancho del terminal al imprimir listas de selección. Si la opción \fBcheckwinsize\fP está activada o si, estando en una shell interactiva, se recibe una señal .SM \fBSIGWINCH\fP, seactivará automáticamente. .TP \fBCOMPREPLY\fP Variable vectorial donde \fBbash\fP leerá las diferentes posibilidades de autocompletado que genere una función de la shell invocada por la utilidad de autocompletado programable (consulte \fBAutocompletado Programable\fP más adelante). Cada elemento del vector contiene una posibilidad de autocompletado. .TP \fBEMACS\fP Si \fBbash\fP encuentra esta variable en el entorno cuando se inicia con el valor .if t \f(CWt\fP, .if n "t", interpretará que se está ejecutando dentro de un buffer de Emacs y deshabilitará la edición de línea. .TP \fBENV\fP Se expande y ejecuta de modo similar a .SM \fBBASH_ENV\fP (consulte \fBINVOCACIÓN\fP anteriormente) cuando se invoa en \fImodo posix\fP una shell interactiva. .TP \fBEXECIGNORE\fP Lista de patrones de la shell separados por comas (consulte \fBConcordancia de Patrones\fP) que definen nombres de archivos que cualquier orden debe ignorarse al realizar búsquedas mediante \fBPATH\fP. Aquellos archivos cuyo nombre completo (ruta incluida) concuerden con alguno de estos patrones no se considerarán archivos ejecutables a efectos de autocompletado de órdenes y ejecución de órdenes a través de búsquedas mediantes \fBPATH\fP. Esto no afecta al comportamiento de las órdenes \fB[\fP,\fBtest\fP ni \fB[[\fP. Los nombres de ruta completos en la tabla hash de órdenes no están sujetos a \fBEXECIGNORE\fP. Esta variable debe usarse para ignorar bibliotecas compartidas marcadas como ejecutables pero que no lo son. La concordancia de patrones tiene en cuenta la opción de la shell \fBextglob\fP. .TP \fBFCEDIT\fP El editor predeterminado para la orden nativa \fBfc\fP. .TP \fBFIGNORE\fP Una lista de sufijos separados por dos puntos que no hay que tener en cuenta cuando se realice una terminación de nombres de ficheros (consulte .SM \fBREADLINE\fP más adelante). Un nombre de archivo cuyo sufijo concuerde con una de las entradas en .SM \fBFIGNORE\fP se excluye de la lista de nombres de archivo a completar. Un valor de muestra es .if t \f(CW".o:~"\fP. .if n ".o:~" (Es necesario entrecomillar el valor asignado a esta variable al contener tildes). .TP \fBFUNCNEST\fP Si se le asigna un valor mayor de cero, definirá el máximo nivel de anidamiento. Las funciones que se invoquen con un nivel mayor provocarán que se interrumpa la ejecución de la orden en curso. .TP \fBGLOBIGNORE\fP Una lista de patrones separados por dos puntos que definen en conjunto de nombres de ficheros que no hay que tener en cuenta en la expansión de nombres de ruta. Si un nombre de fichero que concordaba en un patrón de expansión de nombres de rutas también concuerda con uno de los patrones en .SM \fBGLOBIGNORE\fP, se quita de la lista de concordancias. .TP \fBHISTCONTROL\fP Lista de valores separados por comas que gestiona la forma en que las órdenes se guardan en el histórico. Si esta lista contiene \fIignorespace\fP, no se guardarán en el histórico las líneas que comiencen por un \fBespacio\fP. Un vale de \fBignoredups\fP hará que no se guarden las líneas que coincidan con la entrada inmediatamente anterior. \fIignoreboth\fP es una combinación de \fIignorespace\fP e \fIignoredups\fP. \fIerasedups\fP hará que se borren todas las entradas anteriores que coincidan con la línea actual antes de insertarse ésta. Cualquier valor distinto de los anteriores será ignorado. Si .SM \fBHISTCONTROL\fP no está definido o no contiene un valor válido se guardarán en el histórico todas las líneas leídas por la shell, siempre según el valor de .SM \fBHISTIGNORE\fP. La segunda y subsiguientes líneas de una órden compuesta multilínea no se chequean y por lo tanto, se guardan en el histórico independientemente del valor de .SM \fBHISTCONTROL\fP. .TP \fBHISTFILE\fP El nombre del archivo en el que se guarda el historial de órdenes (consulte .SM \fBHISTORIAL\fP más adelante). El valor predeterminado es \fI~/.bash_history\fP. Si no está definido, no se guarda el historial de órdenes cuando se finalice una shell interactivo. .TP \fBHISTFILESIZE\fP El número máximo de líneas contenidas en el historial. Cuando se asigna un valor a esta variable, el historial se trunca, si es menester, para evitar sobrepasar dicho número de líneas. El valor predeterminado es 500. El historial se trunca también a este tamaño cuando finaliza una shell interactiva. .TP \fBHISTIGNORE\fP Una lista de patrones separados por dos puntos empleados para decidir qué líneas de órdenes deben guardarse en el historial. Cada patrón se ancla al principio de la línea y debe especificar la línea completamente (no se añade ningún `\fB*\fP'). Cada patrón se comprueba con la línea tras aplicarse las comprobaciones especificadas por \fBHISTCONTROL\fP. Además de los caracteres normales de concordancia de patrones de la shell, `\fB&\fP' concuerda con la línea de historia anterior. `\fB&\fP' puede protegerse empleando una barra inversa. Ésta se quita antes de intentarse una concordancia. La segunda línea y siguientes de una orden compuesta multi\-línea no se comprueban, y se añaden a la historia sin importar el valor de \fBHISTIGNORE\fP. La concordancia de patrones depende de la configuración de la opción de la shell \fBextglob\fP. .TP \fBHISTSIZE\fP Cantidad de órdenes que debe guardar el historial (Consulte .SM \fBHISTORIAL\fP más adelante). Si el valor es cero, no se guardarán las órdenes en el historial. Cualquier valor negativo hará que se guarden todas las órdenes sin límite alguno. Por defecto, la shell guarda 500 órdenes después de leer los archivos de inicio. .TP \fBHISTTIMEFORMAT\fP If this variable is set and not null, its value is used as a format string for \fIstrftime\fP(3) to print the time stamp associated with each history entry displayed by the \fBhistory\fP builtin. If this variable is set, time stamps are written to the history file so they may be preserved across shell sessions. This uses the history comment character to distinguish timestamps from other history lines. .TP \fBHOME\fP El directorio inicial de trabajo del usuario en curso; el argumento predeterminado para la orden nativa \fBcd\fP. El valor de esta variable se usa también cuando se realiza la expansión de tilde. .TP \fBHOSTFILE\fP Contiene el nombre de un fichero con el mismo formato que .FN /etc/hosts que debería leerse cuando la shell necesite completar un nombre de equipo. El archivo puede ser modificado durante la ejecución de la shell; la siguiente vez que se intente completar un nombre de equipo, \fBbash\fP añade el contenido del nuevo archivo a la base de datos ya existente. Si está definida la variable \fBHOSTFILE\fP pero no tiene ningún valor asignado o tiene asignado el nombre de un archivo que no se puede leer, \fBbash\fP intentará leer .FN /etc/hosts para conseguir la lista de posibles nombres de equipo. Si se resetea el valor de .SM \fBHOSTFILE\fP se vacia la lista de nombres de equipo. .TP \fBIFS\fP El \fISeparador Interno de Campo\fP que se emplea para la división de palabras tras la expansión y para dividir líneas en palabras con la orden nativa \fBread\fP. El valor predeterminado es \*(lq\*(rq. .TP \fBIGNOREEOF\fP Controla la acción de una shell interactiva al recibir un carácter .SM \fBEOF\fP como sola entrada. Si está definido, el valor es el número de caracteres .SM \fBEOF\fP consecutivos que deben teclearse como los primeros caracteres de una línea de entrada antes de que \fBbash\fP acabe. Si la variable existe pero no tiene un valor numérico, o ninguno, el valor predeterminado es 10. Si no existe, .SM \fBEOF\fP significa el final de la entrada para la shell. .TP \fBINPUTRC\fP El nombre de fichero para el de inicio de \fBreadline\fP, en vez del predeterminado .FN ~/.inputrc (consulte .SM \fBREADLINE\fP más adelante). .TP \fBINSIDE_EMACS\fP Si está presente esta variable cuando se inicia la shell, \fBbash\fP asume que se está ejecutando en el buffer de una shell de Emacs y podrá deshabilitar la edición en línea según el valor de \fBTERM\fP. .TP \fBLANG\fP Empleado para determinar la categoría de localización ("escenario") para cualquier categoría no seleccionada específicamente con una variable de las que empiezan por \fBLC_\fP. .TP \fBLC_ALL\fP Esta variable tiene preferencia sobre el valor de .SM \fBLANG\fP y de cualquier otra variable de las que empiecen por \fBLC_\fP especificando una categoría de localización. .TP \fBLC_COLLATE\fP Esta variable determina el orden de clasificación empleado cuando se ordene el resultado de una expansión de nombres de rutas, y determina el comportamiento de expresiones de intervalo, clases de equivalencia, y secuencias de clasificación dentro de expansiones de nombres de rutas y concordancia de patrones. .TP \fBLC_CTYPE\fP Esta variable determina la interpretación de caracteres y el comportamiento de clases de caracteres dentro de expansiones de nombres de rutas y concordancia de patrones. .TP \fBLC_MESSAGES\fP Esta variable determina la localización empleada para traducir cadenas entrecomilladas con comillas dobles precedidas por un \fB$\fP. .TP \fBLC_NUMERIC\fP Esta variable determina la localización empleada para el formato de los números. .TP \fBLC_TIME\fP Esta variable determina la localización empleada para el formato de fecha y hora. .TP \fBLINES\fP Utilizada por la orden compuesta \fBselect\fP para determinar la longitud de la columna para mostrar listas de selección. Definida automáticamente siempre que la opción \fBcheckwinsize\fP está activada o cuando se reciba una señal .SM \fBSIGWINCH\fP en una shell interactiva. .TP \fBMAIL\fP Si este parámetro está puesto a un nombre de archivo y la variable .SM \fBMAILPATH\fP no está definida, \fBbash\fP informa al usuario de la llegada de correo en el archivo definido o con formato Maildir. .TP \fBMAILCHECK\fP Define la frecuencia (en segundos) a la que \fBbash\fP comprueba si hay correo nuevo. El valor predeterminado es 60 s. Si es hora de comprobar si hay correo, la shell lo hace antes de mostrar el indicador primario. Si esta variable no está definida, o lo está con un valor inferior a cero, la shell no comprueba si hay correo nuevo. .TP \fBMAILPATH\fP Una lista de nombres de fichero separados por dos puntos donde hay que comprobar si hay correo nuevo. El mensaje que haya que mostrar cuando llegue correo a un fichero particular puede especificarse separando el nombre de fichero del mensaje con un '?'. Cuando se use en el texto del mensaje, \fB$_\fP se expande al nombre del fichero de correo en curso. Ejemplo: .RS .PP \fBMAILPATH\fP=\(aq/var/mail/bfox?"Tienes carta":~/shell\-mail?"¡$_ tiene carta!"\(aq .PP \fBBash\fP proporciona un valor predeterminado para esta variable, pero la localización de los archivos de correo del usuario que emplea, dependerá del sistema (p.ej. /var/mail/\fB$USER\fP). .RE .TP \fBOPTERR\fP Si se pone al valor 1, \fBbash\fP muestra mensajes de error generados por la orden nativa \fBgetopts\fP (consulte .SM \fBÓRDENES NATIVAS DE LA SHELL\fP más adelante). .SM \fBOPTERR\fP se inicia a 1 cada vez que se llama al shell o cuando se ejecuta un script de la shell. .TP \fBPATH\fP La ruta de búsqueda para órdenes, programas ejecutables. Es una lista de directorios separados entre si por dos puntos en los cuales la shell busca órdenes (consulte .SM \fBEJECUCIÓN DE ÓRDENES\fP a continuación). La ruta predeterminada depende del sistema siendo definida por el administrador que instala \fBbash\fP. Un valor habitual es .na .if t \f(CW/usr/local/bin:\:/usr/local/sbin:\:/usr/bin:\:/usr/sbin:\:/bin:\:/sbin\fP. .if n ``/usr/local/bin:\:/usr/local/sbin:\:/usr/bin:\:/usr/sbin:\:/bin:\:/sbin''. .ad .TP \fBPOSIXLY_CORRECT\fP Si esta variable está en el entorno cuando de inicie \fBbash\fP, la shell entrará en \fImodo posix\fP antes de cargar los archivos de inicio igual que si se emplease la opción \fB\-\-posix\fP. Si se define una vez que la shell se está ejecutando, \fBbash\fP activará el \fImodo posix\fP tal como si la orden .if t \f(CWset -o posix\fP .if n \fIset -o posix\fP se hubiese ejecutado. Cuando la shell entra en \fImodo posix\fP, definirá está variable si no lo está ya. .TP \fBPROMPT_COMMAND\fP si esta variable está definida (y es vectorial), se ejecutará el valor de cada elemento como una orden antes de emitir cada prompt primario. Si está definido pero no es una variable vectorial, se usará ese valor como orden para ejecutar. .TP \fBPROMPT_DIRTRIM\fP Si su valor es un número mayor que cero, su valor definirá la cantidad de componentes finales de directorios que se retienen al expandir las cadenas de escape \fB\ew\fP y \fB\eW\fP del indicador (prompt) (sonsulte .SM \fBPROMPTING\fP más adelante). Los caracteres eliminados se sustituyen por una elipsis. .TP \fBPS0\fP El valor de este parámetro se expande (consulte .SM \fBINDICADORES\fP más adelante) y lo muestran las shells interactivas después de leer una orden y despuñes de que sea ejecutada. .TP \fBPS1\fP El valor de este parámetro se expande (consulte .SM \fBINDICADORES\fP más adelante) y se emplea como la cadena del indicador primario. El valor predeterminado es \*(lq\fB\es\-\ev\e$ \fP\*(rq. .TP \fBPS2\fP El valor de este parámetro se expande como con .SM \fBPS1\fP y se emplea como la cadena del indicador secundario. El valor predeterminado es \*(lq\fB> \fP\*(rq. .TP \fBPS3\fP El valor de este parámetro se emplea como el indicador para la orden \fBselect\fP (consulte .SM \fBGRAMÁTICA DE LA SHELL\fP anteriormente). .TP \fBPS4\fP El valor de este parámetro se expande como con .SM \fBPS1\fP y el valor se imprime antes de cada orden que \fBbash\fP muestra durante una traza de ejecución. El primer carácter de .SM \fBPS4\fP se replica múltiples veces, tantas como sean necesarias, para indicar múltiples niveles de indirección. El valor predeterminado es \*(lq\fB+ \fP\*(rq. .TP \fBSHELL\fP Se expande al nombre completo de la ruta de la shell. Si no está definida al inicio de la shell, \fBbash\fP le asignará la ruta completa de la shell de inicio actual del usuario. .TP \fBTIMEFORMAT\fP El valor de este parámetro se emplea como una cadena de formato para especificar cómo debe mostrarse la información de tiempos para tuberías precedidas por la palabra reservada \fBtime\fP. El carácter \fB%\fP introduce una secuencia de escape que se expande a un valor de tiempo o a otra información. Las secuencias de escape y sus significados son como sigue; los corchetes denotan partes opcionales. .sp .5 .RS .PD 0 .TP 10 \fB%%\fP Un \fB%\fP literal. .TP \fB%[\fP\fIp\fP\fB][l]R\fP El tiempo total transcurrido en segundos. .TP \fB%[\fP\fIp\fP\fB][l]U\fP El número de segundos de CPU gastados en modo usuario. .TP \fB%[\fP\fIp\fP\fB][l]S\fP El número de segundos de CPU gastados en modo sistema. .TP \fB%P\fP El porcentaje de CPU, computado como (%U + %S) ÷ %R. .PD .RE .IP La \fIp\fP opcional es un dígito que especifica la \fIprecisión\fP, el número de decimales. Un valor de 0 hace que no se muestre ningún decimal, ni el punto o coma decimal. Como mucho se pueden especificar tres decimales; valores de \fIp\fP mayores de 3 se cambian a 3. Si \fIp\fP no se especifica, se usa precisamente el valor 3. .IP La \fIl\fP opcional especifica un formato más largo, incluyendo minutos, en la forma \fIMM\fPm\fISS\fP.\fIFF\fPs. El valor de \fIp\fP determina si se incluye o no la fracción. .IP Si esta variable no está definida, \fBbash\fP actúa como si tuviera el valor \fB$\(aq\enreal\et%3lR\enuser\et%3lU\ensys\et%3lS\(aq\fP. Si el valor es nulo, no se muestra ninguna información de tiempos. Se añade un salto de línea al final cuando se muestra la cadena de formato. .PD 0 .TP \fBTMOUT\fP Si se define a un valor mayor que cero, .SM \fBTMOUT\fP se interpreta como la cantidad de segundos de timout de la orden nativa \fBread\fP. Si se espera alguna entrada desde un terminal, la orden \fBselect\fP finaliza si ésta no llega transcurridos .SM \fBTMOUT\fP segundos. En una shell interactiva, este valor representa la cantidad de segundos a esperar por una entrada; si éste no llega, se muestra el indicador primario. \fBBash\fP finalizará transcurrida dicha cantidad de segundos no llega una línea completa de entrada.ue hay que esperar una entrada después de mostrarse el indicador primario. \fBBash\fP termina después de esperar ese número de segundos si no recibe ninguna entrada. .TP \fBTMPDIR\fP Si está definido, \fBbash\fP empleará su valor como nombre del directorio en el que creará los archivos temporales necesario para su el uso de la shell. .TP \fBauto_resume\fP Esta variable controla cómo la shell interactúa con el usuario para el control de tareas. Si esta variable está definida, las órdenes simples de una palabra sin redirección se tratan como candidatas para reanudar un trabajo existente parado. No se permite ninguna ambigüedad; si hay más de un trabajo que empiece con la cadena tecleada, se selecciona el trabajo al que se ha accedido más recientemente. El \fInombre\fP de un trabajo parado, en este contexto, es la línea de órdenes empleada para arrancarlo. Si se define al valor \fIexact\fP, la cadena suministrada debe concordar exactamente con el nombre de un trabajo parado; si se define como \fIsubstring\fP, la cadena suministrada necesita concordar con una subcadena del nombre de un trabajo parado. El valor \fIsubstring\fP proporciona una funcionalidad análoga a la del identificador de trabajo \fB%?\fP (consulte .SM \fBCONTROL DE TAREAS\fP más adelante). Si se pone a cualquier otro valor, la cadena suministrada debe ser un prefijo del nombre de un trabajo parado; esto proporciona una funcionalidad análoga a la del identificador de trabajo \fB%\fP\fIcadena\fP. .TP \fBhistchars\fP Los dos o tres caracteres que controlan la expansión y separación en lexemas de la historia (consulte .SM \fBEXPANSIÓN DEL HISTORIAL\fP a continuación). El primer carácter es el carácter de \fIexpansión del historial\fP, el carácter que señala el comienzo de una expansión de historia, normalmente `\fB!\fP'. El segundo carácter es el carácter de \fIsustitución rápida\fP, que se usa como una abreviatura para reejecutar la orden anterior, sustituyendo una cadena por otra en la orden. El valor predeterminado es `\fB^\fP'. El tercer carácter, opcional, es el carácter que indica que el resto de la línea es un comentario cuando se encuentra como el primer carácter de una palabra, normalmente es `\fB#\fP'. El carácter de comentario de historia hace que la sustitución de historia se salte en el resto de palabras de la línea. No hace que necesariamente el analizador léxico de la shell trate al resto de la línea como un a un comentario. .PD .SS Vectores \fBBash\fP proporciona variables vectores monodimensionales, indexados y asociativos. Cualquier variable puede usarse como un vector indexado; la orden nativa \fBdeclare\fP declarará un vector de forma expresa. No hay un límite máximo en el tamaño de un vector, ni ningún requisito para que los miembros se indexen o asignen de forma contigua. Los vectores se indexan empleando enteros (incluso expresiones aritméticas) y su primer elemento es el de índice cero, los vectores asociativos se referencian empleando cualquier cadena. Salvo que se indique expresamente lo contrario, los índices de los vectores indexados deberán ser siempre enteros positivos. .PP Un vector indexado se crea automáticamente si se asigna algo a una variable con la sintaxis \fInombre\fP[\fIíndice\fP]=\fIvalor\fP. El \fIíndice\fP se trata como una expresión aritmética que debe evaluarse a un número. Para declarar un vector explícitamente, emplee \fBdeclare \-a \fP\fInombre\fP (consulte .SM \fBÓRDENES NATIVAS DE LA SHELL\fP más adelante). También se acepta \fBdeclare \-a \fP\fInombre\fP\fB[\fP\fIíndice\fP\fB]\fP, donde el \fIíndice\fP no se tiene en cuenta. .PP Los vectores asociativos se crean mediante \fBdeclare \-A \fP\fInombre\fP. .PP Attributes may be specified for an array variable using the \fBdeclare\fP and \fBreadonly\fP builtins. Each attribute applies to all members of an array. .PP Los vectores se asignan mediante asignaciones compuestas en la forma \fInombre\fP=\fB(\fPvalor\fI1\fP ... valor\fIn\fP\fB)\fP, donde cada \fIvalor\fP puede tener la forma [\fIsubíndice\fP]=\fIcadena\fP. Las asignaciones de vectores indexados no requieren nada más que cadenas. Cada valor de la lista se expande utilizando todas las expansiones de shell que se describen a continuación en .SM \fBEXPANSIÓN\fP. Al asignar a matrices indexadas, si se proporcionan los corchetes y el subíndice opcionales, ese índice se asigna; sino, el índice del elemento asignado es el último índice asignado por la declaración más uno. La indexación comienza en cero. .PP Cuando se asignana a un vector asociativo, las palabras en una asignación compuesta pueden ser declaraciones de asignación, para las cuales se requiere el subíndice, o una lista de palabras que se interpreta como una secuencia de claves y valores alternos:\fInombre\fP=\fB( \fP\fIclave1 valor1 clave2 valor2\fP ...\fB)\fP. Estos se tratan de manera idéntica a \fInombre\fP=\fB(\fP [\fIclave1\fP]=\fIvalor1\fP [\fIclave2\fP]=\fIvalor2\fP ... \fB)\fP. La primera palabra de la lista determina cómo se interpretan las palabras restantes; todas las asignaciones en una lista deben ser del mismo tipo. Cuando se utilizan pares clave/valor, las claves no pueden faltar ni estar vacías; si falta cualquier valor, se trata como una cadena vacía. .PP Esta sintaxis también es aceptada por la orden nativa \fBdeclare\fP . Se pueden asignar elementos de individuales de un vector utilizando la sintaxis \fInombre\fP [\fIsubíndice\fP]=\fIvalor\fP introducida anteriormente. Al asignar a un vector indexado, si \fInombre\fP tiene un subíndice de un número negativo, ese número se interpreta como relativo a uno mayor que el índice máximo de \fInombre\fP, por lo que los índices negativos cuentan hacia atrás desde el final de la matriz y un índice de \-1 hace referencia al último elemento. .PP El operador += realizará añadidos a una variable vectorial cuando se haga con la sintaxis adecuada. Consulte .SM \fBPARÁMETROS\fP anteriormente. .PP Cualquier elemento de un vector puede referenciarse mediante ${\fInombre\fP[\fIíndice\fP]}. Las llaves son necesarias para evitar conflictos con la expansión de nombres de rutas. Si \fIíndice\fP es \fB@\fP o \fB*\fP, la palabra se expande a todos los miembros de \fInombre\fP. Estos índices difieren solamente cuando la palabra aparece entre comillas dobles. Si la palabra está entre comillas dobles, ${\fInombre\fP[*]} se expande a una sola palabra con el valor de cada miembro del vector separados por el primer carácter de la variable especial .SM \fBIFS\fP, y ${\fInombre\fP[@]} expande cada elemento de \fInombre\fP a una palabra separada. Cuando no hay miembros del vector, ${\fInombre\fP[@]} se expande a nada. Si la expansión entre dobles comillas ocurre dentro de una palabra, la expansión del primer parámetro se une al inicio de la palabra original y la expansión del último se une al final de dicha palabra. Esto es análogo a la expansión de los parámetros especiales \fB*\fP y \fB@\fP (consulte \fBParámetros especiales\fP anteriormente). ${#\fInombre\fP[\fIíndice\fP]} se expande a la longitud de ${\fInombre\fP[\fIíndice\fP]}. Si \fIíndice\fP es \fB*\fP o \fB@\fP, la expansión es el número de elementos del vector. Si \fIíndice\fP empleado para referirse a un elemento de un vector indexado equivale a un número menor que cero se entenderá como un número mayor que el máximo índice del vector, un índice de \-1 se referirá al último elemento. .PP Referenciar la variable de un vector sin un subíndice equivale a hacerlo con el subíndice cero. Es aceptable cualquier referencia a una variable usando un subíndice válido. \fBbash\fP creará un vector si necesario. .PP Se considera definidad a aquella variable de un vector si se asignó un valor a un subíndice. La cadena vacía es un valor válido. .PP Es posible obtener las claves (índices) de un vector así como los valores. ${\fB!\fP\fInombre\fP[\fI@\fP]} y ${\fB!\fP\fInombre\fP[\fI*\fP]} se expande a los índices asignados en la variable vectorial \fInombre\fP . El tratamiento entre comillas dobles es similar a la expansión de los parámetros especiales \fI@\fP y \fI*\fP entre comillas dobles. .PP La orden nativa \fBunset\fP se emplea para eliminar vectores. \fBunset\fP \fBnombre\fP[\fIíndice\fP] elimina el elemento del vector con el \fIíndice\fP definido tanto en vectores asociativos como indexados. Los índices negativos en vectores indexados se interpretan tal como se describió anteriormente. Aunque se desactive el último elemento de una variable vectorial, no se desactivará dicha variable. \fBunset\fP \fInombre\fP, donde \fInombre\fP es un vector, eliminará por completo dicho vector. \fBunset\fP \fInombre\fP[\fIíndice\fP], donde \fIíndice\fP es \fB*\fP o \fB@\fP, tendrá un comportamiento diferente según sea un vector asociativo o indexado. Si \fInombre\fP es un vector asociativo, desactivará el elemento con índice \fB*\fP o \fB@\fP. Si \fInombre\fP es un vector indexado, se eliminarán todos los elementos, no así el propio vector. .PP Cuando se utiliza un nombre de variable con un subíndice como argumento para una orden, tal como \fBunset\fP , sin utilizar la sintaxis de expansión de palabras descrita anteriormente, el argumento está sujeto a la expansión del nombre de ruta. Para evitar la expansión del nombre de la ruta, se debe citar el argumento. .PP Las órdenes nativas \fBdeclare\fP, \fBlocal\fP, y \fBreadonly\fP aceptan cada una una opción \fB\-a\fP para especificar un vector indexado (indexed array) y la opción \fB\-A\fP para especificad un vector asociativo (asociative array). Si se define ambas opciones, prevalecerá \fB\-A\fP. La orden nativa \fBread\fP acepta una \fB\-a\fP para asignar una lista de palabras leídas desde la entrada estándar a un vector. Las órdenes nativas \fBset\fP y \fBdeclare\fP muestran valores de un vector en una manera tal que les permite ser reutilizadas como asignaciones. .SH EXPANSIÓN La expansión se realiza en la línea de órdenes una vez que la orden ha sido dividida en palabras. Hay siete clases de expansión: \fIexpansión de llaves\fP, \fIexpansión de tilde\fP, \fIexpansión de parámetro y variable\fP, \fIsustitución de orden\fP, \fIexpansión aritmética\fP, \fIdivisión de palabras\fP, \fIexpansión de nombre de ruta\fP. .PP La orden de las expansiones es: expansión de llaves, de tilde, de parámetro, variable y aritmética, y sustitución de orden (hechas de izquierda a derecha), división de palabras, y expansión de nombre de ruta. .PP En sistemas que puedan admitirla, hay una expansión adicional disponible: \fIsustitución de proceso\fP. Ésta se realiza al mismo tiempo que la expansión de llaves, de tilde, de parámetro, variable y aritmética, y sustitución de orden. .PP Después de realizar estas expansiones, se eliminan las comillas de la palabra original salvo que éstas hayan sido entrecomilladas (\fIeliminación de comillas\fP). .PP Solo la expansión de llaves, la división de palabras y la expansión de nombre de ruta, pueden cambiar el número de palabras de la expansión; las otras expanden una palabra simple a otra palabra simple. Las únicas excepciones a esto son las expansiones de "\fB$@\fP" y "\fB${\fP\fInombre\fP\fB[@]}\fP" y en muchos casos \fB$*\fP y \fB${\fP\fIname\fP\fB[*]}\fP como se ha explicado más anteriormente (consulte .SM \fBPARÁMETROS\fP). .SS "Expansión de Llaves" La \fIexpansión de llaves\fP es un mecanismo por el cual pueden generarse cadenas arbitrarias. Este mecanismo es similar a la \fIexpansión de nombre de ruta\fP, pero los nombres de archivo creados no necesitan existir. Los patrones a ser expandidos con la expansión de llaves toman la forma de un \fIpreámbulo\fP opcional seguido por bien por una serie de cadenas separadas por comas entre un par de llaves o por una expresión secuencial entre llaves, seguido por un \fIpost scriptum\fP opcional. El preámbulo sirve de prefijo a cada cadena de entre las llaves, y el post scriptum se añade luego a cada cadena resultante, expandiendo de izquierda a derecha. .PP Las expansiones de llaves pueden anidarse. Los resultados de cada cadena expandida no se ordenan; se preserva el orden de izquierda a derecha. Por ejemplo, a\fB{\fPd,c,b\fB}\fPe se expande a `ade ace abe'. .PP A sequence expression takes the form \fB{\fP\fIx\fP\fB..\fP\fIy\fP\fB[..\fP\fIincr\fP\fB]}\fP, where \fIx\fP and \fIy\fP are either integers or single letters, and \fIincr\fP, an optional increment, is an integer. When integers are supplied, the expression expands to each number between \fIx\fP and \fIy\fP, inclusive. Supplied integers may be prefixed with \fI0\fP to force each term to have the same width. When either \fIx\fP or \fIy\fP begins with a zero, the shell attempts to force all generated terms to contain the same number of digits, zero\-padding where necessary. When letters are supplied, the expression expands to each character lexicographically between \fIx\fP and \fIy\fP, inclusive, using the default C locale. Note that both \fIx\fP and \fIy\fP must be of the same type (integer or letter). When the increment is supplied, it is used as the difference between each term. The default increment is 1 or \-1 as appropriate. .PP La expansión de llaves se realiza antes que cualquier otra, y cualquier carácter especial para otras expansiones se preserva en el resultado. Es estrictamente textual. \fBBash\fP no aplica ninguna interpretación sintáctica al contexto de la expansión ni al texto entre las llaves. .PP Una expansión de llaves correctamente formada debe contener llaves de apertura y cierre sin entrecomillar, y al menos una coma sin entrecomillar o una secuencia válida. Cualquier expansión de llaves formada incorrectamente se deja inalterada. Una \fB{\fP o \fB,\fP puede protegerse con una barra invertida para evitar que sea considerada como parte de una expansión de llaves. Para evitar conflictos con la expansión de parámetros, la cadena \fB${\fP no puede incorporarse en una expansión de llaves y evita que se ocurra hasta la llave de cierre \fB}\fP. .PP Esta construcción se emplea normalmente como una abreviatura cuando el prefijo común de las cadenas a generar es mayor que en el ejemplo de antes: .RS .PP mkdir /usr/local/src/bash/{old,new,dist,bugs} .RE o .RS chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}} .RE .PP La expansión de llaves introduce una pequeña incompatibilidad con versiones anteriores de \fBsh\fP. \fBsh\fP no considera como caracteres especiales a las llaves de apertura o cierre cuando aparecen como parte de una palabra, y las deja en la entrada. \fBBash\fP quita las llaves de palabras, como una consecuencia de la expansión de llaves. Por ejemplo, una palabra introducida a \fBsh\fP como \fIfichero{1,2}\fP aparece así mismo en la entrada. La misma palabra se muestra como \fIfichero1 fichero2\fP tras la expansión hecha por \fBbash\fP. Si se desea una compatibilidad estricta con \fBsh\fP, inicie \fBbash\fP con la opción \fB+B\fP o inhabilite la expansión de llaves con la opción \fB+B\fP de la orden nativa \fBset\fP (consulte .SM \fBÓRDENES NATIVAS DE LA SHELL\fP más adelante). .SS "Expansión de Tilde" Si una palabra comienza con un carácter tilde de la ñ sin entrecomillar (`\fB~\fP'), todos los caracteres que precedan a la primera barra inclinada sin entrecomillar (o todos los caracteres, si no hay ninguna barra inclinada sin proteger), se consideran un \fIprefijo\-tilde\fP. Si ninguno de los caracteres en el prefijo\-tilde están protegidos, los caracteres en el prefijo\-tilde que siguen a la tilde se tratan como un posible \fInombre de entrada\fP de usuario (login). Si este nombre de entrada es la cadena vacía, la tilde se reemplaza con el valor del parámetro de la shell .SM \fBHOME\fP. Si .SM \fBHOME\fP no está definida, se sustituye en su lugar el directorio de trabajo inicial del usuario que está ejecutando la shell. De otra forma, el prefijo\-tilde se reemplaza con el directorio de trabajo inicial (de casa) asociado con el nombre de entrada especificado. .PP Si el prefijo\-tilde es un `~+', el valor de la variable de la shell .SM \fBPWD\fP reemplaza al prefijo\-tilde. Si el prefijo\-tilde es un `~\-', el valor de la variable de la shell .SM \fBOLDPWD\fP, si está definido, se sustituye. Si los caracteres que siguen a la tilde en el prefijo\-tilde consisten en un número \fIN\fP, prefijado opcionalmente por un `+' o un `\-', el prefijo\-tilde se reemplaza con el elemento correspondiente de la pila de directorios, como lo mostraría la orden nativa \fBdirs\fP llamada con el prefijo\-tilde como argumento. Si los caracteres tras la tilde en el prefijo\-tilde consisten en un número sin un `+' ni `\-' iniciales, se supone `+'. .PP Si el nombre de entrada es inválido, o si la expansión de tilde falla, la palabra se deja tal cual. .PP A cada asignación de variable se comprueba si hay prefijos\-tilde sin entrecomillar inmediatamente tras un \fB:\fP o el primer \fB=\fP. En estos casos, la expansión de tilde también tiene lugar. Consecuentemente, uno puede usar nombres de ficheros con tildes en asignaciones a .SM \fBPATH\fP, .SM \fBMAILPATH\fP, y .SM \fBCDPATH\fP, y la shell asigna el valor expandido. .PP Bash also performs tilde expansion on words satisfying the conditions of variable assignments (as described above under .SM \fBPARAMETERS\fP) when they appear as arguments to simple commands. Bash does not do this, except for the \fIdeclaration\fP commands listed above, when in \fIposix mode\fP. .SS "Expansión de Parámetro" El carácter `\fB$\fP' introduce la expansión de parámetro, sustitución de orden, o expansión aritmética. El nombre de parámetro o símbolo a ser expandido puede estar encerrado entre llaves, que son opcionales pero sirven para proteger a la variable en la expansión de caracteres que la sigan y puedan interpretarse como parte de su nombre. .PP Cuando se empleen llaves, la de cierre es la primera `\fB}\fP' no protegida con una barra invertida o en una cadena entrecomillada, y no dentro de una expansión aritmética empotrada, sustitución de orden, o expansión de parámetro. .PP .PD 0 .TP ${\fIparámetro\fP} Se sustituye el valor de \fIparámetro\fP. Se requieren llaves cuando \fIparámetro\fP es un parámetro posicional de más de un dígito, o cuando \fIparámetro\fP viene seguido por un carácter que no debe interpretarse como parte de su nombre. El \fIparámetro\fP es un parámetro de la shell tal como se describe en la sección \fBPARÁMETROS\fP o una referencia a un vector (\fBVectores\fP). .PD .PP If the first character of \fIparameter\fP is an exclamation point (\fB!\fP), and \fIparameter\fP is not a \fInameref\fP, it introduces a level of indirection. \fBBash\fP uses the value formed by expanding the rest of \fIparameter\fP as the new \fIparameter\fP; this is then expanded and that value is used in the rest of the expansion, rather than the expansion of the original \fIparameter\fP. This is known as \fIindirect expansion\fP. The value is subject to tilde expansion, parameter expansion, command substitution, and arithmetic expansion. If \fIparameter\fP is a nameref, this expands to the name of the parameter referenced by \fIparameter\fP instead of performing the complete indirect expansion. The exceptions to this are the expansions of ${\fB!\fP\fIprefix\fP\fB*\fP} and ${\fB!\fP\fIname\fP[\fI@\fP]} described below. The exclamation point must immediately follow the left brace in order to introduce indirection. .PP En cada uno de los casos descritos a continuación, sobre \fIpalabra\fP se aplican expansión de tilde, expansión de parámetro, sustitución de orden y expansión aritmética. .PP When not performing substring expansion, using the forms documented below (e.g., \fB:\-\fP), \fBbash\fP tests for a parameter that is unset or null. Omitting the colon results in a test only for a parameter that is unset. .PP .PD 0 .TP ${\fIparámetro\fP\fB:\-\fP\fIpalabra\fP} \fBEmplear valores predeterminados\fP. Si \fIparámetro\fP no está definido o está vacío, se sustituye la expansión de \fIpalabra\fP. De otro modo, se sustituye el valor de \fIparámetro\fP. .TP ${\fIparámetro\fP\fB:=\fP\fIpalabra\fP} \fBAsignar valores predeterminados\fP. Si \fIparámetro\fP no está definido o es nulo, la expansión de \fIpalabra\fP se asigna a \fIparámetro\fP. Luego, el valor de \fIparámetro\fP se sustituye. No se puede asignar nada de esta manera a los parámetros posicionales ni a los especiales. .TP ${\fIparámetro\fP\fB:?\fP\fIpalabra\fP} \fBMuestra un error si no está definido o está vacío\fP. Si \fIparámetro\fP es nulo o no está definido, la expansión de \fIpalabra\fP (o un mensaje a tal efecto si \fIpalabra\fP no está presente) se escribe en la salida estándar de errores y la shell, si no es interactivo, acaba. De otra manera, se sustituye el valor de \fIparámetro\fP. .TP ${\fIparámetro\fP\fB:+\fP\fIpalabra\fP} \fBEmplear un valor alternativo\fP. Si \fIparámetro\fP está vacío o no está definido, no se sustituye nada; de otro modo, se sustituye la expansión de \fIpalabra\fP. .TP ${\fIparámetro\fP\fB:\fP\fIdesplazamiento\fP} .PD 0 .TP ${\fIparámetro\fP\fB:\fP\fIdesplazamiento\fP\fB:\fP\fIlongitud\fP} .PD \fBSubstring Expansion\fP. Expands to up to \fIlength\fP characters of the value of \fIparameter\fP starting at the character specified by \fIoffset\fP. If \fIparameter\fP is \fB@\fP or \fB*\fP, an indexed array subscripted by \fB@\fP or \fB*\fP, or an associative array name, the results differ as described below. If \fIlength\fP is omitted, expands to the substring of the value of \fIparameter\fP starting at the character specified by \fIoffset\fP and extending to the end of the value. \fIlength\fP and \fIoffset\fP are arithmetic expressions (see .SM \fBARITHMETIC EVALUATION\fP below). .sp 1 If \fIoffset\fP evaluates to a number less than zero, the value is used as an offset in characters from the end of the value of \fIparameter\fP. If \fIlength\fP evaluates to a number less than zero, it is interpreted as an offset in characters from the end of the value of \fIparameter\fP rather than a number of characters, and the expansion is the characters between \fIoffset\fP and that result. Note that a negative offset must be separated from the colon by at least one space to avoid being confused with the \fB:\-\fP expansion. .sp 1 If \fIparameter\fP is \fB@\fP or \fB*\fP, the result is \fIlength\fP positional parameters beginning at \fIoffset\fP. A negative \fIoffset\fP is taken relative to one greater than the greatest positional parameter, so an offset of \-1 evaluates to the last positional parameter. It is an expansion error if \fIlength\fP evaluates to a number less than zero. .sp 1 If \fIparameter\fP is an indexed array name subscripted by @ or *, the result is the \fIlength\fP members of the array beginning with ${\fIparameter\fP[\fIoffset\fP]}. A negative \fIoffset\fP is taken relative to one greater than the maximum index of the specified array. It is an expansion error if \fIlength\fP evaluates to a number less than zero. .sp 1 Substring expansion applied to an associative array produces undefined results. .sp 1 Substring indexing is zero\-based unless the positional parameters are used, in which case the indexing starts at 1 by default. If \fIoffset\fP is 0, and the positional parameters are used, \fB$0\fP is prefixed to the list. .TP ${\fB!\fP\fIprefijo\fP\fB*\fP} .PD 0 .TP ${\fB!\fP\fIprefijo\fP\fB@\fP} .PD \fBNames matching prefix\fP. Expands to the names of variables whose names begin with \fIprefix\fP, separated by the first character of the .SM \fBIFS\fP special variable. When \fI@\fP is used and the expansion appears within double quotes, each variable name expands to a separate word. .TP ${\fB!\fP\fInombre\fP[\fI@\fP]} .PD 0 .TP ${\fB!\fP\fInombre\fP[\fI*\fP]} .PD \fBList of array keys\fP. If \fIname\fP is an array variable, expands to the list of array indices (keys) assigned in \fIname\fP. If \fIname\fP is not an array, expands to 0 if \fIname\fP is set and null otherwise. When \fI@\fP is used and the expansion appears within double quotes, each key expands to a separate word. .TP ${\fB#\fP\fIparámetro\fP} \fBParameter length\fP. The length in characters of the value of \fIparameter\fP is substituted. If \fIparameter\fP is \fB*\fP or \fB@\fP, the value substituted is the number of positional parameters. If \fIparameter\fP is an array name subscripted by \fB*\fP or \fB@\fP, the value substituted is the number of elements in the array. If \fIparameter\fP is an indexed array name subscripted by a negative number, that number is interpreted as relative to one greater than the maximum index of \fIparameter\fP, so negative indices count back from the end of the array, and an index of \-1 references the last element. .TP ${\fIparámetro\fP\fB#\fP\fIpalabra\fP} .PD 0 .TP ${\fIparámetro\fP\fB##\fP\fIpalabra\fP} .PD \fBRemove matching prefix pattern\fP. The \fIword\fP is expanded to produce a pattern just as in pathname expansion, and matched against the expanded value of \fIparameter\fP using the rules described under \fBPattern Matching\fP below. If the pattern matches the beginning of the value of \fIparameter\fP, then the result of the expansion is the expanded value of \fIparameter\fP with the shortest matching pattern (the \*(lq\fB#\fP\*(rq case) or the longest matching pattern (the \*(lq\fB##\fP\*(rq case) deleted. If \fIparameter\fP is \fB@\fP or \fB*\fP, the pattern removal operation is applied to each positional parameter in turn, and the expansion is the resultant list. If \fIparameter\fP is an array variable subscripted with \fB@\fP or \fB*\fP, the pattern removal operation is applied to each member of the array in turn, and the expansion is the resultant list. .TP ${\fIparámetro\fP\fB%\fP\fIpalabra\fP} .PD 0 .TP ${\fIparámetro\fP\fB%%\fP\fIpalabra\fP} .PD \fBRemove matching suffix pattern\fP. The \fIword\fP is expanded to produce a pattern just as in pathname expansion, and matched against the expanded value of \fIparameter\fP using the rules described under \fBPattern Matching\fP below. If the pattern matches a trailing portion of the expanded value of \fIparameter\fP, then the result of the expansion is the expanded value of \fIparameter\fP with the shortest matching pattern (the \*(lq\fB%\fP\*(rq case) or the longest matching pattern (the \*(lq\fB%%\fP\*(rq case) deleted. If \fIparameter\fP is \fB@\fP or \fB*\fP, the pattern removal operation is applied to each positional parameter in turn, and the expansion is the resultant list. If \fIparameter\fP is an array variable subscripted with \fB@\fP or \fB*\fP, the pattern removal operation is applied to each member of the array in turn, and the expansion is the resultant list. .TP ${\fIparámetro\fP\fB/\fP\fIpatrón\fP\fB/\fP\fIcadena\fP} .PD 0 .TP ${\fIparámetro\fP\fB//\fP\fIpatrón\fP\fB/\fP\fIcadena\fP} .TP ${\fIparámetro\fP\fB/#\fP\fIpatrón\fP\fB/\fP\fIcadena\fP} .TP ${\fIparámetro\fP\fB/%\fP\fIpatrón\fP\fB/\fP\fIcadena\fP} .PD \fBPattern substitution\fP. The \fIpattern\fP is expanded to produce a pattern just as in pathname expansion. \fIParameter\fP is expanded and the longest match of \fIpattern\fP against its value is replaced with \fIstring\fP. \fIstring\fP undergoes tilde expansion, parameter and variable expansion, arithmetic expansion, command and process substitution, and quote removal. The match is performed using the rules described under \fBPattern Matching\fP below. In the first form above, only the first match is replaced. If there are two slashes separating \fIparameter\fP and \fIpattern\fP (the second form above), all matches of \fIpattern\fP are replaced with \fIstring\fP. If \fIpattern\fP is preceded by \fB#\fP (the third form above), it must match at the beginning of the expanded value of \fIparameter\fP. If \fIpattern\fP is preceded by \fB%\fP (the fourth form above), it must match at the end of the expanded value of \fIparameter\fP. If the expansion of \fIstring\fP is null, matches of \fIpattern\fP are deleted. If \fIstring\fP is null, matches of \fIpattern\fP are deleted and the \fB/\fP following \fIpattern\fP may be omitted. .sp 1 Si la opción de shell \fBpathsub_replacement\fP está activada mediante \fBshopt\fP, cualquier instancia de \fB&\fP sin entrecomillar contenida en \fIcadena\fP será sustituida por la parte concordante de \fIpatrón\fP. .sp 1 Quoting any part of \fIstring\fP inhibits replacement in the expansion of the quoted portion, including replacement strings stored in shell variables. Backslash will escape \fB&\fP in \fIstring\fP; the backslash is removed in order to permit a literal \fB&\fP in the replacement string. Backslash can also be used to escape a backslash; \fB\e\e\fP results in a literal backslash in the replacement. Users should take care if \fIstring\fP is double\-quoted to avoid unwanted interactions between the backslash and double\-quoting, since backslash has special meaning within double quotes. Pattern substitution performs the check for unquoted \fB&\fP after expanding \fIstring\fP; shell programmers should quote any occurrences of \fB&\fP they want to be taken literally in the replacement and ensure any instances of \fB&\fP they want to be replaced are unquoted. .sp 1 If the \fBnocasematch\fP shell option is enabled, the match is performed without regard to the case of alphabetic characters. If \fIparameter\fP is \fB@\fP or \fB*\fP, the substitution operation is applied to each positional parameter in turn, and the expansion is the resultant list. If \fIparameter\fP is an array variable subscripted with \fB@\fP or \fB*\fP, the substitution operation is applied to each member of the array in turn, and the expansion is the resultant list. .TP ${\fIparámetro\fP\fB^\fP\fIpatrón\fP} .PD 0 .TP ${\fIparámetro\fP\fB^^\fP\fIpatrón\fP} .TP ${\fIparámetro\fP\fB,\fP\fIpatrón\fP} .TP ${\fIparámetro\fP\fB,,\fP\fIpatrón\fP} .PD \fBCase modification\fP. This expansion modifies the case of alphabetic characters in \fIparameter\fP. The \fIpattern\fP is expanded to produce a pattern just as in pathname expansion. Each character in the expanded value of \fIparameter\fP is tested against \fIpattern\fP, and, if it matches the pattern, its case is converted. The pattern should not attempt to match more than one character. The \fB^\fP operator converts lowercase letters matching \fIpattern\fP to uppercase; the \fB,\fP operator converts matching uppercase letters to lowercase. The \fB^^\fP and \fB,,\fP expansions convert each matched character in the expanded value; the \fB^\fP and \fB,\fP expansions match and convert only the first character in the expanded value. If \fIpattern\fP is omitted, it is treated like a \fB?\fP, which matches every character. If \fIparameter\fP is \fB@\fP or \fB*\fP, the case modification operation is applied to each positional parameter in turn, and the expansion is the resultant list. If \fIparameter\fP is an array variable subscripted with \fB@\fP or \fB*\fP, the case modification operation is applied to each member of the array in turn, and the expansion is the resultant list. .TP ${\fIparámetro\fP\fB:\fP\fIoperador\fP} \fBTransformación de parámetros\fP. La expansión puede ser una transformación del valor de \fIparámetro\fP o información sobre el propio \fIparámetro\fP dependiendo del valor del \fIoperador\fP. Cada \fIoperador\fP consta de una única letra: .sp 1 .RS .PD 0 .TP \fBU\fP La expansión será una cadena formada por el valor del \fIparámetro\fP con sus letras minúsculas pasadas a mayúsculas. .TP \fBu\fP La expansión será una cadena formada por el valor de \fIparámetro\fP con su primer carácter en mayúsculas, siempre que sea una letra. .TP \fBL\fP La expansión será una cadena formada por el valor de \fIparámetros\fP con sus letras mayúsculas convertidas en minúsculas. .TP \fBQ\fP La expansión es una cadena formada por el valor de \fIparámetro\fP en un formato adecuado para ser utilizado como valor de entrada. .TP \fBE\fP La expansión será una cadena formada por el valor de \fIparámetro\fP expandiendo las barras invertidas de forma análoga al sistema de comillas \fB$\(aq...\(aq\fP. .TP \fBP\fP La expansión será una cadena formada por el resultado de expandir el valor de \fIparámetro\fP como si fuera un indicador de la shell (consulte \fBINDICADORES\fP más adelante). .TP \fBA\fP The expansion is a string in the form of an assignment statement or \fBdeclare\fP command that, if evaluated, will recreate \fIparameter\fP with its attributes and value. .TP \fBK\fP Produces a possibly\-quoted version of the value of \fIparameter\fP, except that it prints the values of indexed and associative arrays as a sequence of quoted key\-value pairs (see \fBArrays\fP above). .TP \fBa\fP La expansión será una cadena formada por los valores de opciones que representan los atributos de \fIparámetro\fP. .TP \fBk\fP Igual que la transformación K, salvo que expande las claves y los valores de los vectores asociativos e indexados en palabras separadas después de la división de palabra. .PD .PP Si \fIparámetro\fP es \fB@\fP o \fB*\fP, la operación se aplicará a cada parámetro posicional por turnos, y la expansión es la lista resultante. Si \fIparámetro\fP es una variable vectorial indexada con \fB@\fP o \fB*\fP, la operación de borrado del patrón se aplica a cada miembro del vector por orden, y la expansión es la lista resultante. .sp 1 El resultado de la expansión puede posteriormente ser objeto de división de palabra y expansión del nombre de ruta tal como se describe más adelante. .RE .SS "Sustitución de Orden" \fILa sustitución de orden\fP permite a la salida de una orden reemplazar al nombre de la orden. Hay dos formas: .RS .PP \fB$(\fP\fIorden\fP\|\fB)\fP .RE o .RS \fB\`\fP\fIorden\fP\fB\`\fP .RE .PP \fBBash\fP realiza la expansión ejecutando \fIorden\fP en una subshell y reemplazando la sustitución de orden con la salida estándar de la orden, quitando los saltos de línea finales. Los saltos de línea empotrados no se borran, pero pueden ser eliminados durante la división de palabras. La sustitución de orden \fB$(cat \fP\fIarchivo\fP\fB)\fP puede reemplazarse por lo equivalente pero más rápido \fB$(< \fP\fIarchivo\fP\fB)\fP. .PP Cuando se emplea la forma de sustitución al viejo estilo con las comillas inversas, la barra invertida mantiene su significado literal excepto cuando es seguida por \fB$\fP, \fB\`\fP, o \fB\e\fP. La primera comilla inversa no precedida por una barra invertida termina la sustitución de orden. Cuando se emplea la forma $(\^\fIorden\fP\|), todos los caracteres entre los paréntesis forman parte de la orden; ninguno se considera como especial. .PP Las sustituciones de orden pueden anidarse. Para anidar cuando se emplee la forma de comillas inversas, proteja las comillas inversas internas con barras inversas. .PP Si la sustitución aparece dentro de las dobles comillas, la división de palabras y la expansión de nombres no se realiza en los resultados. .SS "Expansión Aritmética" La expansión aritmética permite la evaluación de una expresión aritmética y la sustitución del resultado. El formato para la expansión aritmética es: .RS .PP \fB$((\fP\fIexpresión\fP\fB))\fP .RE .PP El antiguo formato \fB$[\fP\fIexpresión\fP\fB]\fP es obsoleto y se eliminará en futuras versiones de bash. .PP La \fIexpresión\fP se trata como si estuviera entre comillas dobles, pero un signo de doble comilla en \fIexpresión\fP no se considera un carácter especial y se elimina. Todos los lexemas en la expresión están sujetos a expansión de parámetro, expansión de cadena, sustitución de orden, y eliminación de comillas. El resultado se tratará coma la expansión aritmética a evaluar, dichas expansiones pueden anidarse. .PP La evaluación se realiza de acuerdo a las reglas listadas más adelante en .SM \fBEVALUACIÓN ARITMÉTICA\fP. Si \fIexpresión\fP no es válida, \fBbash\fP imprime un mensaje indicando el fallo y no ocurre ninguna sustitución. .SS "Sustitución de Proceso" \fIProcess substitution\fP allows a process's input or output to be referred to using a filename. It takes the form of \fB<(\fP\fIlist\^\fP\fB)\fP or \fB>(\fP\fIlist\^\fP\fB)\fP. The process \fIlist\fP is run asynchronously, and its input or output appears as a filename. This filename is passed as an argument to the current command as the result of the expansion. If the \fB>(\fP\fIlist\^\fP\fB)\fP form is used, writing to the file will provide input for \fIlist\fP. If the \fB<(\fP\fIlist\^\fP\fB)\fP form is used, the file passed as an argument should be read to obtain the output of \fIlist\fP. Process substitution is supported on systems that support named pipes (\fIFIFOs\fP) or the \fB/dev/fd\fP method of naming open files. .PP Cuando esté disponible, se realiza la sustitución de proceso simultáneamente con la expansión de parámetro y variable, sustitución de orden y expansión aritmética. .SS "División de Palabra" la shell examina los resultados de la expansión de parámetro, sustitución de orden y expansión aritmética que no ocurrieron dentro de comillas dobles para realizar la \fIdivisión de palabras\fP. .PP The shell treats each character of .SM \fBIFS\fP as a delimiter, and splits the results of the other expansions into words using these characters as field terminators. If .SM \fBIFS\fP is unset, or its value is exactly \fB\fP, the default, then sequences of \fB\fP, \fB\fP, and \fB\fP at the beginning and end of the results of the previous expansions are ignored, and any sequence of .SM \fBIFS\fP characters not at the beginning or end serves to delimit words. If .SM \fBIFS\fP has a value other than the default, then sequences of the whitespace characters \fBspace\fP, \fBtab\fP, and \fBnewline\fP are ignored at the beginning and end of the word, as long as the whitespace character is in the value of .SM \fBIFS\fP (an .SM \fBIFS\fP whitespace character). Any character in .SM \fBIFS\fP that is not .SM \fBIFS\fP whitespace, along with any adjacent .SM \fBIFS\fP whitespace characters, delimits a field. A sequence of .SM \fBIFS\fP whitespace characters is also treated as a delimiter. If the value of .SM \fBIFS\fP is null, no word splitting occurs. .PP Explicit null arguments (\^\fB"\^"\fP or \^\fB\(aq\^\(aq\fP\^) are retained and passed to commands as empty strings. Unquoted implicit null arguments, resulting from the expansion of parameters that have no values, are removed. If a parameter with no value is expanded within double quotes, a null argument results and is retained and passed to a command as an empty string. When a quoted null argument appears as part of a word whose expansion is non\-null, the null argument is removed. That is, the word \f(CW\-d\(aq\^\(aq\fP becomes \f(CW\-d\fP after word splitting and null argument removal. .PP Observe que si no hay expansión, tampoco se realiza la división de palabras. .SS "Expansión de Nombres de Ruta" After word splitting, unless the \fB\-f\fP option has been set, \fBbash\fP scans each word for the characters \fB*\fP, \fB?\fP, and \fB[\fP. If one of these characters appears, and is not quoted, then the word is regarded as a \fIpattern\fP, and replaced with an alphabetically sorted list of filenames matching the pattern (see .SM \fBPattern Matching\fP below). If no matching filenames are found, and the shell option \fBnullglob\fP is not enabled, the word is left unchanged. If the \fBnullglob\fP option is set, and no matches are found, the word is removed. If the \fBfailglob\fP shell option is set, and no matches are found, an error message is printed and the command is not executed. If the shell option \fBnocaseglob\fP is enabled, the match is performed without regard to the case of alphabetic characters. Note that when using range expressions like [a\-z] (see below), letters of the other case may be included, depending on the setting of \fBLC_COLLATE.\fP When a pattern is used for pathname expansion, the character \fB\*(lq.\*(rq\fP at the start of a name or immediately following a slash must be matched explicitly, unless the shell option \fBdotglob\fP is set. In order to match the filenames \fB\*(lq.\*(rq\fP and \fB\*(lq..\*(rq\fP, the pattern must begin with \*(lq.\*(rq (for example, \*(lq.?\*(rq), even if \fBdotglob\fP is set. If the \fBglobskipdots\fP shell option is enabled, the filenames \fB\*(lq.\*(rq\fP and \fB\*(lq..\*(rq\fP are never matched, even if the pattern begins with a \fB\*(lq.\*(rq\fP. When not matching pathnames, the \fB\*(lq.\*(rq\fP character is not treated specially. When matching a pathname, the slash character must always be matched explicitly by a slash in the pattern, but in other matching contexts it can be matched by a special pattern character as described below under .SM \fBPattern Matching\fP. See the description of \fBshopt\fP below under .SM \fBSHELL BUILTIN COMMANDS\fP for a description of the \fBnocaseglob\fP, \fBnullglob\fP, \fBglobskipdots\fP, \fBfailglob\fP, and \fBdotglob\fP shell options. .PP La variable de la shell .SM \fBGLOBIGNORE\fP puede utilizarse para restringir el conjunto de nombres de archivo que concuerden con un \fIpatrón\fP. Si .SM \fBGLOBIGNORE\fP está definido, cada nombre de archivo concordante que también coincida con uno de los patrones en .SM \fBGLOBIGNORE\fP se quita de la lista de concordancias. Los nombres de archivo \fB\*(lq.\*(rq\fP y \fB\*(lq..\*(rq\fP nunca son tenidos en cuenta, incluso cuando .SM \fBGLOBIGNORE\fP esté puesto. Sin embargo, definir .SM \fBGLOBIGNORE\fP activa la opción de la shell \fBdotglob\fP, de modo que todos los otros nombres de archivo que comiencen con un \fB\*(lq.\*(rq\fP concordarán. Para obtener el comportamiento anterior de no hacer caso de nombres de archivo que comienzan con un \fB\*(lq.\*(rq\fP, haga que \fB\*(lq.*\*(rq\fP sea uno de los patrones de .SM \fBGLOBIGNORE\fP. La opción \fBdotglob\fP está deshabilitada cuando .SM \fBGLOBIGNORE\fP no está definido. La concordancia de patrones depende de la configuración de la opción de la sehll \fBextglob\fP. .PP \fBConcordancia\fP .PP Cualquier carácter que aparezca en un patrón, aparte de los especiales descritos más adelante, concuerda consigo mismo. El carácter NUL no puede estar en un patrón. Una barra invertida protege al siguiente carácter y no se tiene en cuenta durante la búsqueda de concordancias. Los caracteres de patrón especiales deben protegerse si han de concordar literalmente consigo mismos. .PP Los caracteres de patrón especiales tienen los siguientes significados: .PP .PD 0 .RS .TP \fB*\fP Matches any string, including the null string. When the \fBglobstar\fP shell option is enabled, and \fB*\fP is used in a pathname expansion context, two adjacent \fB*\fPs used as a single pattern will match all files and zero or more directories and subdirectories. If followed by a \fB/\fP, two adjacent \fB*\fPs will match only directories and subdirectories. .TP \fB?\fP Concuerda con un solo carácter cualquiera. .TP \fB[...]\fP Matches any one of the enclosed characters. A pair of characters separated by a hyphen denotes a \fIrange expression\fP; any character that falls between those two characters, inclusive, using the current locale's collating sequence and character set, is matched. If the first character following the \fB[\fP is a \fB!\fP or a \fB^\fP then any character not enclosed is matched. The sorting order of characters in range expressions, and the characters included in the range, are determined by the current locale and the values of the .SM \fBLC_COLLATE\fP or .SM \fBLC_ALL\fP shell variables, if set. To obtain the traditional interpretation of range expressions, where \fB[a\-d]\fP is equivalent to \fB[abcd]\fP, set value of the \fBLC_ALL\fP shell variable to \fBC\fP, or enable the \fBglobasciiranges\fP shell option. A \fB\-\fP may be matched by including it as the first or last character in the set. A \fB]\fP may be matched by including it as the first character in the set. .br .if t .sp 0.5 .if n .sp 1 Dentro de \fB[\fP y \fB]\fP, se pueden especificar \fIclases de caracteres\fP mediante la sintaxis \fB[:\fP\fIclase\fP\fB:]\fP, donde \fIclase\fP es una de las siguientes clases definidas en el estándar POSIX: .PP .RS .B .if n alnum alpha ascii blank cntrl digit graph lower print punct space upper word xdigit .if t alnum alpha ascii blank cntrl digit graph lower print punct space upper word xdigit .br Una clase de caracteres concuerda con cualquier carácter que pertenezca a esa clase El carácter \fBword\fP concordará con letras, cifras y el carácter \&'_'. .br .if t .sp 0.5 .if n .sp 1 Dentro de \fB[\fP y \fB]\fP, una \fIclase de equivalencia\fP se puede especificar empleando la sintaxis \fB[=\fP\fIc\fP\fB=]\fP, que concuerda con todos los caracteres con el mismo peso de clasificación (tal como lo defina la localización en curso) que el carácter \fIc\fP. .br .if t .sp 0.5 .if n .sp 1 Dentro de \fB[\fP y \fB]\fP, la sintaxis \fB[.\fP\fIsímbolo\fP\fB.]\fP concuerda con el símbolo de clasificación \fIsímbolo\fP. .RE .RE .PD .PP Si la opción de la shell \fBextglob\fP se activa mediante la orden nativa \fBshopt\fP, se reconocen algunos operadores de patrones avanzados. En la siguiente descripción, una \fIlista\-patrón\fP es una lista de uno o más patrones separados por el carácter \fB|\fP. Se pueden formar patrones compuestos usando uno o más de los siguientes sub\-patrones: .sp 1 .PD 0 .RS .TP \fB?(\fP\^\fIlista\-patrón\^\fP\fB)\fP Concuerda con ninguna o una ocurrencia de los patrones dados .TP \fB*(\fP\^\fIlista\-patrón\^\fP\fB)\fP Concuerda con ninguna o más ocurrencias de los patrones dados .TP \fB+(\fP\^\fIlista\-patrón\^\fP\fB)\fP Concuerda con una o más ocurrencias de los patrones dados .TP \fB@(\fP\^\fIlista\-patrón\^\fP\fB)\fP Concuerda con uno de los patrones dados .TP \fB!(\fP\^\fIlista\-patrón\^\fP\fB)\fP Concuerda con cualquier cosa excepto con uno de los patrones dados .RE .PD .PP The\fBextglob\fP option changes the behavior of the parser, since the parentheses are normally treated as operators with syntactic meaning. To ensure that extended matching patterns are parsed correctly, make sure that \fBextglob\fP is enabled before parsing constructs containing the patterns, including shell functions and command substitutions. .PP When matching filenames, the \fBdotglob\fP shell option determines the set of filenames that are tested: when \fBdotglob\fP is enabled, the set of filenames includes all files beginning with \*(lq.\*(rq, but \*(lq.\*(rq and \*(lq..\*(rq must be matched by a pattern or sub\-pattern that begins with a dot; when it is disabled, the set does not include any filenames beginning with \*(lq.\*(rq unless the pattern or sub\-pattern begins with a \*(lq.\*(rq. As above, \*(lq.\*(rq only has a special meaning when matching filenames. .PP Complicated extended pattern matching against long strings is slow, especially when the patterns contain alternations and the strings contain multiple matches. Using separate matches against shorter strings, or using arrays of strings instead of a single long string, may be faster. .SS "Eliminación de Comillas" Tras las expansiones precedentes, todas las ocurrencias no entrecomilladas de los caracteres \fB\e\fP, \fB\(aq\fP, y \^\fB"\fP\^ que no resulten de una de las expansiones anteriores, se eliminan. .SH REDIRECCIÓN Before a command is executed, its input and output may be \fIredirected\fP using a special notation interpreted by the shell. \fIRedirection\fP allows commands' file handles to be duplicated, opened, closed, made to refer to different files, and can change the files the command reads from and writes to. Redirection may also be used to modify file handles in the current shell execution environment. The following redirection operators may precede or appear anywhere within a \fIsimple command\fP or may follow a \fIcommand\fP. Redirections are processed in the order they appear, from left to right. .PP Each redirection that may be preceded by a file descriptor number may instead be preceded by a word of the form {\fIvarname\fP}. In this case, for each redirection operator except >&\- and <&\-, the shell will allocate a file descriptor greater than or equal to 10 and assign it to \fIvarname\fP. If >&\- or <&\- is preceded by {\fIvarname\fP}, the value of \fIvarname\fP defines the file descriptor to close. If {\fIvarname\fP} is supplied, the redirection persists beyond the scope of the command, allowing the shell programmer to manage the file descriptor's lifetime manually. The \fBvarredir_close\fP shell option manages this behavior. .PP En las descripciones siguientes, si se omite el número del descriptor de fichero, y el primer carácter del operador de redirección es \fB<\fP, la redirección se refiere a la entrada estándar (descriptor de fichero 0). Si el primer carácter del operador de redirección es \fB>\fP, la redirección se refiere a la salida estándar (descriptor de fichero 1). .PP La palabra tras el operador de redirección en las descripciones siguientes, a menos que se diga otra cosa, está sujeta a la expansión de llaves, expansión de tilde, expansión de parámetro, sustitución de orden, expansión aritmética, eliminación de comillas, división de palabra y expansión de nombre de ruta. Si se expande a más de una palabra, \fBbash\fP informa de un error. .PP Observe que el orden de las redirecciones es significativo. Por ejemplo, la orden .RS .PP ls \fB>\fP listadir 2\fB>&\fP1 .RE .PP dirige la salida estándar normal y la de errores, ambas, al fichero \fIlistadir\fP, mientras que la orden .RS .PP ls 2\fB>&\fP1 \fB>\fP listadir .RE .PP dirige solamente la salida estándar al archivo \fIlistadir\fP, porque la salida de errores estándar se ha duplicado como salida estándar antes de que ésta se redirigiera a \fIlistadir\fP. .PP \fBBash\fP handles several filenames specially when they are used in redirections, as described in the following table. If the operating system on which \fBbash\fP is running provides these special files, bash will use them; otherwise it will emulate them internally with the behavior described below. .RS .PP .PD 0 .TP \fB/dev/fd/\fP\fIfd\fP Si \fIfd\fP es un entero válido, el decriptor de archivo \fIfd\fP se duplica. .TP \fB/dev/stdin\fP El descriptor de archivo 0 se duplica. .TP \fB/dev/stdout\fP El descriptor de archivo 1 se duplica. .TP \fB/dev/stderr\fP El descriptor de archivo 2 se duplica. .TP \fB/dev/tcp/\fP\fIequipo\fP\fB/\fP\fIpuerto\fP Si \fIequipo\fP es un nombre de equipo válido o una dirección de internet y \fIpuerto\fP es un número entero correspondiente a un número de puerto o nombre de servicio, \fBbash\fP intentará abrir el conector TCP correspondiente. .TP \fB/dev/udp/\fP\fIequipo\fP\fB/\fP\fIpuerto\fP Si \fIequipo\fP es un nombre de equipo válido o una dirección de internet y \fIpuerto\fP es un número entero correspondiente a un número de puerto o nombre de servicio, \fBbash\fP intentará abrir el conector UDP correspondiente. .PD .RE .PP Un fallo en la apertura o creación de un fichero hace que la redirección fracase. .PP Deben usarse con cautela las redicrecciones con descriptores de archivo mayores que 9 ya que pueden entrar en conflicto con los empleados internamente por la propia shell. .PP Observe que la orden interna \fBexec\fP puede ejecutar redirecciones con efecto en la shell actual. .SS "Redirección de la Entrada" La redirección de la entrada hace que el fichero cuyo nombre resulte de la expansión de \fIpalabra\fP se abra para lectura en el descriptor de fichero \fIn\fP, o la entrada estándar (descriptor de fichero 0) si no se especificó \fIn\fP. .PP El formato general para la redirección de la entrada es: .RS .PP [\fIn\fP]\fB<\fP\fIpalabra\fP .RE .SS "Redirección de la Salida" La redirección de la salida hace que el fichero cuyo nombre resulte de la expansión de \fIpalabra\fP se abra para escritura en el descriptor de fichero \fIn\fP, o la salida estándar (descriptor de fichero 1) si \fIn\fP no se especificó. Si el fichero no existe se crea; si existe se trunca a longitud cero, se vacía. .PP El formato general para la redirección de la salida es: .RS .PP [\fIn\fP]\fB>\fP\fIpalabra\fP .RE .PP Si el operador de redirección es \fB>\fP, y la opción \fBnoclobber\fP de la orden nativa \fBset\fP ha sido activada, la redirección fallará si el nombre de fichero resultante de la expansión de \fIpalabra\fP existiera y fuera un fichero regular. Si el operador de redirección es \fB>|\fP, o es \fB>\fP y la opción \fBnoclobber\fP de la orden nativa \fBset\fP no está activada, la redirección se intenta incluso si el archivo nombrado por \fIpalabra\fP existe. .SS "Añadir a la Salida Redirigida" La redirección de la salida en esta forma hace que el fichero cuyo nombre resulte de la expansión de \fIpalabra\fP se abra para añadir en el descriptor de fichero \fIn\fP, o la salida estándar (descriptor de fichero 1) si \fIn\fP no se especificó. Si el fichero no existe, se crea. .PP El formato general para añadir a la salida es: .RS .PP [\fIn\fP]\fB>>\fP\fIpalabra\fP .RE .SS "Redirección de las Salidas Estándar y de Errores" Este constructo permite que ambas salidas estándares, la normal (descriptor de archivo 1) y la de errores (descriptor de archivo 2) se redirijan hacia el archivos cuyo nombre sea la expansión de \fIpalabra\fP con esta construcción. .PP hay dos formatos para la redirección de la salida estándar y la salida de errores: .RS .PP \fB&>\fP\fIpalabra\fP .RE y .RS \fB>&\fP\fIpalabra\fP .RE .PP De las dos formas, es preferible la primera. Ésta es semánticamente equivalente a .RS .PP \fB>\fP\fIpalabra\fP 2\fB>&\fP1 .RE .PP When using the second form, \fIword\fP may not expand to a number or \fB\-\fP. If it does, other redirection operators apply (see \fBDuplicating File Descriptors\fP below) for compatibility reasons. .SS "Uniendo las Salidas Estándar y Error" Este constructo permite que ambas salidas estándares, la normal (descriptor de archivo 1) y la de errores (descriptor de fichero 2) se redirijan hacia el archivo cuyo nombre sea la expansión de \fIpalabra\fP. .PP el formato para unir la redirección de la salida estándar y la salida de errores sería el siguiente: .RS .PP \fB&>>\fP\fIpalabra\fP .RE .PP Ésta es semánticamente equivalente a .RS .PP \fB>>\fP\fIpalabra\fP 2\fB>&\fP1 .RE .PP (consulte \fBDuplicación de descriptores de fichero\fP más adelante). .SS "Documentos Internos" Este tipo de redirección indica a la shell que lea la entrada desde la fuente actual hasta que vea una línea que contenga solamente \fIseparador\fP (sin espacios en blanco al final). Todas las líneas leídas hasta ese punto se emplean como la entrada estándar de una orden. .PP El formato de los documentos internos es: .RS .PP .nf [\fIn\fP]\fB<<\fP[\fB\-\fP]\fIpalabra\fP \fIdocumento\-interno\fP \fIdelimitador\fP .fi .RE .PP No parameter and variable expansion, command substitution, arithmetic expansion, or pathname expansion is performed on \fIword\fP. If any part of \fIword\fP is quoted, the \fIdelimiter\fP is the result of quote removal on \fIword\fP, and the lines in the here\-document are not expanded. If \fIword\fP is unquoted, all lines of the here\-document are subjected to parameter expansion, command substitution, and arithmetic expansion, the character sequence \fB\e\fP is ignored, and \fB\e\fP must be used to quote the characters \fB\e\fP, \fB$\fP, and \fB\`\fP. .PP Si el operador de redirección es \fB<<\-\fP, entonces se quitan de las líneas de la entrada todos los caracteres de tabulación iniciales, así como de la línea que contiene \fIdelimitador\fP. Esto permite que los documentos internos dentro de guiones de la shell se sangren de manera natural. .SS "Cadenas de Documentos Internos" Una variante de los documentos internos con el siguiente formato: .RS .PP .nf [\fIn\fP]\fB<<<\fP\fIpalabra\fP .fi .RE .PP The \fIword\fP undergoes tilde expansion, parameter and variable expansion, command substitution, arithmetic expansion, and quote removal. Pathname expansion and word splitting are not performed. The result is supplied as a single string, with a newline appended, to the command on its standard input (or file descriptor \fIn\fP if \fIn\fP is specified). .SS "Duplicación de Descriptores de Archivo" Operador de Redirección .RS .PP [\fIn\fP]\fB<&\fP\fIpalabra\fP .RE .PP se emplea para duplicar descriptores de ficheros de entrada. Si \fIpalabra\fP se expande a uno o más dígitos, el descriptor de fichero denotado por \fIn\fP se hace ser una copia de este descriptor de fichero. Si los dígitos en \fIpalabra\fP no especifican un descriptor de fichero abierto para entrada, se produce un error de redirección. Si \fIpalabra\fP se evalúa a \fB\-\fP, el descriptor de fichero \fIn\fP se cierra. Si \fIn\fP no se especifica, se emplea la entrada estándar (descriptor de fichero 0). .PP Operador .RS .PP [\fIn\fP]\fB>&\fP\fIpalabra\fP .RE .PP is used similarly to duplicate output file descriptors. If \fIn\fP is not specified, the standard output (file descriptor 1) is used. If the digits in \fIword\fP do not specify a file descriptor open for output, a redirection error occurs. If \fIword\fP evaluates to \fB\-\fP, file descriptor \fIn\fP is closed. As a special case, if \fIn\fP is omitted, and \fIword\fP does not expand to one or more digits or \fB\-\fP, the standard output and standard error are redirected as described previously. .SS "Mobilidad de los Descriptores de Archivo" Operador de Redirección .RS .PP [\fIn\fP]\fB<&\fP\fIcifra\fP\fB\-\fP .RE .PP moves the file descriptor \fIdigit\fP to file descriptor \fIn\fP, or the standard input (file descriptor 0) if \fIn\fP is not specified. \fIdigit\fP is closed after being duplicated to \fIn\fP. .PP De forma análoga, el operador de redirección .RS .PP [\fIn\fP]\fB>&\fP\fIcifra\fP\fB\-\fP .RE .PP moves the file descriptor \fIdigit\fP to file descriptor \fIn\fP, or the standard output (file descriptor 1) if \fIn\fP is not specified. .SS "Apertura de Descriptores de Archivo para lectura y escritura" Operador de Redirección .RS .PP [\fIn\fP]\fB<>\fP\fIpalabra\fP .RE .PP hace que el fichero cuyo nombres sea la expansión de \fIpalabra\fP se abra para lectura y para escritura en el descriptor de fichero \fIn\fP, o en el descriptor de fichero 0 si no se especifica \fIn\fP. Si el fichero no existe, se crea. .SH ALIAS \fIAliases\fP allow a string to be substituted for a word when it is used as the first word of a simple command. The shell maintains a list of aliases that may be set and unset with the \fBalias\fP and \fBunalias\fP builtin commands (see .SM \fBSHELL BUILTIN COMMANDS\fP below). The first word of each simple command, if unquoted, is checked to see if it has an alias. If so, that word is replaced by the text of the alias. The characters \fB/\fP, \fB$\fP, \fB\`\fP, and \fB=\fP and any of the shell \fImetacharacters\fP or quoting characters listed above may not appear in an alias name. The replacement text may contain any valid shell input, including shell metacharacters. The first word of the replacement text is tested for aliases, but a word that is identical to an alias being expanded is not expanded a second time. This means that one may alias \fBls\fP to \fBls \-F\fP, for instance, and \fBbash\fP does not try to recursively expand the replacement text. If the last character of the alias value is a \fIblank\fP, then the next command word following the alias is also checked for alias expansion. .PP Los alias se crean y listan con la orden \fBalias\fP, y se quitan con la orden \fBunalias\fP. .PP No hay ningún mecanismo para poder usar argumentos en el texto de reemplazo. Si se necesitan, debería emplearse preferentemente una función de la shell. Consulte .SM \fBFUNCIONES\fP más adelante. .PP Los alias no se expanden cuando la shell no es interactivo, a menos que se haya puesto la opción \fBexpand_aliases\fP mediante \fBshopt\fP (consulte la descripción de \fBshopt\fP bajo .SM \fBÓRDENES NATIVAS DE LA SHELL\fP más adelante). .PP The rules concerning the definition and use of aliases are somewhat confusing. \fBBash\fP always reads at least one complete line of input, and all lines that make up a compound command, before executing any of the commands on that line or the compound command. Aliases are expanded when a command is read, not when it is executed. Therefore, an alias definition appearing on the same line as another command does not take effect until the next line of input is read. The commands following the alias definition on that line are not affected by the new alias. This behavior is also an issue when functions are executed. Aliases are expanded when a function definition is read, not when the function is executed, because a function definition is itself a command. As a consequence, aliases defined in a function are not available until after that function is executed. To be safe, always put alias definitions on a separate line, and do not use \fBalias\fP in compound commands. .PP Para casi cualquier propósito, los alias pueden sustituirse por funciones de la shell. .SH FUNCIONES A shell function, defined as described above under .SM \fBSHELL GRAMMAR\fP, stores a series of commands for later execution. When the name of a shell function is used as a simple command name, the list of commands associated with that function name is executed. Functions are executed in the context of the current shell; no new process is created to interpret them (contrast this with the execution of a shell script). When a function is executed, the arguments to the function become the positional parameters during its execution. The special parameter \fB#\fP is updated to reflect the change. Special parameter \fB0\fP is unchanged. The first element of the .SM \fBFUNCNAME\fP variable is set to the name of the function while the function is executing. .PP All other aspects of the shell execution environment are identical between a function and its caller with these exceptions: the .SM \fBDEBUG\fP and \fBRETURN\fP traps (see the description of the \fBtrap\fP builtin under .SM \fBSHELL BUILTIN COMMANDS\fP below) are not inherited unless the function has been given the \fBtrace\fP attribute (see the description of the .SM \fBdeclare\fP builtin below) or the \fB\-o functrace\fP shell option has been enabled with the \fBset\fP builtin (in which case all functions inherit the \fBDEBUG\fP and \fBRETURN\fP traps), and the .SM \fBERR\fP trap is not inherited unless the \fB\-o errtrace\fP shell option has been enabled. .PP Variables local to the function may be declared with the \fBlocal\fP builtin command (\fIlocal variables\fP). Ordinarily, variables and their values are shared between the function and its caller. If a variable is declared \fBlocal\fP, the variable's visible scope is restricted to that function and its children (including the functions it calls). .PP In the following description, the \fIcurrent scope\fP is a currently\- executing function. Previous scopes consist of that function's caller and so on, back to the "global" scope, where the shell is not executing any shell function. Consequently, a local variable at the current scope is a variable declared using the \fBlocal\fP or \fBdeclare\fP builtins in the function that is currently executing. .PP Las variables locales "invisibilizan" otras variables con el mismo nombre que hayan sido delclaradas en un ámbito anterior. Por ejemplo, una variable local declarada dentro de una función, invisibiliza otra variable global que tenga el mismo nombre: las diversas referencias y asignaciones serán referidas a la variable local, sin modificar la variable global. Cuando la función termine, la variable global vuelve a ser visible. .PP The shell uses \fIdynamic scoping\fP to control a variable's visibility within functions. With dynamic scoping, visible variables and their values are a result of the sequence of function calls that caused execution to reach the current function. The value of a variable that a function sees depends on its value within its caller, if any, whether that caller is the "global" scope or another shell function. This is also the value that a local variable declaration "shadows", and the value that is restored when the function returns. .PP For example, if a variable \fIvar\fP is declared as local in function \fIfunc1\fP, and \fIfunc1\fP calls another function \fIfunc2\fP, references to \fIvar\fP made from within \fIfunc2\fP will resolve to the local variable \fIvar\fP from \fIfunc1\fP, shadowing any global variable named \fIvar\fP. .PP The \fBunset\fP builtin also acts using the same dynamic scope: if a variable is local to the current scope, \fBunset\fP will unset it; otherwise the unset will refer to the variable found in any calling scope as described above. If a variable at the current local scope is unset, it will remain so (appearing as unset) until it is reset in that scope or until the function returns. Once the function returns, any instance of the variable at a previous scope will become visible. If the unset acts on a variable at a previous scope, any instance of a variable with that name that had been shadowed will become visible (see below how the \fBlocalvar_unset\fP shell option changes this behavior). .PP The \fBFUNCNEST\fP variable, if set to a numeric value greater than 0, defines a maximum function nesting level. Function invocations that exceed the limit cause the entire command to abort. .PP If the builtin command \fBreturn\fP is executed in a function, the function completes and execution resumes with the next command after the function call. Any command associated with the \fBRETURN\fP trap is executed before execution resumes. When a function completes, the values of the positional parameters and the special parameter \fB#\fP are restored to the values they had prior to the function's execution. .PP Function names and definitions may be listed with the \fB\-f\fP option to the \fBdeclare\fP or \fBtypeset\fP builtin commands. The \fB\-F\fP option to \fBdeclare\fP or \fBtypeset\fP will list the function names only (and optionally the source file and line number, if the \fBextdebug\fP shell option is enabled). Functions may be exported so that child shell processes (those created when executing a separate shell invocation) automatically have them defined with the \fB\-f\fP option to the \fBexport\fP builtin. A function definition may be deleted using the \fB\-f\fP option to the \fBunset\fP builtin. .PP Las funciones pueden anidarse. La variable \fBFUNCNEST\fP limita el tamaño de la pila de llamadas de la función y restringir la cantidad de llamadas que puede hacer una función. Por defecto, no se impone ninguna restricción sobre este aspecto. .SH "EVALUACIÓN ARITMÉTICA" The shell allows arithmetic expressions to be evaluated, under certain circumstances (see the \fBlet\fP and \fBdeclare\fP builtin commands, the \fB((\fP compound command, and \fBArithmetic Expansion\fP). Evaluation is done in fixed\-width integers with no check for overflow, though division by 0 is trapped and flagged as an error. The operators and their precedence, associativity, and values are the same as in the C language. The following list of operators is grouped into levels of equal\-precedence operators. The levels are listed in order of decreasing precedence. .PP .PD 0 .TP \fIid\fP\fB++ \fP\fIid\fP\fB\-\-\fP variable post\-incremento y post\-reducción .TP \fB\- +\fP menos y más unarios .TP \fB++\fP\fIid\fP\fB \-\-\fP\fIid\fP variable pre\-incremento y pre\-reducción .TP \fB! ~\fP negación lógica y bit a bit. .TP \fB**\fP exponenciación .TP \fB* / %\fP multiplicación, división, resto .TP \fB+ \-\fP adición, sustracción .TP \fB<< >>\fP desplazamientos de bits a izquierda y derecha .TP \fB<= >= < >\fP comparación .TP \fB== !=\fP igualdad y desigualdad .TP \fB&\fP Y de bits (AND) .TP \fB^\fP O exclusivo de bits (XOR) .TP \fB|\fP O inclusivo de bits (OR) .TP \fB&&\fP Y lógico (AND) .TP \fB||\fP O lógico (OR) .TP \fIexpr\fP\fB?\fP\fIexpr\fP\fB:\fP\fIexpr\fP Operador condicional .TP \fB= *= /= %= += \-= <<= >>= &= ^= |=\fP asignación .TP \fIexpr1\fP\fB , \fP\fIexpr2\fP coma .PD .PP Shell variables are allowed as operands; parameter expansion is performed before the expression is evaluated. Within an expression, shell variables may also be referenced by name without using the parameter expansion syntax. A shell variable that is null or unset evaluates to 0 when referenced by name without using the parameter expansion syntax. The value of a variable is evaluated as an arithmetic expression when it is referenced, or when a variable which has been given the \fIinteger\fP attribute using \fBdeclare \-i\fP is assigned a value. A null value evaluates to 0. A shell variable need not have its \fIinteger\fP attribute turned on to be used in an expression. .PP Integer constants follow the C language definition, without suffixes or character constants. Constants with a leading 0 are interpreted as octal numbers. A leading 0x or 0X denotes hexadecimal. Otherwise, numbers take the form [\fIbase#\fP]n, where the optional \fIbase\fP is a decimal number between 2 and 64 representing the arithmetic base, and \fIn\fP is a number in that base. If \fIbase#\fP is omitted, then base 10 is used. When specifying \fIn\fP, if a non\-digit is required, the digits greater than 9 are represented by the lowercase letters, the uppercase letters, @, and _, in that order. If \fIbase\fP is less than or equal to 36, lowercase and uppercase letters may be used interchangeably to represent numbers between 10 and 35. .PP Los operadores se evalúan en orden de precedencia. Las sub\-expresiones entre paréntesis se evalúan primero y pueden sustituir a las reglas de precedencia anteriores. .SH "EXPRESIONES CONDICIONALES" Conditional expressions are used by the \fB[[\fP compound command and the \fBtest\fP and \fB[\fP builtin commands to test file attributes and perform string and arithmetic comparisons. The \fBtest\fP and \fB[\fP commands determine their behavior based on the number of arguments; see the descriptions of those commands for any other command\-specific actions. .PP Expressions are formed from the following unary or binary primaries. \fBBash\fP handles several filenames specially when they are used in expressions. If the operating system on which \fBbash\fP is running provides these special files, bash will use them; otherwise it will emulate them internally with this behavior: If any \fIfile\fP argument to one of the primaries is of the form \fI/dev/fd/n\fP, then file descriptor \fIn\fP is checked. If the \fIfile\fP argument to one of the primaries is one of \fI/dev/stdin\fP, \fI/dev/stdout\fP, or \fI/dev/stderr\fP, file descriptor 0, 1, or 2, respectively, is checked. .PP Salvo que se indique lo contrario, las primarias que operan en archivos seguirán enlaces simbólicos operando en el archivo enlazado en lugar de hacerlo sobre el propio enlace. .if t .sp 0.5 .if n .sp 1 Cuando se emplea con \fB[[\fP, los operadores \fB<\fP y \fB>\fP ordenan de modo lexicográfico en base a la configuración de idioma del equipo. La orden \fBtest\fP realiza la ordenación en base a ASCII. .sp 1 .PD 0 .TP \fB\-a \fP\fIarchivo\fP Verdad si \fIarchivo\fP existe. .TP \fB\-b \fP\fIarchivo\fP Verdad si \fIarchivo\fP existe y es un archivo especial de bloques. .TP \fB\-c \fP\fIfichero\fP Verdad si \fIfichero\fP existe y es un fichero especial de caracteres. .TP \fB\-d \fP\fIfichero\fP Verdad si \fIfichero\fP existe y es un directorio. .TP \fB\-e \fP\fIfichero\fP Verdad si \fIarchivo\fP existe. .TP \fB\-f \fP\fIfichero\fP Verdad si \fIfichero\fP existe y es un fichero regular. .TP \fB\-g \fP\fIfichero\fP Verdad si \fIfichero\fP existe y tiene el bit SGID. .TP \fB\-h \fP\fIfichero\fP Verdad si \fIarchivo\fP existe y es un enlace simbólico o blando. .TP \fB\-k \fP\fIarchivo\fP Verdad si \fIarchivo\fP existe y tiene el bit 'pegajoso' (STIcky). .TP \fB\-p \fP\fIfichero\fP Verdad si \fIfichero\fP existe y es una tubería con nombre (FIFO). .TP \fB\-r \fP\fIfichero\fP Verdad si \fIfichero\fP existe y se puede leer. .TP \fB\-s \fP\fIfichero\fP Verdad si \fIfichero\fP existe y tiene un tamaño mayor que cero. .TP \fB\-t \fP\fIfd\fP Verdad si el descriptor de fichero \fIfd\fP está abierto y se refiere a una terminal. .TP \fB\-u \fP\fIarchivo\fP Verdad si \fIfichero\fP existe y tiene el bit SUID. .TP \fB\-w \fP\fIfichero\fP Verdad si \fIfichero\fP existe y se puede modificar. .TP \fB\-x \fP\fIfichero\fP Verdad si \fIfichero\fP existe y es ejecutable. .TP \fB\-G \fP\fIfichero\fP Verdad si \fIfichero\fP existe y su grupo es el GID efectivo. .TP \fB\-L \fP\fIfichero\fP Verdad si \fIarchivo\fP existe y es un enlace simbólico o blando. .TP \fB\-N \fP\fIfichero\fP Verdad si \fIfichero\fP existe y ha sido modificado desde que se leyó la última vez. .TP \fB\-O \fP\fIarchivo\fP Verdad si \fIfichero\fP existe y su propietario es el UID efectivo. .TP \fB\-S \fP\fIfichero\fP Verdad si \fIfichero\fP existe y es un zócalo (socket). .TP \fIfichero1\fP \fB\-ef\fP \fIfichero2\fP Verdad si \fIarchivo1\fP y \fIarchivo2\fP tienen los mismos números de nodo\-í y de dispositivo. .TP \fIfichero1\fP \-\fBnt\fP \fIfichero2\fP Verdad si \fIarchivo1\fP es más reciente (según la fecha de modificación) que \fIarchivo2\fP, o si \fIarchivo1\fP existe mientras que \fIarchivo2\fP no. .TP \fIarchivo1\fP \-\fBot\fP \fIarchivo2\fP Verdad si \fIarchivo1\fP es más antiguo que \fIarchivo2\fP, o si \fIarchivo2\fP existe mientras que \fIarchivo1\fP no. .TP \fB\-o \fP\fInombre\-opción\fP Verdad si la opción de la shell \fInombre\-opción\fP está activada. Vea la lista de opciones bajo la descripción de la opción \fB\-o\fP de la orden interna \fBset\fP más adelante. .TP \fB\-v \fP\fInombre\-variable\fP Verdadero si está definida la variable de la shell \fIvarname\fP (se le ha asignado un valor). .TP \fB\-R \fP\fInombre\-variable\fP Verdadero si la variable de la shell \fIvarname\fP está definida y es una referencia de nombre. .TP \fB\-z \fP\fIcadena\fP Verdad si la longitud de \fIcadena\fP es cero. .TP \fIcadena\fP .PD 0 .TP \fB\-n \fP\fIcadena\fP .PD Verdad si la longitud de \fIcadena\fP no es cero. .TP \fIcadena1\fP \fB==\fP \fIcadena2\fP .PD 0 .TP \fIcadena1\fP \fB=\fP \fIcadena2\fP .PD True if the strings are equal. \fB=\fP should be used with the \fBtest\fP command for POSIX conformance. When used with the \fB[[\fP command, this performs pattern matching as described above (\fBCompound Commands\fP). .TP \fIcadena1\fP \fB!=\fP \fIcadena2\fP Verdad si las cadenas no son iguales. .TP \fIcadena1\fP \fB<\fP \fIcadena2\fP Verdad si \fIcadena1\fP se ordena lexicográficamente antes de \fIcadena2\fP. .TP \fIcadena1\fP \fB>\fP \fIcadena2\fP Verdad si \fIcadena1\fP se clasifica lexicográficamente tras \fIcadena2\fP. .TP \fIarg1 \fP\fBOP\fP\fI arg2\fP .SM \fBOP\fP is one of \fB\-eq\fP, \fB\-ne\fP, \fB\-lt\fP, \fB\-le\fP, \fB\-gt\fP, or \fB\-ge\fP. These arithmetic binary operators return true if \fIarg1\fP is equal to, not equal to, less than, less than or equal to, greater than, or greater than or equal to \fIarg2\fP, respectively. \fIArg1\fP and \fIarg2\fP may be positive or negative integers. When used with the \fB[[\fP command, \fIArg1\fP and \fIArg2\fP are evaluated as arithmetic expressions (see .SM \fBARITHMETIC EVALUATION\fP above). .PD .SH "EXPANSIÓN DE ORDEN SIMPLE" Cuando se ejecuta una orden simple, la shell realiza las siguientes expansiones, asignaciones y redirecciones, de izquierda a derecha en el siguiente orden: .IP 1. Las palabras que el analizador ha marcado como asignaciones de variables (aquéllas que preceden al nombre de la orden) y redirecciones se guardan para un procesado posterior. .IP 2. Las palabras que no sean asignaciones de variables ni redirecciones se expanden. Si tras la expansión quedan aún palabras, la primera palabra se toma como el nombre de la orden y las palabras restantes son los argumentos. .IP 3. Se ejecutan las redirecciones como se describió más arriba bajo .SM \fBREDIRECCIÓN\fP. .IP 4. El texto tras el \fB=\fP en cada asignación de variable está sujeto a expansión de tilde, expansión de parámetro, sustitución de orden, expansión aritmética y eliminado de comillas antes de ser asignado a la variable. .PP If no command name results, the variable assignments affect the current shell environment. In the case of such a command (one that consists only of assignment statements and redirections), assignment statements are performed before redirections. Otherwise, the variables are added to the environment of the executed command and do not affect the current shell environment. If any of the assignments attempts to assign a value to a readonly variable, an error occurs, and the command exits with a non\-zero status. .PP Si no resulta ningún nombre de orden, se hacen las redirecciones, pero no afectan al entorno de la shell en curso. Un error de redirección hace que el shell acabe con un estado distinto de cero. .PP Si hay un nombre de orden tras la expansión, la ejecución procede como se describió antes. De otro modo, la orden sale. Si una de las expansiones contenía una sustitución de orden, el estado de salida de la orden es el de la última sustitución de orden realizada. Si no había sustituciones de órdenes, la orden acaba con un estado de cero. .SH "EJECUCIÓN DE ÓRDENES" Después de que una orden ha sido dividida en palabras, si el resultado es una orden simple y una lista opcional de argumentos, tienen lugar las siguientes acciones. .PP Si el nombre de la orden no contiene barras inclinadas, la shell intenta localizarla. Si existe una función de la shell con ese nombre, esa función se llama como se describió arriba en .SM \fBFUNCIONES\fP. Si el nombre no coincide con el de ninguna función, la shell lo busca en la lista de órdenes internas. Si se encuentra, se llama a la orden interna correspondiente. .PP Si el nombre no es ni una función de la shell ni una orden interna, y no contiene barras inclinadas, \fBbash\fP busca en cada elemento de .SM \fBPATH\fP un directorio que contenga un archivo ejecutable con ese nombre. \fBBash\fP emplea una tabla de dispersión (hash) para recordar los nombres de ruta completos de los archivos ejecutables (consulte \fBhash\fP en .SM \fBÓRDENES NATIVAS DE LA SHELL\fP a continuación). Solo se realiza una búsqueda completa de los directorios de .SM \fBPATH\fP si la orden no se encuentra en la tabla de llamada \fBcommand_not_found_handle\fP. Si la función existe, se invoca en un entorno de ejecución separado con la orden y sus argumentos originales, el valor de salida de esta función será el de esa subshell. Si la función no está definida, la shell muestra un mensaje de error y devuelve un estado de salida de 127. .PP Si la búsqueda fue exitosa, o si el nombre de la orden contiene una o más barras inclinadas, la shell ejecuta el programa con ese nombre en un entorno de ejecución separado. El argumento 0 se pone al nombre dado, y el resto de argumentos de la orden se ponen a los argumentos dados, si los hay. .PP Si esta ejecución fallara porque el fichero no tuviera un formato ejecutable y tampoco fuese un directorio, se asumiría que es un \fIscript de la shell\fP, un archivo e contiene órdenes de la shell; la shell crea una subshell para ejecutarlo. Esta subshell se reinicia a si misma, así que el efecto es el mismo que si se hubiera llamado una nueva shell para ejecutar el script, con la excepción de que el proceso hijo retiene las localizaciones de órdenes recordadas por su antecesor (vea \fBhash\fP más adelante en .SM \fBÓRDENES NATIVAS DE LA SHELL\fP). .PP Si el programa es un fichero que empieza con los dos caracteres \fB#!\fP, el resto de la primera línea especifica un intérprete para el programa. El shell ejecuta el intérprete especificado en sistemas operativos que no manejen por sí mismos este formato de ejecutable. Los argumentos del intérprete consisten en un solo argumento opcional tras el nombre del intérprete en la primera línea del programa, seguido del nombre del programa, seguido por los argumentos de la orden, si los hubiera. .SH "ENTORNO DE EJECUCIÓN DE ÓRDENES" la shell tiene un \fIentorno de ejecución\fP, que consiste en lo siguiente: .IP \(bu ficheros abiertos heredados por la shell en la llamada, quizás modificada por redirecciones suministradas a la orden interna \fBexec\fP .IP \(bu el directorio de trabajo en curso, establecido por \fBcd\fP, \fBpushd\fP o \fBpopd\fP, o heredado por la shell en la llamada .IP \(bu la máscara de modo de creación de ficheros, establecida por \fBumask\fP o heredada del padre de la shell .IP \(bu las trampas en curso establecidas por \fBtrap\fP .IP \(bu parámetros de la shell que han sido establecidos por asignaciones de variables o con \fBset\fP, o heredados del padre de la shell en el entorno .IP \(bu funciones de la shell definidas durante la ejecución o heredadas del padre de la shell en el entorno .IP \(bu opciones activadas en la llamada (bien por omisión o mediante argumentos en la línea de órdenes) o por \fBset\fP .IP \(bu opciones activadas mediante \fBshopt\fP .IP \(bu alias de la shell definidos con \fBalias\fP .IP \(bu varios identificadores de proceso, incluyendo los de tareas en segundo plano, el valor de \fB$$\fP, y el valor de .SM \fB$PPID\fP .PP Cuando una orden simple distinta de una interna o una función de la shell se va a ejecutar, se llama en un entorno de ejecución separado que consiste en lo siguiente. A menos que se diga otra cosa, los valores se heredan del shell. .if n .sp 1 .IP \(bu los ficheros abiertos de la shell, más las modificaciones y adiciones especificadas en la orden por redirecciones .IP \(bu el directorio de trabajo en curso .IP \(bu la máscara de modo de creación de ficheros .IP \(bu variables de la shell marcadas para la exportación, junto con variables exportadas para la orden, pasadas en el entorno .IP \(bu las trampas capturadas por la shell se restauran a los valores del padre del shell, y las trampas que no son tenidas en cuenta por la shell tampoco lo son .PP Una orden llamada en este entorno separado no puede afectar al entorno de ejecución de la shell. .PP Una \fIsubshell\fP es una copia del proceso de la shell. .PP Command substitution, commands grouped with parentheses, and asynchronous commands are invoked in a subshell environment that is a duplicate of the shell environment, except that traps caught by the shell are reset to the values that the shell inherited from its parent at invocation. Builtin commands that are invoked as part of a pipeline are also executed in a subshell environment. Changes made to the subshell environment cannot affect the shell's execution environment. .PP Subshells spawned to execute command substitutions inherit the value of the \fB\-e\fP option from the parent shell. When not in \fIposix mode\fP, \fBbash\fP clears the \fB\-e\fP option in such subshells. .PP If a command is followed by a \fB&\fP and job control is not active, the default standard input for the command is the empty file \fI/dev/null\fP. Otherwise, the invoked command inherits the file descriptors of the calling shell as modified by redirections. .SH ENTORNO Cuando se llama a un programa, se le da un vector de cadenas de caracteres llamado el \fIentorno\fP. Esto es una lista de parejas \fInombre\fP\-\fIvalor\fP, de la forma \fInombre\fP=\fIvalor\fP. .PP La shell proporciona diversos medios para manipular el entorno. Al inciarse, la shell busca en su entorno y crea un parámetro para cada nombre encontrado, marcándolo automáticamente para \fIexportar\fP a procesos hijos. Las órdenes ejecutadas heredan el entorno. Las órdenes \fBexport\fP y \fBdeclare \-x\fP permiten añadir y quitar parámetros y funciones del entorno. Si el valor de un parámetro en el entorno se modifica, el nuevo valor pasa a formar parte del entorno, reemplazando al antiguo. El entorno heredado por cualquier orden ejecutada consiste en el entorno inicial de la shell, cuyos valores pueden ser modificados, menos las parejas quitadas mediante la orden \fBunset\fP más las adiciones con las órdenes \fBexport\fP y \fBdeclare \-x\fP. .PP El entorno para cualquier \fIorden simple\fP o función puede aumentarse temporalmente prefijándola con asignaciones de parámetros, como se describió arriba en .SM \fBPARÁMETROS\fP. Estas sentencias de asignación afectan solamente al entorno visto por esa orden. .PP Si la opción \fB\-k\fP está puesta (vea la orden interna \fBset\fP más adelante), entonces \fItodas\fP las asignaciones de parámetros se ponen en el entorno para una orden, no solo las que preceden a su nombre. .PP Cuando \fBbash\fP llama a una orden externa, la variable \fB_\fP se pone con el nombre completo del fichero de la orden y se pasa a esa orden en su entorno. .SH "ESTADO DE SALIDA" El estado de salida de una orden ejecutada es el valor retornado por las llamada del sistema \fIwaitpid\fP o una función equivalente. El valor de los estados de salida varía entre 0 y 255, aunque como se explica más adelante, la shell suele usar valores superiores a 125. Los estados de salida de las órdenes nativas de la shell y de las órdenes compuestas también están limitadas a ese intervalo. En circunstancias concretas, la shell empleará valores especiales para indicar algún error específico. .PP Para los propósitos de la shell, una orden que acabe con un estado de salida cero, ha tenido éxito. Un estado de salida de cero indica éxito. Un estado de salida distinto de cero indica fallo. Cuando una orden termina por una señal fatal \fIN\fP, \fBbash\fP emplea el valor de 128+\fIN\fP como el estado de salida. .PP Si una orden no se encuentra, el proceso hijo creado para ejecutarla devuelve un estado de 127. Si una orden se encuentra pero no es ejecutable, el estado de salida es 126. .PP Si una orden falla debido a un error durante la expansión o redirección, el estado de salida es mayor que cero. .PP Las órdenes nativas de la shell devuelven un estado de 0 (\fIverdad\fP) si acaban con éxito, y distinto de cero (\fIfalso\fP) si ocurre un error mientras se ejecutan. Todas las órdenes nativas devuelven un estado de salida de 2 para indicar un modo de empleo incorrecto, habitualmente el uso de opciones no válidas o la falta de algún argumento. .PP El estado de salida de la última orden puede verse comprobando el parámetro especial $?. .PP El propio \fBbash\fP devuelve el estado de salida de la última orden ejecutada, a menos que ocurra un error de sintaxis, en cuyo caso acaba con un estado distinto de cero. Consulte la orden interna \fBexit\fP más adelante. .SH SEÑALES Cuando \fBbash\fP es interactivo, en la ausencia de trampas, no hace caso de .SM \fBSIGTERM\fP (de modo que \fBkill 0\fP no mata una shell interactiva), y se captura y maneja .SM \fBSIGINT\fP (de manera que la orden interna \fBwait\fP es interrumpible). En todos los casos, \fBbash\fP no hace caso de .SM \fBSIGQUIT\fP. Si el control de tareas tiene efecto, \fBbash\fP no hace caso de .SM \fBSIGTTIN\fP, .SM \fBSIGTTOU\fP, y .SM \fBSIGTSTP\fP. .PP Las órdenes no nativas ejecutadas por \fBbash\fP tienen gestores de señales puestos a los valores heredados por la shell de su padre. Cuando el control de tareas no está activo, las órdenes asíncronas ignorarán .SM \fBSIGINT\fP y también .SM \fBSIGQUIT\fP además de estos gestores heredados. Las órdenes ejecutadas como resultado de sustitución de orden ignoran las señales de control de tareas generadas mediante el teclado .SM \fBSIGTTIN\fP, .SM \fBSIGTTOU\fP, ni .SM \fBSIGTSTP\fP. .PP la shell, de forma predeterminada, finaliza al recibir una señal .SM \fBSIGHUP\fP. Antes de salir, reenvía la señal .SM \fBSIGHUP\fP a todas las tareas, en ejecución o paradas. A las tareas detenidas se les envía .SM \fBSIGCONT\fP para asegurarse de que reciben la señal .SM \fBSIGHUP\fP. Para evitar que la shell envíe la señal a una tarea en particular, debería quitarse de la lista con la orden nativa \fBdisown\fP (vea .SM \fBÓRDENES NATIVAS DE LA SHELL\fP más adelante) o marcarlo para no recibir .SM \fBSIGHUP\fP empleando \fBdisown \-h\fP. .PP Si la opción de la shell \fBhuponexit\fP se ha puesto mediante \fBshopt\fP, \fBbash\fP envía una señal .SM \fBSIGHUP\fP a todas las tareas cuando una shell de entrada interactiva finaliza. .PP If \fBbash\fP is waiting for a command to complete and receives a signal for which a trap has been set, the trap will not be executed until the command completes. When \fBbash\fP is waiting for an asynchronous command via the \fBwait\fP builtin, the reception of a signal for which a trap has been set will cause the \fBwait\fP builtin to return immediately with an exit status greater than 128, immediately after which the trap is executed. .PP When job control is not enabled, and \fBbash\fP is waiting for a foreground command to complete, the shell receives keyboard\-generated signals such as .SM \fBSIGINT\fP (usually generated by \fB^C\fP) that users commonly intend to send to that command. This happens because the shell and the command are in the same process group as the terminal, and \fB^C\fP sends .SM \fBSIGINT\fP to all processes in that process group. .PP When \fBbash\fP is running without job control enabled and receives .SM \fBSIGINT\fP while waiting for a foreground command, it waits until that foreground command terminates and then decides what to do about the .SM \fBSIGINT\fP: .IP 1. If the command terminates due to the .SM \fBSIGINT\fP, \fBbash\fP concludes that the user meant to end the entire script, and acts on the .SM \fBSIGINT\fP (e.g., by running a .SM \fBSIGINT\fP trap or exiting itself); .IP 2. If the command does not terminate due to .SM \fBSIGINT\fP, the program handled the .SM \fBSIGINT\fP itself and did not treat it as a fatal signal. In that case, \fBbash\fP does not treat .SM \fBSIGINT\fP as a fatal signal, either, instead assuming that the .SM \fBSIGINT\fP was used as part of the program's normal operation (e.g., emacs uses it to abort editing commands) or deliberately discarded. However, \fBbash\fP will run any trap set on .SM \fBSIGINT\fP, as it does with any other trapped signal it receives while it is waiting for the foreground command to complete, for compatibility. .SH "CONTROL DE TAREAS" El \fIcontrol de tareas\fP se refiere a la capacidad de parar selectivamente (\fIsuspender\fP) la ejecución de procesos y continuar (\fIreanudar\fP) su ejecución posteriormente. Un usuario emplea esta utilidad generalmente a través de una interfaz interactiva suministrada conjuntamente por el controlador del terminal del núcleo del sistema operativo y \fBbash\fP. .PP la shell asocia un \fItrabajo\fP con cada tubería. Mantiene una tabla de tareas ejecutándose actualmente, que pueden listarse con la orden \fBjobs\fP. Cuando \fBbash\fP arranca un trabajo asíncronamente (en \fIsegundo plano\fP), imprime una línea con un aspecto como ésta: .RS .PP [1] 25647 .RE .PP indicando que este trabajo es el número 1 y que el PID del último proceso en la tubería asociada con él es 25647. Todos los procesos en una misma tubería son miembros del mismo trabajo. \fBBash\fP emplea la abstracción del \fItrabajo\fP como la base para el control de tareas. .PP To facilitate the implementation of the user interface to job control, the operating system maintains the notion of a \fIcurrent terminal process group ID\fP. Members of this process group (processes whose process group ID is equal to the current terminal process group ID) receive keyboard\-generated signals such as .SM \fBSIGINT\fP. These processes are said to be in the \fIforeground\fP. \fIBackground\fP processes are those whose process group ID differs from the terminal's; such processes are immune to keyboard\-generated signals. Only foreground processes are allowed to read from or, if the user so specifies with \f(CWstty tostop\fP, write to the terminal. Background processes which attempt to read from (write to when \f(CWstty tostop\fP is in effect) the terminal are sent a .SM \fBSIGTTIN (SIGTTOU)\fP signal by the kernel's terminal driver, which, unless caught, suspends the process. .PP Si el sistema operativo en el que \fBbash\fP se está ejecutando, admite el control de tareas y \fBbash\fP da facilidades para su uso. Teclear el carácter \fIsuspender\fP (típicamente \fB^Z\fP, Control\-Z) mientras que un proceso se está ejecutando, hace que ese proceso se pare y le devuelve a Ud. al \fBbash\fP. Teclear el carácter \fIsuspensión diferida\fP (típicamente \fB^Y\fP, Control\-Y) hace que el proceso se pare cuando intente leer entrada desde la terminal, y el control se devuelve a \fBbash\fP. El usuario puede entonces manipular el estado de este trabajo, empleando la orden \fBbg\fP para continuar con él en segundo plano, la orden \fBfg\fP para continuar con él en primer plano, o la orden \fBkill\fP para matarlo. Un \fB^Z\fP tiene efecto inmediatamente, y tiene el efecto adicional colateral de que la salida pendiente y lo que haya en el búfer de entrada del teclado se descartan. .PP There are a number of ways to refer to a job in the shell. The character \fB%\fP introduces a job specification (\fIjobspec\fP). Job number \fIn\fP may be referred to as \fB%n\fP. A job may also be referred to using a prefix of the name used to start it, or using a substring that appears in its command line. For example, \fB%ce\fP refers to a stopped job whose command name begins with \fBce\fP. If a prefix matches more than one job, \fBbash\fP reports an error. Using \fB%?ce\fP, on the other hand, refers to any job containing the string \fBce\fP in its command line. If the substring matches more than one job, \fBbash\fP reports an error. The symbols \fB%%\fP and \fB%+\fP refer to the shell's notion of the \fIcurrent job\fP, which is the last job stopped while it was in the foreground or started in the background. The \fIprevious job\fP may be referenced using \fB%\-\fP. If there is only a single job, \fB%+\fP and \fB%\-\fP can both be used to refer to that job. In output pertaining to jobs (e.g., the output of the \fBjobs\fP command), the current job is always flagged with a \fB+\fP, and the previous job with a \fB\-\fP. A single % (with no accompanying job specification) also refers to the current job. .PP Si simplemente damos el nombre de una tarea, esto puede traerlo a primer plano: \fB%1\fP es un sinónimo de \fB\*(lqfg %1\*(rq\fP, que trae el trabajo número 1 desde el segundo plano al primero. Similarmente, \fB\*(lq%1 &\*(rq\fP reanuda la tarea 1 en segundo plano, equivalente a \fB\*(lqbg %1\*(rq\fP. .PP La shell se entera inmediatamente cuando una tarea cambia de estado. Normalmente, \fBbash\fP espera hasta que está a punto de mostrar un indicador antes de informar de cambios en el estado de una tarea, para no interrumpir cualquier otra salida. Si la opción \fB\-b\fP de la orden interna \fBset\fP está activada, \fBbash\fP informa de tales cambios inmediatamente. Cualquier trampa en .SM \fBSIGCHILD\fP será ejecutada para cada descendiente que termine. .PP If an attempt to exit \fBbash\fP is made while jobs are stopped (or, if the \fBcheckjobs\fP shell option has been enabled using the \fBshopt\fP builtin, running), the shell prints a warning message, and, if the \fBcheckjobs\fP option is enabled, lists the jobs and their statuses. The \fBjobs\fP command may then be used to inspect their status. If a second attempt to exit is made without an intervening command, the shell does not print another warning, and any stopped jobs are terminated. .PP Cuando la shell está esperando por una tarea o un proceso con la orden interna \fBwait\fP y el control de tareas está activado, \fBwait\fP retornará cuando la tarea cambie su estado. La opción \fB\-f\fP hace que \fBwait\fP espere hasta que la tarea o el proces termine para retornar. .SH INDICADORES Cuando se ejecuta interactivamente, \fBbash\fP muestra el indicador primario .SM \fBPS1\fP cuando está dispuesto para leer una orden, y el secundario .SM \fBPS2\fP cuando necesita más entrada para completar una orden. \fBBash\fP muestra el indicador .SM \fBPS0\fP después de recibir una orden pero antes de ejecutarla. \fBBash\fP muestra .SM \fBPS4\fP como se describió anteriormente antes de seguir la ejecución de cada orden cuando la opción \fB\-x\fP está activada. \fBBash\fP permite personalizar estos indicadores insertando caracteres especiales protegidos con barras invertidas que se interpretarán de este modo: .RS .PD 0 .TP \fB\ea\fP un carácter de alerta ASCII (07) .TP \fB\ed\fP la fecha en el formato "Día\-Semana Mes Día" (ejemplo, "Tue May 26") en inglés .TP \fB\eD{\fP\fIformato\fP\fB}\fP el \fIformato\fP se envía a \fIstrftime\fP(3) y el resultado se introduce en la cadena del indicador; si \fIformato\fP está en blanco, se mostrará la fecha y hora en formato local. Las llaves son necesarias .TP \fB\ee\fP un carácter de escape (ESC) ASCII (033) .TP \fB\eh\fP el nombre del equipo anfitrión hasta el primer `.' .TP \fB\eH\fP el nombre del equipo anfitrión completo .TP \fB\ej\fP la cantidad de tareas gestionadas por la shell al mismo tiempo .TP \fB\el\fP el nombre base del nombre de dispositivo del terminal de la shell .TP \fB\en\fP salto de línea .TP \fB\er\fP retorno de carro .TP \fB\es\fP el nombre de la shell, el nombre base de \fB$0\fP (la porción que sigue a la última barra inclinada) .TP \fB\et\fP la hora actual en el formato de 24 horas HH:MM:SS .TP \fB\eT\fP la hora actual en el formato de 12 horas HH:MM:SS .TP \fB\e@\fP la hora actual en el formato de 12 horas con indicador AM/PM .TP \fB\eA\fP la hora actual en el formato de 24 horas HH:MM .TP \fB\eu\fP el nombre de usuario del usuario en curso .TP \fB\ev\fP la versión de \fBbash\fP (e.g., 2.00) .TP \fB\eV\fP la distribución de \fBbash\fP, versión + nivel de parcheo (e.g., 2.00.0) .TP \fB\ew\fP el valor de la variable de la shell \fBPWD\fP (\fB$PWD\fP), con .SM \fB$HOME\fP abreviado con una tilde (emplea el valor de la variable .SM \fBPROMPT_DIRTRIM\fP). .TP \fB\eW\fP el nombre base del directorio de \fB$PWD\fP, cin .SM \fB$HOME\fP abreviado con una tilde. .TP \fB\e!\fP el número de historia de esta orden .TP \fB\e#\fP el número de orden de esta orden .TP \fB\e$\fP si el UID efectivo es 0 (el super\-usuario), un \fB#\fP, si no un \fB$\fP .TP \fB\e\fP\fInnn\fP el carácter correspondiente al número octal \fInnn\fP .TP \fB\e\e\fP una barra inclinada invertida .TP \fB\e[\fP empieza una secuencia de caracteres no imprimibles, que pueden emplearse para empotrar una secuencia de control del terminal en el indicador .TP \fB\e]\fP termina una secuencia de caracteres no imprimibles .PD .RE .PP El número de orden y el número de historia son usualmente diferentes: el número de historia de una orden es su posición en la lista de historia, que puede incluir órdenes restauradas desde el historial (consulte .SM \fBHISTORIAL\fP más adelante), mientras que el número de orden es la posición en la secuencia de órdenes ejecutadas durante la sesión de shell actual. Después de que la cadena es descodificada, se expande mediante la expansión de parámetros, sustitución de órdenes, expansión aritmética, expansión de cadena, y eliminación de comillas, sujeta al valor de la opción de la shell \fBpromptvars\fP (vea la descripción de la orden \fBshopt\fP bajo .SM \fBÓRDENES INTERNAS DE LA SHELL\fP más adelante). Esto puede tener algún efecto indeseado si la parte protegida de la cadena aparece dentro de la sustitución de órdenes o contiene algún carácter especial para la expansión de palabras. .SH READLINE This is the library that handles reading input when using an interactive shell, unless the \fB\-\-noediting\fP option is given at shell invocation. Line editing is also used when using the \fB\-e\fP option to the \fBread\fP builtin. By default, the line editing commands are similar to those of Emacs. A vi\-style line editing interface is also available. Line editing can be enabled at any time using the \fB\-o emacs\fP or \fB\-o vi\fP options to the \fBset\fP builtin (see .SM \fBSHELL BUILTIN COMMANDS\fP below). To turn off line editing after the shell is running, use the \fB+o emacs\fP or \fB+o vi\fP options to the \fBset\fP builtin. .SS "Notación de Readline" En esta sección, se emplea la notación al estilo de Emacs para denotar las teclas. Las teclas de control se representan por medio de C\-\fItecla\fP; así, C\-n significa Control\-N. De forma similar, las teclas \fImeta\fP (Alt) se representan con M\-\fItecla\fP, de forma que M\-x significa Meta\-X. (En teclados sin tecla \fImeta\fP, M\-\fIx\fP significa ESC \fIx\fP, i.e., pulsar la tecla de escape (Esc) y luego la tecla \fIx\fP. Esto hace que ESC sea el \fIprefijo meta\fP. La combinación M\-C\-\fIx\fP quiere decir ESC\-Control\-\fIx\fP, o pulsar la tecla Escape y luego mantener presionada la tecla Control mientras se pulsa la tecla \fIx\fP.) .PP Las órdenes de readline pueden recibir \fIargumentos\fP numéricos que actúan normalmente como un número de repetición. Algunas veces, empero, lo que tiene significado es el signo del argumento. Pasar un argumento negativo a una orden que actúa en la dirección adelante (p. ej., \fBkill\-line\fP) hace que esa orden actúe en la dirección contraria, hacia atrás. Las órdenes cuyo comportamiento con argumentos se desvíe de esto se señalan más adelante. .PP Cuando una orden se describe como que \fIcorta\fP texto, el texto borrado se guarda para una posible futura recuperación (\fIpegado\fP). El texto cortado se guarda en un \fIanillo de corte\fP. Cortes consecutivos hacen que el texto se acumule en una unidad, que puede pegarse toda de golpe, de una vez. Las órdenes que no cortan texto separan los trozos de texto en el anillo de corte. .SS "Inicio de Readline" Readline se personaliza poniendo órdenes en un archivo de inicio (el archivo \fIinputrc\fP). El nombre de este archivo se toma del valor de la variable .SM \fBINPUTRC\fP. Si esta variable no está definida, el valor predeterminado es \fI/etc/inputrc\fP. Cuando un programa que hace uso de la biblioteca readline arranca, el archivo de inicio se lee, y se establecen las definiciones de teclas y variables. Solo se permiten unas pocas construcciones básicas en el archivo de inicio de readline. Las líneas en blanco no se tienen en cuenta. Las líneas que comiencen con un \fB#\fP son comentarios. Las líneas que comiencen con un \fB$\fP indican construcciones condicionales. Otras líneas representan definiciones de teclas y definiciones de variables. .PP Las definiciones predeterminadas de teclas pueden cambiarse con un fichero \fIinputrc\fP. Otros programas que usen esta biblioteca pueden añadir sus propias órdenes y definiciones. .PP Por ejemplo, el poner .RS .PP M\-Control\-u: universal\-argument .RE o .RS C\-Meta\-u: universal\-argument .RE dentro del fichero \fIinputrc\fP haría que M\-C\-u ejecutara la orden de readline \fIuniversal\-argument\fP. .PP Se reconocen los siguientes nombres simbólicos de caracteres: \fIRUBOUT\fP, \fIDEL\fP, \fIESC\fP, \fILFD\fP, \fINEWLINE\fP, \fIRET\fP, \fIRETURN\fP, \fISPC\fP, \fISPACE\fP, y \fITAB\fP. .PP Además de los nombres de órdenes, readline permite que se enlace una tecla cualquiera a una cadena de caracteres que se inserta cuando la tecla se pulse (una \fImacro\fP). .SS "Definiciones de Teclas de Readline" La sintaxis para controlar las definiciones de teclas en el fichero \fIinputrc\fP es simple. Todo lo que se requiere es el nombre de la orden o el texto de una macro y una secuencia de teclas con la cual debe enlazarse. El nombre se puede especificar en una de dos formas: como un nombre simbólico de tecla, posiblemente con prefijos \fIMeta\-\fP o \fIControl\-\fP, o como una secuencia de teclas. .PP Cuando se use la forma \fBnombre\-tecla\fP:\^\fInombre\-función\fP o \fImacro\fP, \fInombre\-tecla\fP es el nombre de una tecla en inglés. Por ejemplo: .sp .RS Control\-u: universal\-argument .br Meta\-Rubout: backward\-kill\-word .br Control\-o: "> salida" .RE .LP En el ejemplo de arriba, \fIC\-u\fP se enlaza a la función \fBuniversal\-argument\fP, \fIM\-DEL\fP se vincula a la función \fBbackward\-kill\-word\fP, y \fIC\-o\fP se define como que se ejecute la macro expresada en la parte derecha (esto es, insertar el texto .if t \f(CW> output\fP .if n ``> output'' en la línea). .PP En la segunda forma, \fB"sectecla"\fP:\^\fInombre\-función\fP o \fImacro\fP, \fBsectecla\fP difiere de la \fBnombre\-tecla\fP de antes en que las cadenas que representan una secuencia entera de teclas pueden especificarse poniendo la secuencia entre comillas dobles. Así se pueden utilizar algunas teclas de escape al estilo de GNU Emacs, como en el siguiente ejemplo, pero no se reconocen los nombres de caracteres simbólicos. .sp .RS "\eC\-u": universal\-argument .br "\eC\-x\eC\-r": re\-read\-init\-file .br "\ee[11~": "Tecla de Función 1" .RE .PP En este ejemplo, \fIC\-u\fP se enlaza de nuevo a la función \fBuniversal\-argument\fP. \fIC\-x C\-r\fP se vincula a la función \fBre\-read\-init\-file\fP, y \fIESC [ 1 1 ~\fP se define como que se inserte el texto .if t \f(CWFunction Key 1\fP. .if n ``Function Key 1''. .PP El conjunto completo de las secuencias de escape al estilo de GNU Emacs es .RS .PD 0 .TP \fB\eC\-\fP prefijo de control .TP \fB\eM\-\fP prefijo meta .TP \fB\ee\fP un carácter de escape (ESC) .TP \fB\e\e\fP barra invertida .TP \fB\e"\fP una " literal .TP \fB\e\(aq\fP una \(aq literal .RE .PD .PP Además de las secuencias de escape al estilo de GNU Emacs, se dispone de un segundo conjunto de escapes con la barra invertida: .RS .PD 0 .TP \fB\ea\fP alerta (pitido) .TP \fB\eb\fP espacio\-atrás .TP \fB\ed\fP espacio atrás .TP \fB\ef\fP nueva página .TP \fB\en\fP salto de línea .TP \fB\er\fP retorno de carro .TP \fB\et\fP tabulación horizontal .TP \fB\ev\fP tabulación vertical .TP \fB\e\fP\fInnn\fP el carácter de 8 bits cuyo código es el valor octal \fInnn\fP (de uno a tres dígitos) .TP \fB\ex\fP\fIHH\fP el carácter de 8\-bits cuyo código es el valor hexadecimal \fIHH\fP (uno o dos dígitos hexadecimales) .RE .PD .PP Cuando se mete el texto de una macro, se deben emplear comillas simples o dobles para indicar una definición de macro. El texto no entrecomillado se supone un nombre de función. En el cuerpo de la macro, los escapes con barra inversa de arriba se expanden. La barra inversa protegerá a cualquier otro carácter en el texto de la macro, incluyendo a " y a \(aq. .PP \fBBash\fP permite mostrar o modificar las definiciones de teclas en curso mediante la orden interna \fBbind\fP. El modo de edición puede cambiarse durante una sesión interactiva empleando la opción \fB\-o\fP de la orden interna \fBset\fP (vea .SM \fBÓRDENES NATIVAS DE LA SHELL\fP más adelante). .SS "Variables de Readline" Readline tiene variables que se pueden usar para personalizar más aún su comportamiento. Una variable se puede definir en el fichero \fIinputrc\fP con una sentencia de la forma .RS .PP \fBset\fP \fInombre\-variable\fP \fIvalor\fP .RE o bien empleando la orden nativa \fBbind\fP (consulte .SM \fBÓRDENES NATIVAS DE LA SHELL\fP más adelante). .PP Except where noted, readline variables can take the values \fBOn\fP or \fBOff\fP (without regard to case). Unrecognized variable names are ignored. When a variable value is read, empty or null values, "on" (case\-insensitive), and "1" are equivalent to \fBOn\fP. All other values are equivalent to \fBOff\fP. The variables and their default values are: .PP .PD 0 .TP \fBactive\-region\-start\-color\fP A string variable that controls the text color and background when displaying the text in the active region (see the description of \fBenable\-active\-region\fP below). This string must not take up any physical character positions on the display, so it should consist only of terminal escape sequences. It is output to the terminal before displaying the text in the active region. This variable is reset to the default value whenever the terminal type changes. The default value is the string that puts the terminal in standout mode, as obtained from the terminal's terminfo description. A sample value might be \f(CW"\ee[01;33m"\fP. .TP \fBactive\-region\-end\-color\fP A string variable that "undoes" the effects of \fBactive\-region\-start\-color\fP and restores "normal" terminal display appearance after displaying text in the active region. This string must not take up any physical character positions on the display, so it should consist only of terminal escape sequences. It is output to the terminal after displaying the text in the active region. This variable is reset to the default value whenever the terminal type changes. The default value is the string that restores the terminal from standout mode, as obtained from the terminal's terminfo description. A sample value might be \f(CW"\ee[0m"\fP. .TP \fBbell\-style (audible)\fP Controla qué pasa cuando readline quiere tocar el pito de la terminal. Si se define como \fBnone\fP, readline nunca toca el pito. Si se pone a \fBvisible\fP, readline usa una alerta visible si está disponible. Si se pone como \fBaudible\fP, readline intenta hacer sonar el pito de la terminal. .TP \fBbind\-tty\-special\-chars (On)\fP If set to \fBOn\fP, readline attempts to bind the control characters treated specially by the kernel's terminal driver to their readline equivalents. .TP \fBblink\-matching\-paren (Off)\fP If set to \fBOn\fP, readline attempts to briefly move the cursor to an opening parenthesis when a closing parenthesis is inserted. .TP \fBcolored\-completion\-prefix (Off)\fP If set to \fBOn\fP, when listing completions, readline displays the common prefix of the set of possible completions using a different color. The color definitions are taken from the value of the \fBLS_COLORS\fP environment variable. If there is a color definition in \fB$LS_COLORS\fP for the custom suffix "readline\-colored\-completion\-prefix", readline uses this color for the common prefix instead of its default. .TP \fBcolored\-stats (Off)\fP If set to \fBOn\fP, readline displays possible completions using different colors to indicate their file type. The color definitions are taken from the value of the \fBLS_COLORS\fP environment variable. .TP \fBcomment\-begin (\*(lq#\*(rq)\fP La cadena que se inserta cuando se ejecuta la orden de readline \fBinsert\-comment\fP. Esta orden está enlazada a \fBM\-#\fP en modo emacs y a \fB#\fP en modo vi. .TP \fBcompletion\-display\-width (\-1)\fP The number of screen columns used to display possible matches when performing completion. The value is ignored if it is less than 0 or greater than the terminal screen width. A value of 0 will cause matches to be displayed one per line. The default value is \-1. .TP \fBcompletion\-ignore\-case (Off)\fP Si se pone a \fBOn\fP, readline realiza la concordancia y terminación de nombres de ficheros sin importar si las letras son mayúsculas o minúsculas. .TP \fBcompletion\-map\-case (Off)\fP If set to \fBOn\fP, and \fBcompletion\-ignore\-case\fP is enabled, readline treats hyphens (\fI\-\fP) and underscores (\fI_\fP) as equivalent when performing case\-insensitive filename matching and completion. .TP \fBcompletion\-prefix\-display\-length (0)\fP The length in characters of the common prefix of a list of possible completions that is displayed without modification. When set to a value greater than zero, common prefixes longer than this value are replaced with an ellipsis when displaying possible completions. .TP \fBcompletion\-query\-items (100)\fP Esto determina cuándo se pregunta al usuario si quiere ver el número de terminaciones posibles generadas por la orden \fBpossible\-completions\fP. Puede ponerse a cualquier valor entero mayor o igual a cero. Si el número de posibles terminaciones es mayor o igual que el valor de esta variable, al usuario se le pregunta si desea o no verlas; si no, simplemente se muestran en la terminal. El valor cero indica que readline no debe preguntar nunca mientras que valores negativos son interpretados igual que el cero. .TP \fBconvert\-meta (On)\fP Si se pone a \fBOn\fP, readline convertirá caracteres con el octavo bit definido a una secuencia de teclas ASCII recortando el octavo bit y añadiendo un carácter Esc como prefijo (es decir, usando Esc como el \fIprefijo meta\fP). Por está definido como \fBOn\fP, pero readline lo define como \fIOff\fP si la localización contiene caracteres de 8 bits. Esta variable depende de la \fBLC_TYPE\fP pudiendo variar según la localización empleada. .TP \fBdisable\-completion (Off)\fP Si se pone a \fBOn\fP, readline inhibirá la terminación de palabras. Los caracteres para la terminación se insertarán en la línea como si se hubieran hecho corresponder con \fBself\-insert\fP. .TP \fBecho\-control\-characters (On)\fP When set to \fBOn\fP, on operating systems that indicate they support it, readline echoes a character corresponding to a signal generated from the keyboard. .TP \fBediting\-mode (emacs)\fP Controla si readline empieza con un conjunto de definiciones de teclas similar a las de \fIEmacs\fP o \fIvi\fP. \fBediting\-mode\fP puede ponerse a los valores \fBemacs\fP o \fBvi\fP. .TP \fBemacs\-mode\-string (@)\fP If the \fIshow\-mode\-in\-prompt\fP variable is enabled, this string is displayed immediately before the last line of the primary prompt when emacs editing mode is active. The value is expanded like a key binding, so the standard set of meta\- and control prefixes and backslash escape sequences is available. Use the \e1 and \e2 escapes to begin and end sequences of non\-printing characters, which can be used to embed a terminal control sequence into the mode string. .TP \fBenable\-active\-region (On)\fP The \fIpoint\fP is the current cursor position, and \fImark\fP refers to a saved cursor position. The text between the point and mark is referred to as the \fIregion\fP. When this variable is set to \fIOn\fP, readline allows certain commands to designate the region as \fIactive\fP. When the region is active, readline highlights the text in the region using the value of the \fBactive\-region\-start\-color\fP, which defaults to the string that enables the terminal's standout mode. The active region shows the text inserted by bracketed\-paste and any matching text found by incremental and non\-incremental history searches. .TP \fBenable\-bracketed\-paste (On)\fP When set to \fBOn\fP, readline configures the terminal to insert each paste into the editing buffer as a single string of characters, instead of treating each character as if it had been read from the keyboard. This prevents readline from executing any editing commands bound to key sequences appearing in the pasted text. .TP \fBenable\-keypad (Off)\fP Cuando se pone a \fBOn\fP, readline intentará activar el teclado auxiliar cuando se llame. Algunos sistemas necesitan esto para activar las teclas de flechas de cursor. .TP \fBenable\-meta\-key (On)\fP Cuando se pone a \fBOn\fP, readline intentará activar cualquier modificación con la tecla meta para la que el terminal tenga soporte. En muchos terminales, la tecla meta se usa para escribir caracteres de 8 bits. .TP \fBexpand\-tilde (Off)\fP Si se pone a \fBOn\fP, la expansión de tilde se realiza cuando readline intenta la terminación de palabras. .TP \fBhistory\-preserve\-point (Off)\fP If set to \fBOn\fP, the history code attempts to place point at the same location on each history line retrieved with \fBprevious\-history\fP or \fBnext\-history\fP. .TP \fBhistory\-size (unset)\fP Set the maximum number of history entries saved in the history list. If set to zero, any existing history entries are deleted and no new entries are saved. If set to a value less than zero, the number of history entries is not limited. By default, the number of history entries is set to the value of the \fBHISTSIZE\fP shell variable. If an attempt is made to set \fIhistory\-size\fP to a non\-numeric value, the maximum number of history entries will be set to 500. .TP \fBhorizontal\-scroll\-mode (Off)\fP When set to \fBOn\fP, makes readline use a single line for display, scrolling the input horizontally on a single screen line when it becomes longer than the screen width rather than wrapping to a new line. This setting is automatically enabled for terminals of height 1. .TP \fBinput\-meta (Off)\fP Si se pone a \fBOn\fP, readline habilitará la entrada de 8 bits (esto es, no pondrá a cero el octavo bit de los caracteres que lea), sin importar lo que la terminal diga que admite. El nombre \fBmeta\-flag\fP es un sinónimo para esta variable. Por defecto, su valor es \fIoff\fP aunque readline lo pondrá a \fIOn\fP si la localización contiene caracteres de 8 bits. Esta variable depende de \fBLC_TYPE\fP pudiendo variar según la localización empleada. .TP \fBisearch\-terminators (\*(lqC\-[C\-J\*(rq)\fP The string of characters that should terminate an incremental search without subsequently executing the character as a command. If this variable has not been given a value, the characters \fIESC\fP and \fIC\-J\fP will terminate an incremental search. .TP \fBkeymap (emacs)\fP Establece el mapa de teclado actual para readline. El conjunto de nombres de mapas de teclado válidos es \fIemacs, emacs\-standard, emacs\-meta, emacs\-ctlx, vi, vi\-command\fP, y \fIvi\-insert\fP. \fIvi\fP es equivalente a \fIvi\-command\fP; \fIemacs\fP es equivalente a \fIemacs\-standard\fP. El valor predeterminado es \fIemacs\fP; el valor de \fBediting\-mode\fP también afecta al mapa de teclado predeterminado. .TP \fBkeyseq\-timeout (500)\fP Specifies the duration \fIreadline\fP will wait for a character when reading an ambiguous key sequence (one that can form a complete key sequence using the input read so far, or can take additional input to complete a longer key sequence). If no input is received within the timeout, \fIreadline\fP will use the shorter but complete key sequence. The value is specified in milliseconds, so a value of 1000 means that \fIreadline\fP will wait one second for additional input. If this variable is set to a value less than or equal to zero, or to a non\-numeric value, \fIreadline\fP will wait until another key is pressed to decide which key sequence to complete. .TP \fBmark\-directories (On)\fP Si se pone a \fBOn\fP, los nombres de directorios completados tendrán una barra inclinada añadida al final. .TP \fBmark\-modified\-lines (Off)\fP Si se pone a \fBOn\fP, las líneas de historia que hayan sido modificadas se muestran con un asterisco precediéndolas (\fB*\fP). .TP \fBmark\-symlinked\-directories (Off)\fP If set to \fBOn\fP, completed names which are symbolic links to directories have a slash appended (subject to the value of \fBmark\-directories\fP). .TP \fBmatch\-hidden\-files (On)\fP This variable, when set to \fBOn\fP, causes readline to match files whose names begin with a `.' (hidden files) when performing filename completion. If set to \fBOff\fP, the leading `.' must be supplied by the user in the filename to be completed. .TP \fBmenu\-complete\-display\-prefix (Off)\fP If set to \fBOn\fP, menu completion displays the common prefix of the list of possible completions (which may be empty) before cycling through the list. .TP \fBoutput\-meta (Off)\fP If set to \fBOn\fP, readline will display characters with the eighth bit set directly rather than as a meta\-prefixed escape sequence. The default is \fIOff\fP, but readline will set it to \fIOn\fP if the locale contains eight\-bit characters. This variable is dependent on the \fBLC_CTYPE\fP locale category, and may change if the locale is changed. .TP \fBpage\-completions (On)\fP Si está a \fBOn\fP, readline emplea un paginador interno, similar a \fImore\fP, para mostrar en la pantalla todas las posibilidades autocompletado al mismo tiempo. .TP \fBprint\-completions\-horizontally (Off)\fP Si se pone a \fBOn\fP, readline mostrará terminaciones con concordancias clasificadas horizontalmente en orden alfabético, en vez de verticalmente. .TP \fBrevert\-all\-at\-newline (Off)\fP If set to \fBOn\fP, readline will undo all changes to history lines before returning when \fBaccept\-line\fP is executed. By default, history lines may be modified and retain individual undo lists across calls to \fBreadline\fP. .TP \fBshow\-all\-if\-ambiguous (Off)\fP Esto altera el comportamiento predeterminado de las funciones de terminación. Si se pone a \fBOn\fP, las palabras que tienen más de una posible terminación hacen que las concordancias se muestren inmediatamente en vez de tocarse el pito de la terminal. .TP \fBshow\-all\-if\-unmodified (Off)\fP This alters the default behavior of the completion functions in a fashion similar to \fBshow\-all\-if\-ambiguous\fP. If set to \fBOn\fP, words which have more than one possible completion without any possible partial completion (the possible completions don't share a common prefix) cause the matches to be listed immediately instead of ringing the bell. .TP \fBshow\-mode\-in\-prompt (Off)\fP If set to \fBOn\fP, add a string to the beginning of the prompt indicating the editing mode: emacs, vi command, or vi insertion. The mode strings are user\-settable (e.g., \fIemacs\-mode\-string\fP). .TP \fBskip\-completed\-text (Off)\fP If set to \fBOn\fP, this alters the default completion behavior when inserting a single match into the line. It's only active when performing completion in the middle of a word. If enabled, readline does not insert characters from the completion that match characters after point in the word being completed, so portions of the word following the cursor are not duplicated. .TP \fBvi\-cmd\-mode\-string ((orden))\fP If the \fIshow\-mode\-in\-prompt\fP variable is enabled, this string is displayed immediately before the last line of the primary prompt when vi editing mode is active and in command mode. The value is expanded like a key binding, so the standard set of meta\- and control prefixes and backslash escape sequences is available. Use the \e1 and \e2 escapes to begin and end sequences of non\-printing characters, which can be used to embed a terminal control sequence into the mode string. .TP \fBvi\-ins\-mode\-string ((ins))\fP If the \fIshow\-mode\-in\-prompt\fP variable is enabled, this string is displayed immediately before the last line of the primary prompt when vi editing mode is active and in insertion mode. The value is expanded like a key binding, so the standard set of meta\- and control prefixes and backslash escape sequences is available. Use the \e1 and \e2 escapes to begin and end sequences of non\-printing characters, which can be used to embed a terminal control sequence into the mode string. .TP \fBvisible\-stats (Off)\fP Si se pone a \fBOn\fP, se añade un carácter que represente un tipo de fichero según lo que devuelve \fIstat\fP(2) cuando se listan las terminaciones posibles. .PD .SS "Construcciones Condicionales de Readline" Readline implementa una facilidad similar en espíritu a las características de compilación condicional del preprocesador de C que permite que las definiciones de teclas y variables se realicen en función de pruebas o condiciones. Hay cuatro directivas del analizador que se usan. .IP \fB$if\fP The \fB$if\fP construct allows bindings to be made based on the editing mode, the terminal being used, or the application using readline. The text of the test, after any comparison operator, extends to the end of the line; unless otherwise noted, no characters are required to isolate it. .RS .IP \fBmode\fP La forma \fBmode=\fP de la directiva \fB$if\fP se usa para ver si readline está en modo emacs o vi. Esto se puede emplear en conjunción con la orden \fBset keymap\fP, por ejemplo, para poner el teclado en los mapas \fIemacs\-standard\fP y \fIemacs\-ctlx\fP solo si readline está arrancando en modo emacs. .IP \fBterm\fP La forma \fBterm=\fP puede emplearse para incluir definiciones de teclas específicas de una terminal determinada, quizás para enlazar las secuencias de teclas generadas por las teclas de función de la terminal. La palabra en la parte derecha del \fB=\fP se prueba contra el nombre completo de la terminal y contra la porción del nombre de la terminal antes del primer \fB\-\fP. Esto permite que \fIsun\fP concuerde con \fIsun\fP y con \fIsun\-cmd\fP, por ejemplo. .IP \fBversion\fP The \fBversion\fP test may be used to perform comparisons against specific readline versions. The \fBversion\fP expands to the current readline version. The set of comparison operators includes \fB=\fP, (and \fB==\fP), \fB!=\fP, \fB<=\fP, \fB>=\fP, \fB<\fP, and \fB>\fP. The version number supplied on the right side of the operator consists of a major version number, an optional decimal point, and an optional minor version (e.g., \fB7.1\fP). If the minor version is omitted, it is assumed to be \fB0\fP. The operator may be separated from the string \fBversion\fP and from the version number argument by whitespace. .IP \fBapplication\fP La construcción \fBapplication\fP se emplea para incluir definiciones específicas de la aplicación. Cada programa que usa la biblioteca readline define el \fInombre de la aplicación\fP, y en un archivo de inicio se puede comprobar si existe un valor en particular. Esto se podría emplear para enlazar secuencias de teclas a funciones útiles para un programa específico. Por ejemplo, la orden siguiente añade una secuencia de teclas que entrecomilla la palabra en curso o la anterior en \fBbash\fP: .sp 1 .RS .nf \fB$if\fP Bash # Entrecomilla la palabra actual o previa "\eC\-xq": "\eeb\e"\eef\e"" \fB$endif\fP .fi .RE .IP \fIvariable\fP The \fIvariable\fP construct provides simple equality tests for readline variables and values. The permitted comparison operators are \fI=\fP, \fI==\fP, and \fI!=\fP. The variable name must be separated from the comparison operator by whitespace; the operator may be separated from the value on the right hand side by whitespace. Both string and boolean variables may be tested. Boolean variables must be tested against the values \fIon\fP and \fIoff\fP. .RE .IP \fB$endif\fP Esta orden, como se ha visto en el ejemplo precedente, termina una orden \fB$if\fP. .IP \fB$else\fP Las órdenes en esta rama de la directiva \fB$if\fP se ejecutan si la comprobación falla. .IP \fB$include\fP Esta directiva toma como argumento un solo nombre de fichero y lee órdenes y definiciones de ese fichero. Por ejemplo, la siguiente directiva leería de \fI/etc/inputrc\fP: .sp 1 .RS .nf \fB$include\fP \^ \fI/etc/inputrc\fP .fi .RE .SS Búsquedas Readline proporciona órdenes para buscar a través del historial de órdenes (vea .SM \fBHISTORIAL\fP más adelante) líneas que contengan una cadena especificada. Hay dos modos de búsqueda: \fIincremental\fP y \fIno incremental\fP. .PP La búsqueda incremental comienza antes de que el usuario haya acabado de teclear la cadena a buscar. Tan pronto como se teclea cada carácter de la cadena de búsqueda, readline muestra la siguiente entrada de la historia que concuerde con la cadena que se esté tecleando hasta este punto. Una búsqueda incremental requiere solamente tantos caracteres como se necesiten para encontrar la entrada deseada en el historial. Los caracteres contenidos en la variable \fBisearch\-terminators\fP se emplean para terminar una búsqueda incremental. Control\-G terminará una búsqueda incremental reataurando la línea original. Una vez que la búsqueda termine, la línea del historial que contenga la cadena de búsqueda pasa a ser la línea actual. .PP To find other matching entries in the history list, type Control\-S or Control\-R as appropriate. This will search backward or forward in the history for the next entry matching the search string typed so far. Any other key sequence bound to a readline command will terminate the search and execute that command. For instance, a \fInewline\fP will terminate the search and accept the line, thereby executing the command from the history list. .PP Readline remembers the last incremental search string. If two Control\-Rs are typed without any intervening characters defining a new search string, any remembered search string is used. .PP Las búsquedas no incrementales leen la cadena de búsqueda entera antes de empezar a buscar en las líneas de la lista de historia. La cadena de búsqueda puede ser tecleada por el usuario o ser parte de los contenidos de la línea en curso. .SS "Nombres de Órdenes de Readline" Lo siguiente es una lista de los nombres de las órdenes y las secuencias de teclas predeterminadas a las que están asociadas. Los nombres de órdenes sin una secuencia de tecla acompañante pertenecen a órdenes que no están asociadas a ninguna secuencia de teclas de forma predeterminada. En las siguientes descripciones, \fIpunto\fP se refiere a la posición actual del cursor y \fImarca\fP se refiere a una posición guardada mediante la orden \fBset\-mark\fP. El texto en dicho punto y la marca es lo que se conoce como \fIregion\fP. .SS "Órdenes para el Movimiento" .PD 0 .TP \fBbeginning\-of\-line (C\-a)\fP Mover al principio de la línea en curso. .TP \fBend\-of\-line (C\-e)\fP Mover al final de la línea. .TP \fBforward\-char (C\-f)\fP Mover un carácter hacia adelante. .TP \fBbackward\-char (C\-b)\fP Mover un carácter hacia atrás. .TP \fBforward\-word (M\-f)\fP Mover adelante hasta el final de la siguiente palabra. Las palabras se componen de caracteres alfanuméricos (letras y dígitos). .TP \fBbackward\-word (M\-b)\fP Mover atrás hasta el principio de esta palabra o la anterior. Las palabras se componen de caracteres alfanuméricos (letras y dígitos). .TP \fBshell\-forward\-word\fP Mover adelante hasta el final de la siguiente palabra. Las palabras están delmitadas por metacaracteres de la shell no entrecomillados. .TP \fBshell\-backward\-word\fP Mover atrás hasta el principio de esta palabra o la anterior. Las palabras se delimitan por metacaracteres de la shell no entrecomillados. .TP \fBprevious\-screen\-line\fP Attempt to move point to the same physical screen column on the previous physical screen line. This will not have the desired effect if the current readline line does not take up more than one physical line or if point is not greater than the length of the prompt plus the screen width. .TP \fBnext\-screen\-line\fP Attempt to move point to the same physical screen column on the next physical screen line. This will not have the desired effect if the current readline line does not take up more than one physical line or if the length of the current readline line is not greater than the length of the prompt plus the screen width. .TP \fBclear\-display (M\-C\-l)\fP Clear the screen and, if possible, the terminal's scrollback buffer, then redraw the current line, leaving the current line at the top of the screen. .TP \fBclear\-screen (C\-l)\fP Despejar la pantalla y volver a crear la línea actual dejándola en la parte superior de la pantalla. Si se proporciona un argumento, refresca la línea actual sin despejar la pantalla. .TP \fBredraw\-current\-line\fP Refrescar la línea en curso. .PD .SS "Órdenes para Manipular el Historial" .PD 0 .TP \fBaccept\-line (Nueva\-línea, Intro)\fP Aceptar la línea sin importar dónde esté el cursor. Si esta línea no está vacía, añadirla al historial de acuerdo con el estado de la variable .SM \fBHISTCONTROL\fP. Si la línea es una de las de la historia, modificada, entonces restaurar el historial a su estado original. .TP \fBprevious\-history (C\-p)\fP Obtener la orden anterior del historial, moviéndose hacia atrás en la misma. .TP \fBnext\-history (C\-n)\fP Obtener la orden siguiente del historial, moviéndose hacia delante en el mismo. .TP \fBbeginning\-of\-history (M\-<)\fP Mover a la primera línea del historial. .TP \fBend\-of\-history (M\->)\fP Mover al final de la historia de entrada; esto es, la línea que está siendo introducida en la actualidad. .TP \fBoperate\-and\-get\-next (C\-o)\fP Aceptar la línea en curso para la ejecución y obtener la línea siguiente relativa a la actual desde el historial, para la edición. Si se añade un argumento numérico define la línea del historial a emplear en lugar de usar al actual. .TP \fBfetch\-history\fP Con un argumento numérico, toma dicha entrada del histórico y la copia en la línea actual. Si no se da ningún argumento, se desplaza a la primera entrada del mismo. .TP \fBreverse\-search\-history (C\-r)\fP Buscar hacia atrás empezando en la línea en curso y moviéndose `arriba' a través del historial si es necesario. Esta búsqueda es incremental. .TP \fBforward\-search\-history (C\-s)\fP Buscar hacia adelante empezando en la línea en curso y moviéndose `abajo' a través del historial si es necesario. Esta búsqueda es incremental. .TP \fBnon\-incremental\-reverse\-search\-history (M\-p)\fP Buscar hacia atrás a través del historial empezando en la línea en curso empleando una búsqueda no incremental de una cadena suministrada por el usuario. .TP \fBnon\-incremental\-forward\-search\-history (M\-n)\fP Buscar hacia delante a través del historial empezando en la línea en curso empleando una búsqueda no incremental de una cadena suministrada por el usuario. .TP \fBhistory\-search\-forward\fP Buscar hacia adelante a través del historial una cadena de caracteres entre el comienzo de la línea en curso y el punto. Esta búsqueda no es incremental. .TP \fBhistory\-search\-backward\fP Buscar hacia atrás a través del historial una cadena de caracteres entre el comienzo de la línea en curso y el punto. Esta búsqueda no es incremental. .TP \fBhistory\-substring\-search\-backward\fP Buscar hacia atrás a través del historial una cadena de caracteres entre el comienzo de la línea en curso y el punto. Esta búsqueda no es incremental. .TP \fBhistory\-substring\-search\-forward\fP Buscar hacia delante a través del historial una cadena de caracteres entre el comienzo de la línea en curso y el punto. Esta búsqueda no es incremental. .TP \fByank\-nth\-arg (M\-C\-y)\fP Insertar el primer argumento de la orden anterior (normalmente la segunda palabra de la línea anterior) en el punto. Con un argumento \fIn\fP, insertar la \fIn\fP\-sima palabra de la orden anterior (las palabras en la orden anterior empiezan con la palabra 0). Un argumento negativo inserta la \fIn\fP\-sima palabra desde el final de la orden anterior.Una vez que se computa el argumento \fIn\fP, se extraerá como si se definiese esta exapnsión del historial: "!\fIn\fP" .TP \fByank\-last\-arg (M\-.\^, M\-_\^)\fP Inserta el último argumento de la orden anterior (la última palabra de la anterior entrada del historial). Con un argumento numérico, se comporta de igual modo a \fByank\-nth\-arg\fP. Invocando varias veces \fByank\-last\-arg\fP, se desplazará hacia atrás en el historial insertando la última palabra (o aquella definida en el argumento de la primera invocación) de cada línea por la que se desplace. Cualquier aargumento numérico que se proporcione en las sucesivas invocaciones determina la dirección de desplazamiento en el historial. Un argumento negativo cambiará dicha dirección hacia delante o hacia atrás. Las utilidades de expansión del historial se usan para extraer la última palabra como si se especificase "!$". .TP \fBshell\-expand\-line (M\-C\-e)\fP Expandir la línea como hace la shell. Esto realiza la expansión de alias y de historia así como todas las expansiones de palabra de la shell. Consulte .SM \fBEXPANSIÓN DEL HISTORIAL\fP más adelante para una descripción de la expansión de historia. .TP \fBhistory\-expand\-line (M\-^)\fP Realizar la expansión de historia en la línea en curso. Vea .SM \fBEXPANSIÓN DEL HISTORIAL\fP más adelante para una descripción de la expansión de historia. .TP \fBmagic\-space\fP Efectuar la expansión de historia en la línea en curso e insertar un espacio. Vea .SM \fBEXPANSIÓN DEL HISTORIAL\fP más adelante para una descripción de la expansión de historia. .TP \fBalias\-expand\-line\fP Realizar la expansión de alias en la línea en curso. Vea .SM \fBALIAS\fP arriba para una descripción de la expansión de alias. .TP \fBhistory\-and\-alias\-expand\-line\fP Realizar la expansión de historia y alias en la línea en curso. .TP \fBinsert\-last\-argument (M\-.\^, M\-_\^)\fP Un sinónimo para \fByank\-last\-arg\fP. .TP \fBedit\-and\-execute\-command (C\-x C\-e)\fP Invoca un editor en la línea de órdenes actual ejecutándose el resultado como órdenes de la shell. \fBbash\fP intenta invocas .SM \fB$VISUAL\fP, .SM \fB$EDITOR\fP y \fIemacs\fP en ese orden. .PD .SS "Órdenes para Cambiar el Texto" .PD 0 .TP \fBend\-of\-file\fP\fB (generalmente C\-d)\fP El carácter que determina el fin\-de\-archivo se define por ejemplo mediante .if t \f(CWstty\fP. .if n ``stty''. Si se lee el carácter cuando no hay ninguno en la línea y el punto está al principio de la línea, Readline lo interpreta como el fin de la entrada y devuelve .SM \fBEOF\fP. .TP \fBdelete\-char (C\-d)\fP Eliminar el carácter en el punto. Si esta función está asociada con el mismo carácter que que tenga el tty para \fBEOF\fP, como suele serlo \fBC\-d\fP, vea anteriormente los efectos. .TP \fBbackward\-delete\-char (Borrar)\fP Borrar el carácter tras el cursor. Cuando se da un argumento numérico, guardar el texto borrado en el anillo de corte. .TP \fBforward\-backward\-delete\-char\fP Borrar el carácter bajo el cursor, salvo que el cursor esté al final de la línea, en cuyo caso se borrará el carácter que esté detrás. .TP \fBquoted\-insert (C\-q, C\-v)\fP Añadir el siguiente carácter tecleado a la línea tal cual. Así es como se pueden insertar caracteres como \fBC\-q\fP, por ejemplo. .TP \fBtab\-insert (C\-v TAB)\fP Insertar un carácter de tabulación. .TP \fBself\-insert (a,\ b,\ A,\ 1,\ !,\ ...)\fP Insertar el carácter tecleado. .TP \fBtranspose\-chars (C\-t)\fP Arrastrar el carácter antes del punto hacia adelante sobre el carácter en el punto. El punto se mueve adelante también. Si el punto está al final de la línea, entonces transpone los dos caracteres antes del punto. Los argumentos negativos no tienen efecto. .TP \fBtranspose\-words (M\-t)\fP Arrastrar la palabra antes del punto hacia adelante sobre el carácter en el punto. El punto se mueve adelante también. Si el punto está al final de la línea, se transponen los dos últimas palabras de dicha línea. .TP \fBupcase\-word (M\-u)\fP Poner en mayúsculas la palabra en curso (o la siguiente). Con un argumento negativo, pone la anterior, pero no mueve el punto. .TP \fBdowncase\-word (M\-l)\fP Poner en minúsculas la palabra en curso (o la siguiente). Con un argumento negativo, pone la anterior, pero no mueve el punto. .TP \fBcapitalize\-word (M\-c)\fP Poner en mayúscula la inicial de la palabra en curso (o la siguiente). Con un argumento negativo, pone la anterior, pero no mueve el punto. .TP \fBoverwrite\-mode\fP Toggle overwrite mode. With an explicit positive numeric argument, switches to overwrite mode. With an explicit non\-positive numeric argument, switches to insert mode. This command affects only \fBemacs\fP mode; \fBvi\fP mode does overwrite differently. Each call to \fIreadline()\fP starts in insert mode. In overwrite mode, characters bound to \fBself\-insert\fP replace the text at point rather than pushing the text to the right. Characters bound to \fBbackward\-delete\-char\fP replace the character before point with a space. By default, this command is unbound. .PD .SS "Cortar y Pegar" .PD 0 .TP \fBkill\-line (C\-k)\fP Cortar el texto desde la posición actual del cursor hasta el final de la línea. .TP \fBbackward\-kill\-line (C\-x Borrar)\fP Cortar hacia atrás hasta el principio de la línea. .TP \fBunix\-line\-discard (C\-u)\fP .\" There is no real difference between this and backward-kill-line Cortar hacia atrás desde el punto hasta el principio de la línea. El texto cortado se guarda en el anillo de corte. .TP \fBkill\-whole\-line\fP Cortar todos los caracteres de la línea en curso, sin importar dónde esté el punto. .TP \fBkill\-word (M\-d)\fP Cortar desde el punto hasta el final de la palabra en curso, o si entre palabras, hasta el final de la siguiente. Los extremos de las palabras son los mismos que los empleados por \fBforward\-word\fP. .TP \fBbackward\-kill\-word (M\-supr)\fP Cortar la palabra tras el punto. Los extremos de las palabras son los mismos que los empleados por \fBbackward\-word\fP. .TP \fBshell\-kill\-word\fP Cortar desde el punto hasta el final de la palabra en curso, o si entre palabras, hasta el final de la siguiente. Los extremos de las palabras son los mismos que los empleados por \fBshell\-forward\-word\fP. .TP \fBshell\-backward\-kill\-word\fP Cortar la palabra tras el punto. Los extremos de las palabras son los mismos que los empleados por \fBshell\-backward\-word\fP. .TP \fBunix\-word\-rubout (C\-w)\fP Cortar la palabra tras el punto, empleando el espacio en blanco como un límite de palabra. El texto cortado se guarda en el anillo de corte. .TP \fBunix\-filename\-rubout\fP Cortar la palabra detrás del punto empleando el espacio en blanco y la barra como límites de la palabra. El texto cortado se guarda en el anillo de corte. .TP \fBdelete\-horizontal\-space (M\-\e)\fP Borrar todos los espacios y tabuladores alrededor del punto. .TP \fBkill\-region\fP Cortar el texto en la región actual. .TP \fBcopy\-region\-as\-kill\fP Copiar el texto de la región al anillo de corte. .TP \fBcopy\-backward\-word\fP Copiar la palabra antes del punto al búfer de corte. Los extremos de palabras son los mismos que con \fBbackward\-word\fP. .TP \fBcopy\-forward\-word\fP Copiar la palabra que sigue al punto al búfer de corte. Los extremos de palabra son los mismos que con \fBforward\-word\fP. .TP \fByank (C\-y)\fP Pegar la cima del anillo de corte en el búfer en el punto. .TP \fByank\-pop (M\-y)\fP Rotar en el anillo de corte, y pegar la nueva cima. Solo funciona tras un \fByank\fP o \fByank\-pop\fP. .PD .SS "Argumentos Numéricos" .PD 0 .TP \fBdigit\-argument (M\-0, M\-1, ..., M\-\-)\fP Añadir este dígito al argumento, acumulándolo, o comenzar con un nuevo argumento. M\-\- empieza un argumento negativo. .TP \fBuniversal\-argument\fP Ésta es otra forma de especificar un argumento. Si esta orden se hace seguir de uno o más dígitos, opcionalmente con un signo menos inicial, estos dígitos definen el argumento. Si a la orden siguen dígitos, ejecutar de nuevo \fBuniversal\-argument\fP finaliza el argumento numérico, pero si no, no se tiene en cuenta. Como un caso especial, si a esta orden sigue inmediatamente un carácter que no es ni un dígito ni un signo menos, el número del argumento para la siguiente orden se multiplica por cuatro. El número del argumento es inicialmente uno, así que ejecutar esta función por primera vez hace que el número del argumento sea cuatro, una segunda vez lo hace dieciséis, y así sucesivamente. .PD .SS Terminación .PD 0 .TP \fBcomplete (TAB)\fP Intentar realizar una terminación del texto antes del punto. \fBBash\fP intenta la terminación tratando al texto como una variable (si el texto comienza con \fB$\fP), como un nombre de usuario (si el texto empieza con \fB~\fP), como un nombre de equipo anfitrión (si el texto comienza con \fB@\fP), o como una orden (incluyendo alias y funciones), por este orden. Si nada de esto concuerda, se intenta la terminación de un nombre de fichero. .TP \fBpossible\-completions (M\-?)\fP Listar las terminaciones posibles del texto antes del punto. .TP \fBinsert\-completions (M\-*)\fP Insertar todas las terminaciones del texto antes del punto que habrían sido generadas por \fBpossible\-completions\fP. .TP \fBmenu\-complete\fP Similar to \fBcomplete\fP, but replaces the word to be completed with a single match from the list of possible completions. Repeated execution of \fBmenu\-complete\fP steps through the list of possible completions, inserting each match in turn. At the end of the list of completions, the bell is rung (subject to the setting of \fBbell\-style\fP) and the original text is restored. An argument of \fIn\fP moves \fIn\fP positions forward in the list of matches; a negative argument may be used to move backward through the list. This command is intended to be bound to \fBTAB\fP, but is unbound by default. .TP \fBmenu\-complete\-backward\fP Identical to \fBmenu\-complete\fP, but moves backward through the list of possible completions, as if \fBmenu\-complete\fP had been given a negative argument. This command is unbound by default. .TP \fBdelete\-char\-or\-list\fP Deletes the character under the cursor if not at the beginning or end of the line (like \fBdelete\-char\fP). If at the end of the line, behaves identically to \fBpossible\-completions\fP. This command is unbound by default. .TP \fBcomplete\-filename (M\-/)\fP Intentar la terminación de un nombre de fichero en el texto antes del punto. .TP \fBpossible\-filename\-completions (C\-x /)\fP Listar las posibles terminaciones del texto antes del punto, tratándolo como un nombre de fichero. .TP \fBcomplete\-username (M\-~)\fP Intentar la terminación del texto antes del punto, tratándolo como un nombre de usuario. .TP \fBpossible\-username\-completions (C\-x ~)\fP Listar las posibles terminaciones del texto antes del punto, tratándolo como un nombre de usuario. .TP \fBcomplete\-variable (M\-$)\fP Intentar la terminación del texto antes del punto, tratándolo como una variable de la shell. .TP \fBpossible\-variable\-completions (C\-x $)\fP Listar las posibles terminaciones del texto antes del punto, tratándolo como una variable de la shell. .TP \fBcomplete\-hostname (M\-@)\fP Intentar la terminación del texto antes del punto, tratándolo como un nombre de equipo anfitrión. .TP \fBpossible\-hostname\-completions (C\-x @)\fP Listar las posibles terminaciones del texto antes del punto, tratándolo como un nombre de equipo anfitrión. .TP \fBcomplete\-command (M\-!)\fP Intentar la terminación del texto antes del punto, tratándolo como un nombre de orden. La terminación de orden intenta hacer concordar el texto con alias, palabras reservadas, funciones de la shell, órdenes internas de la shell, y finalmente nombres de ficheros ejecutables, en ese orden. .TP \fBpossible\-command\-completions (C\-x !)\fP Listar las posibles terminaciones del texto antes del punto, tratándolo como un nombre de orden. .TP \fBdynamic\-complete\-history (M\-TAB)\fP Intentar la terminación del texto antes del punto, comparando el texto con líneas del historial buscando concordancias para la terminación. .TP \fBdabbrev\-expand\fP Intentar completar el menu en el texto antes del punto, comparando el texto con líneas del historial buscando concordancias para la terminación. .TP \fBcomplete\-into\-braces (M\-{)\fP Efectuar la terminación de nombres de archivos e insertar la lista de terminaciones posibles encerrada entre llaves de forma que la lista esté disponible para la shell (vea \fBExpansión de llaves\fP arriba). .PD .SS "Macros de Teclado" .PD 0 .TP \fBstart\-kbd\-macro (C\-x (\^)\fP Empezar a grabar los caracteres tecleados, en la macro de teclado en curso. .TP \fBend\-kbd\-macro (C\-x )\^)\fP Parar de grabar los caracteres tecleados en la macro de teclado en curso, y almacenar la definición. .TP \fBcall\-last\-kbd\-macro (C\-x e)\fP Reejecutar la última macro de teclado definida, haciendo que los caracteres en la macro aparezcan como si se hubieran pulsado en el teclado. .TP \fBprint\-last\-kbd\-macro ()\fP Muestra la última macro de teclado definida en un formato adecuado para su uso en el archivo \fIinputrc\fP. .PD .SS Varios .PD 0 .TP \fBre\-read\-init\-file (C\-x C\-r)\fP Leer los contenidos del archivo \fIinputrc\fP, e incorporar cualquier definición de teclas o asignaciones de variables que se hubieran encontrado en él. .TP \fBabort (C\-g)\fP Terminar abruptamente la orden de edición en curso y tocar el pito de la terminal (según el establecimiento de \fBbell\-style\fP). .TP \fBdo\-lowercase\-version (M\-A, M\-B, M\-\fP\fIx\fP\fB, ...)\fP If the metafied character \fIx\fP is uppercase, run the command that is bound to the corresponding metafied lowercase character. The behavior is undefined if \fIx\fP is already lowercase. .TP \fBprefix\-meta (ESC)\fP Convertir en meta el siguiente carácter tecleado. .SM \fBESC\fP \fBf\fP es equivalente a \fBMeta\-f\fP. .TP \fBundo (C\-_, C\-x C\-u)\fP Deshacer de forma incremental, recordado separadamente para cada línea. .TP \fBrevert\-line (M\-r)\fP Deshacer todos los cambios hechos a esta línea. Esto es como ejecutar la orden \fBundo\fP las veces suficientes como para devolver la línea a su estado inicial. .TP \fBtilde\-expand (M\-&)\fP Efectuar la expansión de tilde en la palabra en curso. .TP \fBset\-mark (C\-@, M\-)\fP Establecer la marca en el punto. Si se da un argumento numérico, la marca se establece en esa posición. .TP \fBexchange\-point\-and\-mark (C\-x C\-x)\fP Cambia el punto con la marca. La posición actual del cursor se pone en la posición guardada, y la vieja posición del cursor se guarda como la marca. .TP \fBcharacter\-search (C\-])\fP Se lee un carácter y el punto se mueve a la siguiente ocurrencia de ese carácter. Un argumento numérico negativo hace que la búsqueda sea de las ocurrencias anteriores. .TP \fBcharacter\-search\-backward (M\-C\-])\fP Se lee un carácter y el punto se mueve a la anterior ocurrencia de ese carácter. Un numérico negativo hace que la búsqueda sea de las ocurrencias siguientes. .TP \fBskip\-csi\-sequence\fP Read enough characters to consume a multi\-key sequence such as those defined for keys like Home and End. Such sequences begin with a Control Sequence Indicator (CSI), usually ESC\-[. If this sequence is bound to "\e[", keys producing such sequences will have no effect unless explicitly bound to a readline command, instead of inserting stray characters into the editing buffer. This is unbound by default, but usually bound to ESC\-[. .TP \fBinsert\-comment (M\-#)\fP Without a numeric argument, the value of the readline \fBcomment\-begin\fP variable is inserted at the beginning of the current line. If a numeric argument is supplied, this command acts as a toggle: if the characters at the beginning of the line do not match the value of \fBcomment\-begin\fP, the value is inserted, otherwise the characters in \fBcomment\-begin\fP are deleted from the beginning of the line. In either case, the line is accepted as if a newline had been typed. The default value of \fBcomment\-begin\fP causes this command to make the current line a shell comment. If a numeric argument causes the comment character to be removed, the line will be executed by the shell. .TP \fBspell\-correct\-word (C\-x s)\fP Ejecuta una corrección ortográfica sobre la palabra actual, considerándola un nombre de directorio o de archivo, igual que mediante la opción \fBcdspell\fP.Los extremos de las palabras son los mismos que los empleados por \fBshell\-forward\-word\fP. .TP \fBglob\-complete\-word (M\-g)\fP La palabra antes del punto se trata como un patrón para la expansión de nombres de ruta con un asterisco implícitamente añadido. Este patrón se emplea para generar una lista de posibles nombres de archivo para autocompletar. .TP \fBglob\-expand\-word (C\-x *)\fP La palabra antes del punto se trata como un patrón para la expansión de nombres de rutas y la lista de nombres de archivo concordantes se inserta, reemplazando a la palabra. Si se proporciona un argumento numérico, se añade un asterisco antes de la expansión del nombre de ruta. .TP \fBglob\-list\-expansions (C\-x g)\fP Mostrar la lista de expansiones que habrían sido generadas por \fBglob\-expand\-word\fP y redibujar la línea. Si se aporta un argumento numérico, se añade un asterisco antes de la expansión del nombre de ruta .TP \fBdump\-functions\fP Mostrar todas las funciones y sus asociaciones de teclas en el flujo de salida de readline. Si se da un argumento numérico, la salida se formatea de tal modo que pueda formar parte de un fichero \fIinputrc\fP. .TP \fBdump\-variables\fP Mostrar todas las variables de readline a las que se puedan asignar valores, y éstos, en el flujo de salida de readline. Si se da un argumento numérico, la salida se formatea de tal manera que pueda formar parte de un fichero \fIinputrc\fP. .TP \fBdump\-macros\fP Mostrar todas las secuencias de teclas de readline asociadas a macros y las cadenas de caracteres asociadas correspondientes. Si se da un argumento numérico, la salida se formatea de tal manera que pueda formar parte de un fichero \fIinputrc\fP. .TP \fBdisplay\-shell\-version (C\-x C\-v)\fP Mostrar información de versión acerca de la instancia actual de \fBbash\fP. .PD .SS "Autocompletado Programable" When word completion is attempted for an argument to a command for which a completion specification (a \fIcompspec\fP) has been defined using the \fBcomplete\fP builtin (see .SM \fBSHELL BUILTIN COMMANDS\fP below), the programmable completion facilities are invoked. .PP First, the command name is identified. If the command word is the empty string (completion attempted at the beginning of an empty line), any compspec defined with the \fB\-E\fP option to \fBcomplete\fP is used. If a compspec has been defined for that command, the compspec is used to generate the list of possible completions for the word. If the command word is a full pathname, a compspec for the full pathname is searched for first. If no compspec is found for the full pathname, an attempt is made to find a compspec for the portion following the final slash. If those searches do not result in a compspec, any compspec defined with the \fB\-D\fP option to \fBcomplete\fP is used as the default. If there is no default compspec, \fBbash\fP attempts alias expansion on the command word as a final resort, and attempts to find a compspec for the command word from any successful expansion. .PP Once a compspec has been found, it is used to generate the list of matching words. If a compspec is not found, the default \fBbash\fP completion as described above under \fBCompleting\fP is performed. .PP First, the actions specified by the compspec are used. Only matches which are prefixed by the word being completed are returned. When the \fB\-f\fP or \fB\-d\fP option is used for filename or directory name completion, the shell variable .SM \fBFIGNORE\fP is used to filter the matches. .PP Any completions specified by a pathname expansion pattern to the \fB\-G\fP option are generated next. The words generated by the pattern need not match the word being completed. The .SM \fBGLOBIGNORE\fP shell variable is not used to filter the matches, but the .SM \fBFIGNORE\fP variable is used. .PP Next, the string specified as the argument to the \fB\-W\fP option is considered. The string is first split using the characters in the .SM \fBIFS\fP special variable as delimiters. Shell quoting is honored. Each word is then expanded using brace expansion, tilde expansion, parameter and variable expansion, command substitution, and arithmetic expansion, as described above under .SM \fBEXPANSION\fP. The results are split using the rules described above under \fBWord Splitting\fP. The results of the expansion are prefix\-matched against the word being completed, and the matching words become the possible completions. .PP After these matches have been generated, any shell function or command specified with the \fB\-F\fP and \fB\-C\fP options is invoked. When the command or function is invoked, the .SM \fBCOMP_LINE\fP, .SM \fBCOMP_POINT\fP, .SM \fBCOMP_KEY\fP, and .SM \fBCOMP_TYPE\fP variables are assigned values as described above under \fBShell Variables\fP. If a shell function is being invoked, the .SM \fBCOMP_WORDS\fP and .SM \fBCOMP_CWORD\fP variables are also set. When the function or command is invoked, the first argument (\fB$1\fP) is the name of the command whose arguments are being completed, the second argument (\fB$2\fP) is the word being completed, and the third argument (\fB$3\fP) is the word preceding the word being completed on the current command line. No filtering of the generated completions against the word being completed is performed; the function or command has complete freedom in generating the matches. .PP Any function specified with \fB\-F\fP is invoked first. The function may use any of the shell facilities, including the \fBcompgen\fP builtin described below, to generate the matches. It must put the possible completions in the .SM \fBCOMPREPLY\fP array variable, one per array element. .PP Next, any command specified with the \fB\-C\fP option is invoked in an environment equivalent to command substitution. It should print a list of completions, one per line, to the standard output. Backslash may be used to escape a newline, if necessary. .PP After all of the possible completions are generated, any filter specified with the \fB\-X\fP option is applied to the list. The filter is a pattern as used for pathname expansion; a \fB&\fP in the pattern is replaced with the text of the word being completed. A literal \fB&\fP may be escaped with a backslash; the backslash is removed before attempting a match. Any completion that matches the pattern will be removed from the list. A leading \fB!\fP negates the pattern; in this case any completion not matching the pattern will be removed. If the \fBnocasematch\fP shell option is enabled, the match is performed without regard to the case of alphabetic characters. .PP Finally, any prefix and suffix specified with the \fB\-P\fP and \fB\-S\fP options are added to each member of the completion list, and the result is returned to the readline completion code as the list of possible completions. .PP If the previously\-applied actions do not generate any matches, and the \fB\-o dirnames\fP option was supplied to \fBcomplete\fP when the compspec was defined, directory name completion is attempted. .PP If the \fB\-o plusdirs\fP option was supplied to \fBcomplete\fP when the compspec was defined, directory name completion is attempted and any matches are added to the results of the other actions. .PP By default, if a compspec is found, whatever it generates is returned to the completion code as the full set of possible completions. The default \fBbash\fP completions are not attempted, and the readline default of filename completion is disabled. If the \fB\-o bashdefault\fP option was supplied to \fBcomplete\fP when the compspec was defined, the \fBbash\fP default completions are attempted if the compspec generates no matches. If the \fB\-o default\fP option was supplied to \fBcomplete\fP when the compspec was defined, readline's default completion will be performed if the compspec (and, if attempted, the default \fBbash\fP completions) generate no matches. .PP When a compspec indicates that directory name completion is desired, the programmable completion functions force readline to append a slash to completed names which are symbolic links to directories, subject to the value of the \fBmark\-directories\fP readline variable, regardless of the setting of the \fBmark\-symlinked\-directories\fP readline variable. .PP There is some support for dynamically modifying completions. This is most useful when used in combination with a default completion specified with \fBcomplete \-D\fP. It's possible for shell functions executed as completion handlers to indicate that completion should be retried by returning an exit status of 124. If a shell function returns 124, and changes the compspec associated with the command on which completion is being attempted (supplied as the first argument when the function is executed), programmable completion restarts from the beginning, with an attempt to find a new compspec for that command. This allows a set of completions to be built dynamically as completion is attempted, rather than being loaded all at once. .PP For instance, assuming that there is a library of compspecs, each kept in a file corresponding to the name of the command, the following default completion function would load completions dynamically: .PP \f(CW_completion_loader()\fP .br \f(CW{\fP .br \f(CW . "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124\fP .br \f(CW}\fP .br \f(CWcomplete \-D \-F _completion_loader \-o bashdefault \-o default\fP .br \fP .SH HISTORIAL When the \fB\-o history\fP option to the \fBset\fP builtin is enabled, the shell provides access to the \fIcommand history\fP, the list of commands previously typed. The value of the .SM \fBHISTSIZE\fP variable is used as the number of commands to save in a history list. The text of the last .SM \fBHISTSIZE\fP commands (default 500) is saved. The shell stores each command in the history list prior to parameter and variable expansion (see .SM \fBEXPANSION\fP above) but after history expansion is performed, subject to the values of the shell variables .SM \fBHISTIGNORE\fP and .SM \fBHISTCONTROL\fP. .PP On startup, the history is initialized from the file named by the variable .SM \fBHISTFILE\fP (default \fI~/.bash_history\fP). The file named by the value of .SM \fBHISTFILE\fP is truncated, if necessary, to contain no more than the number of lines specified by the value of .SM \fBHISTFILESIZE\fP. If \fBHISTFILESIZE\fP is unset, or set to null, a non\-numeric value, or a numeric value less than zero, the history file is not truncated. When the history file is read, lines beginning with the history comment character followed immediately by a digit are interpreted as timestamps for the following history line. These timestamps are optionally displayed depending on the value of the .SM \fBHISTTIMEFORMAT\fP variable. When a shell with history enabled exits, the last .SM \fB$HISTSIZE\fP lines are copied from the history list to .SM \fB$HISTFILE\fP. If the \fBhistappend\fP shell option is enabled (see the description of \fBshopt\fP under .SM \fBSHELL BUILTIN COMMANDS\fP below), the lines are appended to the history file, otherwise the history file is overwritten. If .SM \fBHISTFILE\fP is unset, or if the history file is unwritable, the history is not saved. If the .SM \fBHISTTIMEFORMAT\fP variable is set, time stamps are written to the history file, marked with the history comment character, so they may be preserved across shell sessions. This uses the history comment character to distinguish timestamps from other history lines. After saving the history, the history file is truncated to contain no more than .SM \fBHISTFILESIZE\fP lines. If .SM \fBHISTFILESIZE\fP is unset, or set to null, a non\-numeric value, or a numeric value less than zero, the history file is not truncated. .PP La orden interna \fBfc\fP (vea .SM \fBÓRDENES NATIVAS DE LA SHELL\fP más adelante) puede emplearse para listar o editar y re\-ejecutar una porción de la lista de historia. La orden interna \fBhistory\fP se puede utilizar para mostrar o modificar o volver a ejecutar una parte del historial. Cuando se emplea la edición de líneas de órdenes, están disponibles las órdenes de búsqueda en cada modo de edición que proporcionan acceso al historial. .PP la shell permite el control sobre qué órdenes se guarden en el historial. Las variables .SM \fBHISTCONTROL\fP y .SM \fBHISTIGNORE\fP se pueden definir de forma que la shell guarde solamente un subconjunto de las órdenes introducidas. La opción de la shell \fBcmdhist\fP, si está habilitada, hace que la shell intente guardar cada línea de una orden multi\-línea en la misma entrada de la historia, añadiendo punto y comas donde sea necesario para preservar la corrección sintáctica. La opción de la shell \fBlithist\fP hace que la shell guarde la orden con saltos de línea empotrados en vez de punto y comas. Vea la descripción de la orden interna \fBshopt\fP más adelante en .SM \fBÓRDENES NATIVAS DE LA SHELL\fP para información sobre cómo establecer y anular opciones de la shell. .SH "EXPANSIÓN DEL HISTORIAL" la shell admite una característica de expansión de historia que es parecida a la expansión de historia en \fBcsh\fP. Esta sección describe qué características sintácticas están disponibles. Esta característica está habilitada de forma predeterminada en shells interactivos, y puede ser desactivada mediante la opción \fB+H\fP de la orden interna \fBset\fP (vea .SM \fBÓRDENES NATIVAS DE LA SHELL\fP más adelante). Los shells no interactivos no realizan la expansión de la historia de forma predeterminada. .PP Las expansiones del historial introducen palabras desde el historial en el flujo de entrada, facilitando así la repetición de órdenes, la inserción de argumentos de una orden anterior en la línea de entrada en curso, o la corrección rápida de errores en una orden anterior. .PP La expansión del historial se realiza inmediatamente tras la lectura de una línea completa, antes de que la shell la divida en palabras. Tiene lugar en cada línea por separado sin considerar el entrecomillado de anteriores líneas. Tiene lugar en dos fases. En la primera se determina qué línea del historial hay que emplear durante la sustitución. En la segunda se seleccionan porciones de esa línea para su inclusión en la actual. La línea seleccionada desde el historial es el \fIevento\fP, y la porción de esa línea sobre la que se actúa son \fIpalabras\fP. Se dispone de varios \fImodificadores\fP para manipular las palabras seleccionadas. La línea se divide en palabras de la misma manera que cuando se lee la entrada, de forma que ciertas palabras separadas por \fImeta\-caracteres\fP rodeadas por comillas se consideran una sola palabra. Las expansiones del historial se introducen por la aparición del carácter de expansión de historial, que es por omisión \^\fB!\fP\^. Solo las barras inversas (\^\fB\e\fP\^) y las comillas simples pueden proteger al carácter de expansión del historial, aunque dicho carácter se considera entrecomillado si está justo antes de una comilla doble de cierre de una cadena entre ese tipo de comillas. .PP Several characters inhibit history expansion if found immediately following the history expansion character, even if it is unquoted: space, tab, newline, carriage return, and \fB=\fP. If the \fBextglob\fP shell option is enabled, \fB(\fP will also inhibit expansion. .PP Se pueden emplear ciertas opciones que se ponen con la orden interna \fBshopt\fP para cambiar el comportamiento de la expansión de historia. Si la opción de la shell \fBhistverify\fP está activa (vea la descripción de la orden interna \fBshopt\fP), y se está usando \fBreadline\fP, las sustituciones de historia no se pasan inmediatamente al analizador de la shell. En vez de eso, la línea expandida se vuelve a cargar en el búfer de edición de \fBreadline\fP para una modificación posterior. Si se está usando \fBreadline\fP y la opción de la shell \fBhistreedit\fP está activada, una sustitución de historia fallida se volverá a cargar en el búfer de edición de \fBreadline\fP para su corrección. La opción \fB\-p\fP de la orden interna \fBhistory\fP se puede emplear para ver qué hará una expansión de historia antes de usarse. La opción \fB\-s\fP de la orden interna \fBhistory\fP se puede emplear para añadir órdenes al final del historial sin ejecutarlas realmente, de modo que estén disponibles para rellamadas posteriores. .PP la shell permite el control de los diversos caracteres empleados por el mecanismo de expansión de historia (vea la descripción de \fBhistchars\fP arriba en \fBVariables de la shell\fP). La shell marcará como un comentario las marcas de tiempo durante el registro del historial. .SS "Designadores de Eventos" Un designador de evento es una referencia a una entrada de línea de orden en el historial. Salvo que la referencia sea absoluta, la posición de los eventos será relativa a la posición actual en el historial. .PP .PD 0 .TP \fB!\fP Comenzar una sustitución de historia, excepto cuando le siga un \fBblanco\fP, salto de línea, retorno de carro, = o (. (cuando la opción \fBextglob\fP está activada mediante \fBshopt\fP). .TP \fB!\fP\fIn\fP Referirse a la línea de órdenes número \fIn\fP. .TP \fB!\-\fP\fIn\fP Referirse a la orden en curso menos \fIn\fP. .TP \fB!!\fP Referirse a la orden anterior. Esto es lo mismo que `!\-1'. .TP \fB!\fP\fIcadena\fP Referirse a la orden más reciente del historial que precede a la actual y comienza con \fIcadena\fP. .TP \fB!?\fP\fIcadena\fP\fB[?]\fP Referirse a la orden más reciente del historial que precede a la actual y que contenga \fIcadena\fP. El \fB?\fP del final puede omitirse si a \fIcadena\fP le sigue inmediatamente un salto de línea. Si no se indica ninguna \fIstring\fP, se usará la cadena empleada en la última búsqueda, emitiendo un mensaje de error si no hay ninguna cadena de búsquedas anteriores. .TP \fB\d\s+2^\s-2\u\fP\fIcadena1\fP\fB\d\s+2^\s-2\u\fP\fIcadena2\fP\fB\d\s+2^\s-2\u\fP Sustitución rápida. Repetir la orden anterior, reemplazando \fIcadena1\fP con \fIcadena2\fP. Equivale a \*(lq!!:s\d\s+2^\s-2\u\fIcadena1\fP\d\s+2^\s-2\u\fIcadena2\fP\d\s+2^\s-2\u\*(rq (vea \fBModificadores\fP a continuación). .TP \fB!#\fP La línea de orden entera tecleada hasta ahora. .PD .SS "Designadores de Palabras" Los designadores de palabras se emplean para seleccionar las palabras que se deseen del evento. Un \fB:\fP separa la especificación de evento del designador de palabra. Puede omitirse si el designador de palabra comienza con un \fB^\fP, \fB$\fP, \fB*\fP, \fB\-\fP, o \fB%\fP. Las palabras se numeran desde el principio de la línea, con la primera palabra denotada por 0 (cero). Las palabras se insertan en la línea en curso separadas por espacios simples. .PP .PD 0 .TP \fB0 (cero)\fP La palabra número 0. Para la shell, ésta es la palabra de la orden. .TP \fIn\fP La \fIn\fP\-sima palabra. .TP \fB^\fP El primer argumento. Esto es, la palabra número 1. .TP \fB$\fP The last word. This is usually the last argument, but will expand to the zeroth word if there is only one word in the line. .TP \fB%\fP La palabra que concuerda con la búsqueda más reciente de '?\fIcadena\fP?', si dicha cadena comienza con un carácter que forma parte de una palabra. .TP \fIx\fP\fB\-\fP\fIy\fP Un intervalo de palabras; `\-\fIy\fP' abrevia `0\-\fIy\fP'. .TP \fB*\fP Todas las palabras menos la número cero. Esto es un sinónimo de `\fI1\-$\fP'. No es un error emplear \fB*\fP si solo hay una palabra en el evento; en este caso se devuelve la cadena vacía. .TP \fBx*\fP Abreviatura de \fIx\-$\fP. .TP \fBx\-\fP Abrevia \fIx\-$\fP como \fBx*\fP, pero omite la última palabra. Si no se indica \fBx\fP, se usará el valor 0 por defecto. .PD .PP Si se suministra un designador de palabra sin una especificación de evento, se usa la orden anterior como el evento. .SS Modificadores Tras el designador opcional de palabra, puede haber una secuencia de uno o más de los siguientes modificadores, precedido cada uno por un ':'. Esto modifica o edita la/s palabra/s seleccionadas del evento del historial. .PP .PD 0 .TP \fBh\fP Quitar un componente final de nombre de fichero, dejando solo la parte izquierda. .TP \fBt\fP Quitar todos los primeros componentes de un nombre de fichero, dejando la última parte. .TP \fBr\fP Quitar un sufijo final de la forma \fI.xxx\fP, dejando el nombre base. .TP \fBe\fP Quitar todo salvo el sufijo final. .TP \fBp\fP Mostrar la nueva orden pero no ejecutarla. .TP \fBq\fP Entrecomillar las palabras sustituidas, escapando de posteriores sustituciones. .TP \fBx\fP Entrecomillar las palabras sustituidas como con \fBq\fP, pero separae entre palabras en los \fBblancos\fP y saltos de línea. Los modificadores \fBq\fP y \fBx\fP son mutuamente excluyentes, usándose el que aparezca de último. .TP \fBs/\fP\fIviejo\fP\fB/\fP\fInuevo\fP\fB/\fP Sustituir \fInuevo\fP por la primera ocurrencia de \fIviejo\fP en la línea de evento. Se puede emplear cualquier delimitador en vez de /. El delimitador final es opcional si es el último carácter de la línea de evento. El delimitador puede entrecomillarse en \fIviejo\fP y \fInuevo\fP con una sola barra inclinada inversa. Si & aparece en \fInuevo\fP, se reemplaza por \fIviejo\fP. Una sola barra inversa protegerá el &. Si \fIviejo\fP está vacío, se pone al último \fIviejo\fP sustituido, o, si no tuvo lugar ninguna sustitución de historia previa, a la última \fIcadena\fP en una búsqueda del tipo \fB!?\fP\fIcadena\fP\fB[?]\fP\fB.\fP. Si no se indica \fInuevo\fP se borrarán todas las ocurrencias de \fIviejo\fP. .TP \fB&\fP Repetir la sustitución anterior. .TP \fBg\fP Hace que los cambios se apliquen sobre la línea entera de evento. Esto se emplea en conjunción con `\fB:s\fP' (p.ej., `\fB:gs/\fP\fIviejo\fP\fB/\fP\fInuevo\fP\fB/\fP') o `\fB:&\fP'. Si se usa con `\fB:s\fP', cualquier delimitador se puede utilizar en lugar de /, y el delimitador final es opcional si es el último carácter de la línea de evento. Puede usarse \fBa\fP como sinónimo de \fBg\fP. .TP \fBG\fP Aplica los modificadores '\fBs\fP' o '\fB&\fP' una vez a cada palabra en la correspondiente línea del evento. .PD .SH "ÓRDENES NATIVAS DE LA SHELL" .\" start of bash_builtins .zZ .PP Unless otherwise noted, each builtin command documented in this section as accepting options preceded by \fB\-\fP accepts \fB\-\-\fP to signify the end of the options. The \fB:\fP, \fBtrue\fP, \fBfalse\fP, and \fBtest\fP/\fB[\fP builtins do not accept options and do not treat \fB\-\-\fP specially. The \fBexit\fP, \fBlogout\fP, \fBreturn\fP, \fBbreak\fP, \fBcontinue\fP, \fBlet\fP, and \fBshift\fP builtins accept and process arguments beginning with \fB\-\fP without requiring \fB\-\-\fP. Other builtins that accept arguments but are not specified as accepting options interpret arguments beginning with \fB\-\fP as invalid options and require \fB\-\-\fP to prevent this interpretation. .sp .5 .PD 0 .TP \fB:\fP [\fIargumentos\fP] .PD Sin efecto; la orden no hace nada más que expandir \fIargumentos\fP y realizar cualquier redirección que se haya especificado. El estado de salida es 0. .TP \fB.\| \fP \fInombre\-archivo\fP [\fIargumentos\fP] .PD 0 .TP \fBsource\fP \fInombre\-archivo\fP [\fIargumentos\fP] .PD Read and execute commands from \fIfilename\fP in the current shell environment and return the exit status of the last command executed from \fIfilename\fP. If \fIfilename\fP does not contain a slash, filenames in .SM \fBPATH\fP are used to find the directory containing \fIfilename\fP, but \fIfilename\fP does not need to be executable. The file searched for in .SM \fBPATH\fP need not be executable. When \fBbash\fP is not in \fIposix mode\fP, it searches the current directory if no file is found in .SM \fBPATH\fP. If the \fBsourcepath\fP option to the \fBshopt\fP builtin command is turned off, the .SM \fBPATH\fP is not searched. If any \fIarguments\fP are supplied, they become the positional parameters when \fIfilename\fP is executed. Otherwise the positional parameters are unchanged. If the \fB\-T\fP option is enabled, \fB.\fP inherits any trap on \fBDEBUG\fP; if it is not, any \fBDEBUG\fP trap string is saved and restored around the call to \fB.\fP, and \fB.\fP unsets the \fBDEBUG\fP trap while it executes. If \fB\-T\fP is not set, and the sourced file changes the \fBDEBUG\fP trap, the new value is retained when \fB.\fP completes. The return status is the status of the last command exited within the script (0 if no commands are executed), and false if \fIfilename\fP is not found or cannot be read. .TP \fBalias\fP [\fB\-p\fP] [\fInombre\fP[=\fIvalor\fP] ...] \fBAlias\fP sin argumentos o con la opción \fB\-p\fP muestra la lista de alias en la forma \fBalias\fP \fInombre\fP=\fIvalor\fP en la salida estándar. Cuando se dan argumentos, se define un alias para cada \fInombre\fP cuyo \fIvalor\fP se da. Un espacio extra tras \fIvalor\fP hace que en la siguiente palabra se realice la sustitución de alias cuando el alias se expande. Para cada \fInombre\fP en la lista de argumentos para el que no se suministre un \fIvalor\fP, se muestran el nombre y el valor del alias. \fBAlias\fP devuelve `verdad' a menos que se dé un \fInombre\fP para el que no se haya definido un alias. .TP \fBbg\fP [\fIespectrab\fP ...] Reanuda la tarea suspendida \fIespectrab\fP en segundo plano, como si se hubiera iniciado con \fB&\fP. Si \fIespectrab\fP no está presente, se emplea la noción que tiene la shell del \fItrabajo en curso\fP. \fBbg\fP \fIespectrab\fP devuelve 0 a menos que se ejecute cuando el control de tareas esté deshabilitado, o cuando se ejecute con el control de tareas habilitado si \fIespectrab\fP no se encontró, o cuando se inició sin control de tareas. .TP \fBbind\fP [\fB\-m\fP \fImapatecl\fP] [\fB\-lpsvPSVX\fP] .PD 0 .TP \fBbind\fP [\fB\-m\fP \fImapatecl\fP] [\fB\-q\fP \fIfunción\fP] [\fB\-u\fP \fIfunción\fP] [\fB\-r\fP \fIsectecl\fP] .TP \fBbind\fP [\fB\-m\fP \fImapatecl\fP] \fB\-f\fP \fInombre\-archivo\fP .TP \fBbind\fP [\fB\-m\fP \fIkeymap\fP] \fB\-x\fP \fIkeyseq\fP:\fIorden\-shell\fP .TP \fBbind\fP [\fB\-m\fP \fImapatecl\fP] \fIsectecl\fP:\fInombre\-función\fP .TP \fBbind\fP [\fB\-m\fP \fIkeymap\fP] \fIkeyseq\fP:\fIorden\-readline\fP .TP \fBbind\fP, \fBreadline\-command\-line\fP .PD Muestra las asociaciones actuales de teclas y funciones en \fBreadline\fP, asocia una secuencia de teclas a una función o macro, o define una variable de \fBreadline\fP. Todos los argumentos que no sean opciones son órdenes tal como figurarían en \fI.inputrc\fP, pero cada asociación debe pasarse como un argumento separado; p.ej., '"\eC\-x\eC\-r": re\-read\-init\-file'. Las opciones, si se dan, tienen los siguientes significados: .RS .PD 0 .TP \fB\-m \fP\fImapatecl\fP Use \fIkeymap\fP as the keymap to be affected by the subsequent bindings. Acceptable \fIkeymap\fP names are \fIemacs, emacs\-standard, emacs\-meta, emacs\-ctlx, vi, vi\-move, vi\-command\fP, and \fIvi\-insert\fP. \fIvi\fP is equivalent to \fIvi\-command\fP (\fIvi\-move\fP is also a synonym); \fIemacs\fP is equivalent to \fIemacs\-standard\fP. .TP \fB\-l\fP Lista los nombres de todas las funciones de \fBreadline\fP. .TP \fB\-p\fP Muestra los nombres de funciones de \fBreadline\fP de tal forma que puedan volver a ser leídas. .TP \fB\-P\fP Lista los nombres de funciones de \fBreadline\fP actuales y las asociaciones. .TP \fB\-s\fP Muestra las secuencias de teclas de \fBreadline\fP asociadas a macros y las cadenas correspondientes de tal manera que puedan ser leídas de nuevo. .TP \fB\-S\fP Muestra las secuencias de teclas de \fBreadline\fP asociadas a macros y las cadenas de caracteres correspondientes. .TP \fB\-v\fP Muestra los nombres de variables de \fBreadline\fP y los valores de tal manera que puedan volver a ser leídas. .TP \fB\-V\fP Lista los nombres de variables de \fBreadline\fP actuales y los valores. .TP \fB\-f \fP\fInombre\-archivo\fP Lee las asociaciones de teclas desde \fInombre\-archivo\fP. .TP \fB\-q \fP\fIfunción\fP Pregunta qué teclas llaman a la \fIfunción\fP especificada. .TP \fB\-u \fP\fIfunción\fP Desenlaza todas las teclas asociadas a la \fIfunción\fP nombrada. .TP \fB\-r \fP\fIsectecl\fP Borra cualquier asociación actual de \fIsectecl\fP. .TP \fB\-x \fP\fIkeyseq\fP\fB:\fP\fIorden\-shell\fP Cause \fIshell\-command\fP to be executed whenever \fIkeyseq\fP is entered. When \fIshell\-command\fP is executed, the shell sets the .SM \fBREADLINE_LINE\fP variable to the contents of the \fBreadline\fP line buffer and the .SM \fBREADLINE_POINT\fP and .SM \fBREADLINE_MARK\fP variables to the current location of the insertion point and the saved insertion point (the mark), respectively. The shell assigns any numeric argument the user supplied to the .SM \fBREADLINE_ARGUMENT\fP variable. If there was no argument, that variable is not set. If the executed command changes the value of any of .SM \fBREADLINE_LINE\fP, .SM \fBREADLINE_POINT\fP, or .SM \fBREADLINE_MARK\fP, those new values will be reflected in the editing state. .TP \fB\-X\fP List all key sequences bound to shell commands and the associated commands in a format that can be reused as input. .PD .PP El valor devuelto es 0 a menos que se dé una opción no reconocida o que ocurra un error. .RE .TP \fBbreak\fP [\fIn\fP] Exit from within a \fBfor\fP, \fBwhile\fP, \fBuntil\fP, or \fBselect\fP loop. If \fIn\fP is specified, break \fIn\fP levels. \fIn\fP must be \(>= 1. If \fIn\fP is greater than the number of enclosing loops, all enclosing loops are exited. The return value is 0 unless \fIn\fP is not greater than or equal to 1. .TP \fBbuiltin\fP \fIorden\-interna\fP [\fIargumentos\fP] Ejecuta la orden interna de la shell especificada, pasándole los \fIargumentos\fP, y devuelve su estado de salida. Esto es útil cuando se define una función cuyo nombre es el mismo que una orden interna de la shell, reteniendo la funcionalidad de esa orden interna dentro de la función. Por ejemplo, la orden interna \fBcd\fP se puede redefinir normalmente de esta manera. El estado de salida es `falso' si \fIorden\-interna\fP no es una orden incorporada de la shell. .TP \fBcaller\fP [\fIexpr\fP] Returns the context of any active subroutine call (a shell function or a script executed with the \fB.\fP or \fBsource\fP builtins). Without \fIexpr\fP, \fBcaller\fP displays the line number and source filename of the current subroutine call. If a non\-negative integer is supplied as \fIexpr\fP, \fBcaller\fP displays the line number, subroutine name, and source file corresponding to that position in the current execution call stack. This extra information may be used, for example, to print a stack trace. The current frame is frame 0. The return value is 0 unless the shell is not executing a subroutine call or \fIexpr\fP does not correspond to a valid position in the call stack. .TP \fBcd\fP [\fB\-L\fP|[\fB\-P\fP [\fB\-e\fP]] [\-@]] [\fIdir\fP] Change the current directory to \fIdir\fP. if \fIdir\fP is not supplied, the value of the .SM \fBHOME\fP shell variable is the default. The variable .SM \fBCDPATH\fP defines the search path for the directory containing \fIdir\fP: each directory name in .SM \fBCDPATH\fP is searched for \fIdir\fP. Alternative directory names in .SM \fBCDPATH\fP are separated by a colon (:). A null directory name in .SM \fBCDPATH\fP is the same as the current directory, i.e., \*(lq\fB.\fP\*(rq. If \fIdir\fP begins with a slash (/), then .SM \fBCDPATH\fP is not used. The \fB\-P\fP option causes \fBcd\fP to use the physical directory structure by resolving symbolic links while traversing \fIdir\fP and before processing instances of \fI..\fP in \fIdir\fP (see also the \fB\-P\fP option to the \fBset\fP builtin command); the \fB\-L\fP option forces symbolic links to be followed by resolving the link after processing instances of \fI..\fP in \fIdir\fP. If \fI..\fP appears in \fIdir\fP, it is processed by removing the immediately previous pathname component from \fIdir\fP, back to a slash or the beginning of \fIdir\fP. If the \fB\-e\fP option is supplied with \fB\-P\fP, and the current working directory cannot be successfully determined after a successful directory change, \fBcd\fP will return an unsuccessful status. On systems that support it, the \fB\-@\fP option presents the extended attributes associated with a file as a directory. An argument of \fB\-\fP is converted to .SM \fB$OLDPWD\fP before the directory change is attempted. If a non\-empty directory name from .SM \fBCDPATH\fP is used, or if \fB\-\fP is the first argument, and the directory change is successful, the absolute pathname of the new working directory is written to the standard output. If the directory change is successful, \fBcd\fP sets the value of the \fBPWD\fP environment variable to the new directory name, and sets the \fBOLDPWD\fP environment variable to the value of the current working directory before the change. The return value is true if the directory was successfully changed; false otherwise. .TP \fBcommand\fP [\fB\-pVv\fP] \fIorden\fP [\fIarg\fP ...] Ejecuta \fIorden\fP con \fIargs\fP suprimiendo la búsqueda normal de funciones del shell. Solo se ejecutarán órdenes incorporadas en la shell o programas encontrados en la variable .SM \fBPATH\fP. Si se da la opción \fB\-p\fP, se busca la \fIorden\fP empleándose un valor predeterminado para .SM \fBPATH\fP que garantiza encontrar todas las utilidades estándar del sistema. Si se da la opción \fB\-V\fP o la \fB\-v\fP, se muestra una descripción de \fIorden\fP. La opción \fB\-v\fP muestra una sola palabra que indica la orden o nombre de archivo ejecutable empleado para la llamada a \fIorden\fP; la opción \fB\-V\fP produce una descripción algo más prolija. Si se dan las opciones \fB\-V\fP o \fB\-v\fP, el estado de salida es 0 si \fIorden\fP se encontró, y 1 si no. Si no se da ninguna de las dos opciones y ocurrió un error u \fIorden\fP no se encontró, el estado de salida es 127. Si no, el estado de salida de \fBcommand\fP es el estado de salida de \fIorden\fP. .TP \fBcompgen\fP [\fIopción\fP] [\fIpalabra\fP] Generate possible completion matches for \fIword\fP according to the \fIoption\fPs, which may be any option accepted by the \fBcomplete\fP builtin with the exception of \fB\-p\fP and \fB\-r\fP, and write the matches to the standard output. When using the \fB\-F\fP or \fB\-C\fP options, the various shell variables set by the programmable completion facilities, while available, will not have useful values. .sp 1 The matches will be generated in the same way as if the programmable completion code had generated them directly from a completion specification with the same flags. If \fIword\fP is specified, only those completions matching \fIword\fP will be displayed. .sp 1 El valor de retorno es veradero a menos que se dé una opción inválida o que no se creen concordancias. .TP \fBcomplete\fP [\fB\-abcdefgjksuv\fP] [\fB\-o\fP \fIcomp\-option\fP] [\fB\-DEI\fP] [\fB\-A\fP \fIaction\fP] [\fB\-G\fP \fIglobpat\fP] [\fB\-W\fP \fIwordlist\fP] .br [\fB\-F\fP \fIfunction\fP] [\fB\-C\fP \fIcommand\fP] [\fB\-X\fP \fIfilterpat\fP] [\fB\-P\fP \fIprefix\fP] [\fB\-S\fP \fIsuffix\fP] \fIname\fP [\fIname ...\fP] .PD 0 .TP \fBcomplete\fP \fB\-pr\fP [\fB\-DEI\fP] [\fInombre\fP ...] .PD Specify how arguments to each \fIname\fP should be completed. If the \fB\-p\fP option is supplied, or if no options are supplied, existing completion specifications are printed in a way that allows them to be reused as input. The \fB\-r\fP option removes a completion specification for each \fIname\fP, or, if no \fIname\fPs are supplied, all completion specifications. The \fB\-D\fP option indicates that other supplied options and actions should apply to the \*(lqdefault\*(rq command completion; that is, completion attempted on a command for which no completion has previously been defined. The \fB\-E\fP option indicates that other supplied options and actions should apply to \*(lqempty\*(rq command completion; that is, completion attempted on a blank line. The \fB\-I\fP option indicates that other supplied options and actions should apply to completion on the initial non\-assignment word on the line, or after a command delimiter such as \fB;\fP or \fB|\fP, which is usually command name completion. If multiple options are supplied, the \fB\-D\fP option takes precedence over \fB\-E\fP, and both take precedence over \fB\-I\fP. If any of \fB\-D\fP, \fB\-E\fP, or \fB\-I\fP are supplied, any other \fIname\fP arguments are ignored; these completions only apply to the case specified by the option. .sp 1 El proceso para aplicar estas especificaciones de autocompletado sobre las palabras se describe en .ie \n(zZ=1 in \fIbash(1)\fP. .el above under \fBProgrammable Completion\fP. .sp 1 Other options, if specified, have the following meanings. The arguments to the \fB\-G\fP, \fB\-W\fP, and \fB\-X\fP options (and, if necessary, the \fB\-P\fP and \fB\-S\fP options) should be quoted to protect them from expansion before the \fBcomplete\fP builtin is invoked. .RS .PD 0 .TP 8 \fB\-o \fP\fIcomp\-opction\fP The \fIcomp\-option\fP controls several aspects of the compspec's behavior beyond the simple generation of completions. \fIcomp\-option\fP may be one of: .RS .TP 8 \fBbashdefault\fP Perform the rest of the default \fBbash\fP completions if the compspec generates no matches. .TP 8 \fBdefault\fP Use readline's default filename completion if the compspec generates no matches. .TP 8 \fBdirnames\fP Perform directory name completion if the compspec generates no matches. .TP 8 \fBfilenames\fP Tell readline that the compspec generates filenames, so it can perform any filename\-specific processing (like adding a slash to directory names, quoting special characters, or suppressing trailing spaces). Intended to be used with shell functions. .TP 8 \fBnoquote\fP Tell readline not to quote the completed words if they are filenames (quoting filenames is the default). .TP 8 \fBnosort\fP Indica a readline que no ordene alfabéticamente la lista de autocompletado. .TP 8 \fBnospace\fP Indica a readline que no se añada un espacio al final de la línea (por defecto se hace) a las palabras completadas. .TP 8 \fBplusdirs\fP After any matches defined by the compspec are generated, directory name completion is attempted and any matches are added to the results of the other actions. .RE .TP 8 \fB\-A \fP\fIacción\fP La \fIacción\fP para crear una lista de autocompletados podrá ser una de las siguientes: .RS .TP 8 \fBalias\fP Nombres de alias. También puede definirse como \fB\-a\fP. .TP 8 \fBarrayvar\fP Nombres de varibales vectoriales. .TP 8 \fBbinding\fP Definiciones de teclas de \fBReadline\fP. .TP 8 \fBbuiltin\fP Nombres de órdenes nativas de la shell. También se puede especificar mediante \fB\-b\fP. .TP 8 \fBcommand\fP Nombres de órdenes. También se puede definir con \fB\-c\fP. .TP 8 \fBdirectory\fP Nombres de directorios. También se puede definir mediante \fB\-d\fP. .TP 8 \fBdisabled\fP Nombres de órdenes nativas de la shell deshabilitadas. .TP 8 \fBenabled\fP Nombres de órdenes nativas de la shell habilitadas. .TP 8 \fBexport\fP Nombres de variables de la shell exportadas. También se puede definir mediante \fB\-e\fP. .TP 8 \fBfile\fP File names. May also be specified as \fB\-f\fP. .TP 8 \fBfunction\fP Names of shell functions. .TP 8 \fBgroup\fP Group names. May also be specified as \fB\-g\fP. .TP 8 \fBhelptopic\fP Help topics as accepted by the \fBhelp\fP builtin. .TP 8 \fBhostname\fP Hostnames, as taken from the file specified by the .SM \fBHOSTFILE\fP shell variable. .TP 8 \fBjob\fP Job names, if job control is active. May also be specified as \fB\-j\fP. .TP 8 \fBkeyword\fP Shell reserved words. May also be specified as \fB\-k\fP. .TP 8 \fBrunning\fP Names of running jobs, if job control is active. .TP 8 \fBservice\fP Service names. May also be specified as \fB\-s\fP. .TP 8 \fBsetopt\fP Valid arguments for the \fB\-o\fP option to the \fBset\fP builtin. .TP 8 \fBshopt\fP Shell option names as accepted by the \fBshopt\fP builtin. .TP 8 \fBsignal\fP Nombres de las señales. .TP 8 \fBstopped\fP Nombre de las tareas detenidas, siempre que esté activo el control de tareas. .TP 8 \fBuser\fP Nombres de usuario. También se puede utilizar \fB\-u\fP .TP 8 \fBvariable\fP Nombre de las variables de la shell. También se puede utilizar \fB\-v\fP. .RE .TP 8 \fB\-C\fP \fIorden\fP \fIorden\fP se ejecuta en una subshell, empleándose su salida como posibilidades de atuocompletado. Se pasan los argumentos del mismo modo que con la opción \fB\-F\fP. .TP 8 \fB\-F\fP \fIfunción\fP The shell function \fIfunction\fP is executed in the current shell environment. When the function is executed, the first argument (\fB$1\fP) is the name of the command whose arguments are being completed, the second argument (\fB$2\fP) is the word being completed, and the third argument (\fB$3\fP) is the word preceding the word being completed on the current command line. When it finishes, the possible completions are retrieved from the value of the .SM \fBCOMPREPLY\fP array variable. .TP 8 \fB\-G\fP \fIglobpat\fP The pathname expansion pattern \fIglobpat\fP is expanded to generate the possible completions. .TP 8 \fB\-P\fP \fIprefijo\fP \fIprefix\fP is added at the beginning of each possible completion after all other options have been applied. .TP 8 \fB\-S\fP \fIsufijo\fP \fIsuffix\fP is appended to each possible completion after all other options have been applied. .TP 8 \fB\-W\fP \fIlista_palabras\fP The \fIwordlist\fP is split using the characters in the .SM \fBIFS\fP special variable as delimiters, and each resultant word is expanded. Shell quoting is honored within \fIwordlist\fP, in order to provide a mechanism for the words to contain shell metacharacters or characters in the value of .SM \fBIFS\fP. The possible completions are the members of the resultant list which match the word being completed. .TP 8 \fB\-X\fP \fIfiltro_ruta\fP \fIfilterpat\fP is a pattern as used for pathname expansion. It is applied to the list of possible completions generated by the preceding options and arguments, and each completion matching \fIfilterpat\fP is removed from the list. A leading \fB!\fP in \fIfilterpat\fP negates the pattern; in this case, any completion not matching \fIfilterpat\fP is removed. .PD .PP The return value is true unless an invalid option is supplied, an option other than \fB\-p\fP or \fB\-r\fP is supplied without a \fIname\fP argument, an attempt is made to remove a completion specification for a \fIname\fP for which no specification exists, or an error occurs adding a completion specification. .RE .TP \fBcompopt\fP [\fB\-o\fP \fIopción\fP] [\fB\-DEI\fP] [\fB+o\fP \fIopción\fP] [\fInombre\fP] Modify completion options for each \fIname\fP according to the \fIoption\fPs, or for the currently\-executing completion if no \fIname\fPs are supplied. If no \fIoption\fPs are given, display the completion options for each \fIname\fP or the current completion. The possible values of \fIoption\fP are those valid for the \fBcomplete\fP builtin described above. The \fB\-D\fP option indicates that other supplied options should apply to the \*(lqdefault\*(rq command completion; that is, completion attempted on a command for which no completion has previously been defined. The \fB\-E\fP option indicates that other supplied options should apply to \*(lqempty\*(rq command completion; that is, completion attempted on a blank line. The \fB\-I\fP option indicates that other supplied options should apply to completion on the initial non\-assignment word on the line, or after a command delimiter such as \fB;\fP or \fB|\fP, which is usually command name completion. .sp 1 The return value is true unless an invalid option is supplied, an attempt is made to modify the options for a \fIname\fP for which no completion specification exists, or an output error occurs. .TP \fBcontinue\fP [\fIn\fP] Resume the next iteration of the enclosing \fBfor\fP, \fBwhile\fP, \fBuntil\fP, or \fBselect\fP loop. If \fIn\fP is specified, resume at the \fIn\fPth enclosing loop. \fIn\fP must be \(>= 1. If \fIn\fP is greater than the number of enclosing loops, the last enclosing loop (the \*(lqtop\-level\*(rq loop) is resumed. The return value is 0 unless \fIn\fP is not greater than or equal to 1. .TP \fBdeclare\fP [\fB\-aAfFgiIlnrtux\fP] [\fB\-p\fP] [\fInombre\fP[=\fIvalor\fP] ...] .PD 0 .TP \fBtypeset\fP [\fB\-aAfFgiIlnrtux\fP] [\fB\-p\fP] [\fInombre\fP[=\fIvalor\fP] ...] .PD Declare variables and/or give them attributes. If no \fIname\fPs are given then display the values of variables. The \fB\-p\fP option will display the attributes and values of each \fIname\fP. When \fB\-p\fP is used with \fIname\fP arguments, additional options, other than \fB\-f\fP and \fB\-F\fP, are ignored. When \fB\-p\fP is supplied without \fIname\fP arguments, it will display the attributes and values of all variables having the attributes specified by the additional options. If no other options are supplied with \fB\-p\fP, \fBdeclare\fP will display the attributes and values of all shell variables. The \fB\-f\fP option will restrict the display to shell functions. The \fB\-F\fP option inhibits the display of function definitions; only the function name and attributes are printed. If the \fBextdebug\fP shell option is enabled using \fBshopt\fP, the source file name and line number where each \fIname\fP is defined are displayed as well. The \fB\-F\fP option implies \fB\-f\fP. The \fB\-g\fP option forces variables to be created or modified at the global scope, even when \fBdeclare\fP is executed in a shell function. It is ignored in all other cases. The \fB\-I\fP option causes local variables to inherit the attributes (except the \fInameref\fP attribute) and value of any existing variable with the same \fIname\fP at a surrounding scope. If there is no existing variable, the local variable is initially unset. The following options can be used to restrict output to variables with the specified attribute or to give variables attributes: .RS .PD 0 .TP \fB\-a\fP Cada \fInombre\fP es una variable de un vector indexado (consulte \fBVectores\fP más atrás). .ie \n(zZ=1 in \fIbash(1)\fP). .el above). .TP \fB\-A\fP Cada \fInombre\fP es una variable de un vector asociativo (consulte \fBVectores\fP más atrás). .ie \n(zZ=1 in \fIbash(1)\fP). .el above). .TP \fB\-f\fP Usar solamente nombres de funciones. .TP \fB\-i\fP La variable se trata como un número entero; se realiza la evaluación aritmética (consulte .SM \fBEVALUACIÓN ARITMÉTICA\fP). .ie \n(zZ=1 in \fIbash(1)\fP) .el above) se ejecuta cuando se asigna un valor a la variable. .TP \fB\-l\fP Cuando se le asigne un valor a la variable, todas las mayúsculas se convierten en minúsculas. El atributo mayúsculas está desactivado. .TP \fB\-n\fP Give each \fIname\fP the \fInameref\fP attribute, making it a name reference to another variable. That other variable is defined by the value of \fIname\fP. All references, assignments, and attribute modifications to \fIname\fP, except those using or changing the \fB\-n\fP attribute itself, are performed on the variable referenced by \fIname\fP's value. The nameref attribute cannot be applied to array variables. .TP \fB\-r\fP Hace que \fInombre\fPs sean de lectura exclusiva. A estos nombres no se les pueden asignar valores por medio de subsiguientes asignaciones, ni se puede anular su definición con \fBunset\fP. .TP \fB\-t\fP Give each \fIname\fP the \fItrace\fP attribute. Traced functions inherit the \fBDEBUG\fP and \fBRETURN\fP traps from the calling shell. The trace attribute has no special meaning for variables. .TP \fB\-u\fP When the variable is assigned a value, all lower\-case characters are converted to upper\-case. The lower\-case attribute is disabled. .TP \fB\-x\fP Marca \fInombre\fPs para la exportación a órdenes subsecuentes a través del entorno. .PD .PP Using `+' instead of `\-' turns off the attribute instead, with the exceptions that \fB+a\fP and \fB+A\fP may not be used to destroy array variables and \fB+r\fP will not remove the readonly attribute. When used in a function, \fBdeclare\fP and \fBtypeset\fP make each \fIname\fP local, as with the \fBlocal\fP command, unless the \fB\-g\fP option is supplied. If a variable name is followed by =\fIvalue\fP, the value of the variable is set to \fIvalue\fP. When using \fB\-a\fP or \fB\-A\fP and the compound assignment syntax to create array variables, additional attributes do not take effect until subsequent assignments. The return value is 0 unless an invalid option is encountered, an attempt is made to define a function using .if n ``\-f foo=bar'', .if t \f(CW\-f foo=bar\fP, an attempt is made to assign a value to a readonly variable, an attempt is made to assign a value to an array variable without using the compound assignment syntax (see \fBArrays\fP .ie \n(zZ=1 in \fIbash(1)\fP), .el above), one of the \fInames\fP is not a valid shell variable name, an attempt is made to turn off readonly status for a readonly variable, an attempt is made to turn off array status for an array variable, or an attempt is made to display a non\-existent function with \fB\-f\fP. .RE .TP \fBdirs [\-clpv] [+\fP\fIn\fP\fB] [\-\fP\fIn\fP\fB]\fP Sin opciones, muestra la lista de directorios que recuerda. La forma predeterminada de mostrarlos es en una sola línea con los nombres de directorios separados por espacios. Los directorios se añaden a la lista (en realidad, una pila) con la orden \fBpushd\fP; la orden \fBpopd\fP los quita de la pila. El directorio actual es siempre el primero en la pila. .RS .PD 0 .TP \fB\-c\fP Limpia la pila de directorios borrando todas las entradas. .TP \fB\-l\fP Crea un listado empleando los nombres de ruta completos; por defecto, el directorio home se designa utilizando una tilde. .TP \fB\-p\fP Muestra la pila de directorios con una entrada por cada línea. .TP \fB\-v\fP Muestra la pila de directorios con una entrada por línea, prefijando cada entrada con su índice en la pila. .TP \fB+\fP\fIn\fP Muestra la \fIn\fP\-sima entrada contando desde la izquierda de la lista mostrada por \fBdirs\fP cuando se llama sin opciones, empezando por cero. .TP \fB\-\fP\fIn\fP Muestra la \fIn\fP\-sima entrada contando desde la derecha de la lista mostrada por \fBdirs\fP cuando se llama sin opciones, empezando por cero. .PD .PP El valor de retorno es 0 a menos que se dé una opción inválida o que \fIn\fP indexe más allá del final de la pila de directorios. .RE .TP \fBdisown\fP [\fB\-ar\fP] [\fB\-h\fP] [\fIespectrab\fP ... | \fIpid\fP ... ] Sin opciones, cada \fIespec_tarea\fP se quita de la tabla de tareas activas. Si no está presente \fIespec_tarea\fP ni se indican las opciones \fB\-a\fP ni \fB\-r\fP, se utlizará la \fItarea actual\fP. Si se da la opción \fB\-h\fP, cada \fIespec_tarea\fP no se quita de la tabla, sino que se marca de manera que no se le enviará la señal .SM \fBSIGHUP\fP si la shell recibe una señal .SM \fBSIGHUP\fP. Si no se suministra \fIespec_trab\fP, la opción \fB\-a\fP significa quitar o marcar todas las tareas; la opción \fB\-r\fP sin un argumento \fIespec_tarea\fP restringe la operación a las tareas en ejecución. El valor de retorno es 0 a menos que \fIespec_tarea\fP no se refiera a una tarea válida. .TP \fBecho\fP [\fB\-neE\fP] [\fIarg\fP ...] Repite los \fIarg\fPs, separados por espacios, seguidos por un salto de línea. El estado de retorno es siempre 0, salvo que ocurra un error de escritura. Si se especifica \fB\-n\fP, se suprime el salto de línea final. Si se da la opción \fB\-e\fP, se activa la interpretación de los siguientes caracteres (con barra inversa). La opción \fB\-E\fP desactiva la interpretación de estos caracteres de escape, incluso en sistemas donde se interpreten de forma predeterminada. La opción de la shell \fBxpg_echo\fP puede usarse para determinar dinámicamente si \fBecho\fP expandirá o no estos caracteres por defecto. \fBecho\fP no interpreta \fB\-\-\fP para indicar el fin de las opciones. \fBecho\fP interpreta las siguientes secuencias de escape:\fBecho\fP no interpreta \fB\-\-\fP como el fin de las opciones. \fBecho\fP interpreta las siguientes secuencias de escape: .RS .PD 0 .TP \fB\ea\fP alerta (pitido) .TP \fB\eb\fP espacio\-atrás .TP \fB\ec\fP elimina cualquier otra salida .TP \fB\ee\fP .TP \fB\eE\fP un carácter de escape (ESC) .TP \fB\ef\fP nueva página .TP \fB\en\fP nueva linea .TP \fB\er\fP retorno de carro .TP \fB\et\fP tabulación horizontal .TP \fB\ev\fP tabulación vertical .TP \fB\e\e\fP barra invertida .TP \fB\e0\fP\fInnn\fP el carácter de ocho bites cuyo código es el valor octal \fInnn\fP (de cero a tres dígitos octales) .TP \fB\ex\fP\fIHH\fP el carácter de 8\-bits cuyo código es el valor hexadecimal \fIHH\fP (uno o dos dígitos hexadecimales) .TP \fB\eu\fP\fIHHHH\fP caŕácter Unicode (ISO/IEC 10646) cuyo valor hexadecimal es \fIHHHH\fP (de uno a cuatro caracteres hexadecimales) .TP \fB\eU\fP\fIHHHHHHHH\fP caŕácter Unicode (ISO/IEC 10646) cuyo valor hexadecimal es \fIHHHHHHHH\fP (de uno a ocho caracteres hexadecimales) .PD .RE .TP \fBenable\fP [\fB\-a\fP] [\fB\-dnps\fP] [\fB\-f\fP \fInombre\-archivo\fP] [\fInombre\fP ...] Enable and disable builtin shell commands. Disabling a builtin allows a disk command which has the same name as a shell builtin to be executed without specifying a full pathname, even though the shell normally searches for builtins before disk commands. If \fB\-n\fP is used, each \fIname\fP is disabled; otherwise, \fInames\fP are enabled. For example, to use the \fBtest\fP binary found via the .SM \fBPATH\fP instead of the shell builtin version, run .if t \f(CWenable -n test\fP. .if n ``enable -n test''. The \fB\-f\fP option means to load the new builtin command \fIname\fP from shared object \fIfilename\fP, on systems that support dynamic loading. Bash will use the value of the \fBBASH_LOADABLES_PATH\fP variable as a colon\-separated list of directories in which to search for \fIfilename\fP. The default is system\-dependent. The \fB\-d\fP option will delete a builtin previously loaded with \fB\-f\fP. If no \fIname\fP arguments are given, or if the \fB\-p\fP option is supplied, a list of shell builtins is printed. With no other option arguments, the list consists of all enabled shell builtins. If \fB\-n\fP is supplied, only disabled builtins are printed. If \fB\-a\fP is supplied, the list printed includes all builtins, with an indication of whether or not each is enabled. If \fB\-s\fP is supplied, the output is restricted to the POSIX \fIspecial\fP builtins. If no options are supplied and a \fIname\fP is not a shell builtin, \fBenable\fP will attempt to load \fIname\fP from a shared object named \fIname\fP, as if the command were .if t \f(CWenable \-f\fP \fIname name\fP . .if n ``enable -f \fIname name\fP . El valor devuelto es 0 salvo que \fInombre\fP no sea una orden nativa de la shell o que osurriese un error al cargarlo de un objeto compartido. .TP \fBeval\fP [\fIarg\fP ...] Los \fIarg\fPs se leen y concatenan juntos para formar una sola orden. Entonces la shell lee y ejecuta esta orden, y su estado de salida se devuelve como el valor de \fBeval\fP. Si no hay \fIargs\fP, o solamente argumentos vacíos, \fBeval\fP devuelve 0. .TP \fBexec\fP [\fB\-cl\fP] [\fB\-a\fP \fInombre\fP] [\fIorden\fP [\fIargumentos\fP]] Si se especifica \fIorden\fP, reemplaza a la shell. No se crea ningún proceso nuevo sino que los \fIargumentos\fP pasan a ser los argumentos de \fIorden\fP. Si se da la opción \fB\-l\fP, la shell pone un guión en el argumento número cero pasado a \fIorden\fP. Esto es lo que hace \fIlogin\fP(1). La opción \fB\-c\fP hace que \fIorden\fP se ejecute con un entorno vacío. Si se da \fB\-a\fP, la shell pasa \fInombre\fP como el argumento número cero de la orden ejecutada. Si \fIorden\fP no puede ejecutarse por alguna razón, una shell no interactiva finalizará, a menos que se haya activado la opción de la shell \fBexecfail\fP, en cuyo caso devuelve `fallo'. Una subshell finalizará siempre su ejecución si falla \fBexec\fP. Una shell interactiva devuelve `fallo' si el archivo no puede ejecutarse. Si \fIorden\fP no se especifica, cualquier redirección tiene efecto en la shell en curso, y el estado de salida es 0. Si hay un error de redirección, el estado de salida será 1. .TP \fBexit\fP [\fIn\fP] Hace que la shell acabe con un estado de valor \fIn\fP. Si \fIn\fP se omite, el valor de salida es el de la última orden ejecutada. Se ejecuta una trampa puesta en .SM \fBEXIT\fP antes de que la shell termine. .TP \fBexport\fP [\fB\-fn\fP\^] [\fInombre\fP[=\fIpalabra\fP]] ... .PD 0 .TP \fBexport \-p\fP .PD The supplied \fInames\fP are marked for automatic export to the environment of subsequently executed commands. If the \fB\-f\fP option is given, the \fInames\fP refer to functions. If no \fInames\fP are given, or if the \fB\-p\fP option is supplied, a list of names of all exported variables is printed. The \fB\-n\fP option causes the export property to be removed from each \fIname\fP. If a variable name is followed by =\fIword\fP, the value of the variable is set to \fIword\fP. \fBexport\fP returns an exit status of 0 unless an invalid option is encountered, one of the \fInames\fP is not a valid shell variable name, or \fB\-f\fP is supplied with a \fIname\fP that is not a function. .TP \fBfc\fP [\fB\-e\fP \fIeditor\fP] [\fB\-lnr\fP] [\fIprimero\fP] [\fIúltimo\fP] .PD 0 .TP \fBfc\fP \fB\-s\fP [\fIpat\fP=\fIrep\fP] [\fIord\fP] .PD The first form selects a range of commands from \fIfirst\fP to \fIlast\fP from the history list and displays or edits and re\-executes them. \fIFirst\fP and \fIlast\fP may be specified as a string (to locate the last command beginning with that string) or as a number (an index into the history list, where a negative number is used as an offset from the current command number). When listing, a \fIfirst\fP or \fIlast\fP of 0 is equivalent to \-1 and \-0 is equivalent to the current command (usually the \fBfc\fP command); otherwise 0 is equivalent to \-1 and \-0 is invalid. If \fIlast\fP is not specified, it is set to the current command for listing (so that .if n ``fc \-l \-10'' .if t \f(CWfc \-l \-10\fP prints the last 10 commands) and to \fIfirst\fP otherwise. If \fIfirst\fP is not specified, it is set to the previous command for editing and \-16 for listing. .sp 1 La opción \fB\-n\fP suprime los números de orden en un listado. La opción \fB\-r\fP invierte el orden de los mandatos. Si se da la opción \fB\-l ,\fP las órdenes se listan en la salida estándar. Si no, se llama al editor dado por \fIeditor\fP en un archivo conteniendo esas órdenes. Si no se da \fIeditor\fP, se emplea el valor de la variable .SM \fBFCEDIT\fP, o el valor de .SM \fBEDITOR\fP si .SM \fBFCEDIT\fP no está definido. Si no está definida ni una variable ni otra, .FN vi \fBvi\fP es el editor que se empleará. Cuando la edición se haya completado, las órdenes editadas se muestran y ejecutan. .sp 1 En la segunda forma, \fIorden\fP se re\-ejecuta tras que cada instancia de \fIpat\fP se reemplace por \fIrep\fP. \fIorden\fP se interpreta igual que se hacía con \fIprimero\fP anteriormente. Un alias de utilidad para emplear con esto es .if n ``r="fc -s"'', .if t \f(CWr='fc \-s'\fP, de tal modo que al teclear .if n ``r cc'' .if t \f(CWr cc\fP se ejecute la última orden que empezara con .if n ``cc'' .if t \f(CWcc\fP y que al teclear .if n ``r'' .if t \f(CWr\fP se re\-ejecute la última orden. .sp 1 Si se usa la primera forma, el valor de retorno es 0 a menos que se encuentre una opción inválida o que \fIprimero\fP o \fIúltimo\fP especifiquen líneas de historia fuera de intervalo. Si se suministra la opción \fB\-e\fP, el valor de retorno es el de la última orden ejecutada, o `fallo' si ocurre un error con el archivo temporal de órdenes. Si se emplea la segunda forma, el estado de retorno es de la orden reejecutada, a menos que \fIord\fP no especifique una línea válida de historia, en cuyo caso \fBfc\fP devuelve `fallo'. .TP \fBfg\fP [\fIespectrab\fP] Reanuda \fIespectrab\fP en primer plano, y lo hace ser el trabajo en curso. Si \fIespectrab\fP no está presente, se usa la noción que tiene la shell del \fItrabajo en curso\fP. El valor de retorno es el de la orden puesta en primer plano, o `fallo' si se ejecuta \fBfg\fP cuando el control de trabajos está desactivado o, cuando se ejecuta con el control de trabajos activado, si \fIespectrab\fP no especifica un trabajo válido o \fIespectrab\fP se refiere a una trabajo que se arrancó sin control de trabajos. .TP \fBgetopts\fP \fIcadenaopcs\fP \fInombre\fP [\fIarg ...\fP] \fBgetopts\fP is used by shell procedures to parse positional parameters. \fIoptstring\fP contains the option characters to be recognized; if a character is followed by a colon, the option is expected to have an argument, which should be separated from it by white space. The colon and question mark characters may not be used as option characters. Each time it is invoked, \fBgetopts\fP places the next option in the shell variable \fIname\fP, initializing \fIname\fP if it does not exist, and the index of the next argument to be processed into the variable .SM \fBOPTIND\fP. .SM \fBOPTIND\fP is initialized to 1 each time the shell or a shell script is invoked. When an option requires an argument, \fBgetopts\fP places that argument into the variable .SM \fBOPTARG\fP. The shell does not reset .SM \fBOPTIND\fP automatically; it must be manually reset between multiple calls to \fBgetopts\fP within the same shell invocation if a new set of parameters is to be used. .sp 1 Cuando se encuentra el fin de las opciones, \fBgetopts\fP sale con un valor de retorno mayor que cero. .SM \fBOPTIND\fP se pone al índice del primer argumento que no es una opción, y \fInombre\fP se pone a "?". .sp 1 \fBgetopts\fP normally parses the positional parameters, but if more arguments are supplied as \fIarg\fP values, \fBgetopts\fP parses those instead. .sp 1 \fBgetopts\fP puede informar de errores de dos maneras. Si el primer carácter de \fIoptstring\fP es dos puntos, se emplea un informe de error \fIsilencioso\fP. En un modo normal de operación se muestran mensajes de diagnósticos cuando se encuentran opciones inválidas o faltan argumentos de opciones que los requieran. Si la variable .SM \fBOPTERR\fP se pone a 0, no se mostrará ningún mensaje de error, incluso si el primer carácter de \fIoptstring\fP no es dos puntos. .sp 1 Si se ve una opción inválida, \fBgetopts\fP pone ? en \fInombre\fP y, si no estamos en el modo silencioso, se muestra un mensaje de error y se anula .SM \fBOPTARG\fP. Si \fBgetopts\fP es silencioso, el carácter de opción encontrado se pone en .SM \fBOPTARG\fP y no se muestra ningún mensaje de diagnóstico. .sp 1 Si no se encuentra un argumento necesario, y \fBgetopts\fP no es silencioso, se pone un signo de cierre de interrogación (\^\fB?\fP\^) en \fInombre\fP, .SM \fBOPTARG\fP se anula, y se muestra un mensaje de diagnóstico. Si \fBgetopts\fP es silencioso, entonces se pone un signo de dos puntos (\^\fB:\fP\^) en \fInombre\fP y .SM \fBOPTARG\fP toma el valor del carácter de opción encontrado. .sp 1 \fBgetopts\fP devuelve `verdad' si una opción, especificada o no, se encuentra. Devuelve `falso' si se encuentra el final de las opciones o si ocurre un error. .TP \fBhash\fP [\fB\-lr\fP] [\fB\-p\fP \fInombre\-archivo\fP] [\fB\-dt\fP] [\fInombre\fP] Each time \fBhash\fP is invoked, the full pathname of the command \fIname\fP is determined by searching the directories in \fB$PATH\fP and remembered. Any previously\-remembered pathname is discarded. If the \fB\-p\fP option is supplied, no path search is performed, and \fIfilename\fP is used as the full filename of the command. The \fB\-r\fP option causes the shell to forget all remembered locations. The \fB\-d\fP option causes the shell to forget the remembered location of each \fIname\fP. If the \fB\-t\fP option is supplied, the full pathname to which each \fIname\fP corresponds is printed. If multiple \fIname\fP arguments are supplied with \fB\-t\fP, the \fIname\fP is printed before the hashed full pathname. The \fB\-l\fP option causes output to be displayed in a format that may be reused as input. If no arguments are given, or if only \fB\-l\fP is supplied, information about remembered commands is printed. The return status is true unless a \fIname\fP is not found or an invalid option is supplied. .TP \fBhelp\fP [\fB\-dms\fP] [\fIpatrón\fP] Muestra información de ayuda sobre las órdenes internas. Si se especifica \fIpatrón\fP, \fBhelp\fP da ayuda detallada sobre todas las órdenes que concuerden con \fIpatrón\fP; si no, se muestra ayuda para todas las órdenes internas y estructuras de control de la shell. .RS .PD 0 .TP \fB\-d\fP Display a short description of each \fIpattern\fP .TP \fB\-m\fP Display the description of each \fIpattern\fP in a manpage\-like format .TP \fB\-s\fP Display only a short usage synopsis for each \fIpattern\fP .PD .PP The return status is 0 unless no command matches \fIpattern\fP. .RE .TP \fBhistory [\fP\fIn\fP\fB]\fP .PD 0 .TP \fBhistory\fP \fB\-c\fP .TP \fBhistory \-d\fP \fIoffset\fP .TP \fBhistory \-d\fP \fIstart\fP\-\fIend\fP .TP \fBhistory\fP \fB\-anrw\fP [\fInombre\-archivo\fP] .TP \fBhistory\fP \fB\-p\fP \fIarg\fP [\fIarg ...\fP] .TP \fBhistory\fP \fB\-s\fP \fIarg\fP [\fIarg ...\fP] .PD Sin opciones, muestra el historial de órdenes con su números de línea. Las líneas marcadas con un \fB*\fP han sido modificadas. Un argumento de \fIn\fP lista solamente las últimas \fIn\fP líneas. Si está definida (y no es nula) la variable de shell .SM \fBHISTTIMEFORMAT\fP se usará para formatear la salida de \fIstrftime\fP(3) donde se muestra la fecha y hora de cada entrada del historial. No se intercalan espacios en blanco entre la fecha y hora y la línea del historial. Puede indicarse \fInombre_archivo\fP para definir el nombre del archivo de historial,sino se indica se usará el valor de .SM \fBHISTFILE\fP. Si se dan opciones, tendrán el siguiente significado: .RS .PD 0 .TP \fB\-c\fP Limpia el historial borrando todas las entradas. .TP \fB\-d\fP \fIposición\fP Borra la posición \fIposición\fP del historial. Si se define un valor negativo para \fIposición\fP, se interpreta como una posición más adelante que la de la última línea del historial. Esto es, que los valores negativos cuentan hacia atrás a partir del final del historial: un índice de \-1 hace referencia a la orden actual \fBhistory \-d\fP. .TP \fB\-d\fP \fIinicio\fP\-\fIfin\fP Borra las entradas del historial entre las posiciones \fIinicio\fP y \fIfin\fP ambas inclusive. Los valores positivos y negativos para estas posiciones se interpretan tal como se describió anteriormente. .TP \fB\-a\fP Añade nuevas líneas (las introducidas desde el inicio de la actual sesión de \fBbash\fP) al historial. .TP \fB\-n\fP Lee las líneas de órdenes que aún no han sido leídas y las introduce en el historial. Éstas son las líneas añadidas al historial desde el comienzo de la sesión de \fBbash\fP actual. .TP \fB\-r\fP Lee el contenido del historial y lo añade a la lista actual.curso. .TP \fB\-w\fP Escribe la historia en curso en el historial, sobreescribiendo su contenido. .TP \fB\-p\fP Realiza la sustitución de historia de los siguientes \fIargs\fP y muestra el resultado en la salida estándar. No almacena los resultados en el archivo de historia. Cada \fIarg\fP debe protegerse para deshabilitar la expansión de historia normal. .TP \fB\-s\fP Almacena los \fIargs\fP en el historial como una sola entrada. La última orden del hisotrial se elimina antes de que se añadan los \fIargs\fP. .PD .PP If the .SM \fBHISTTIMEFORMAT\fP variable is set, the time stamp information associated with each history entry is written to the history file, marked with the history comment character. When the history file is read, lines beginning with the history comment character followed immediately by a digit are interpreted as timestamps for the following history entry. The return value is 0 unless an invalid option is encountered, an error occurs while reading or writing the history file, an invalid \fIoffset\fP or range is supplied as an argument to \fB\-d\fP, or the history expansion supplied as an argument to \fB\-p\fP fails. .RE .TP \fBjobs\fP [\fB\-lnprs\fP] [ \fIespectrab\fP ... ] .PD 0 .TP \fBjobs\fP \fB\-x\fP \fIorden\fP [ \fIargs\fP ... ] .PD La primera forma lista los trabajos activos. Las opciones tienen los significados siguientes: .RS .PD 0 .TP \fB\-l\fP Lista PIDs además de la información normal. .TP \fB\-n\fP Muestra información solamente sobre trabajos que han cambiado de estado desde que se notificó al usuario por última vez de su estado. .TP \fB\-p\fP Lista solamente el PID del líder del grupo de proceso del trabajo. .TP \fB\-r\fP Muestra únicamente trabajos en ejecución. .TP \fB\-s\fP Muestra únicamente trabajos detenidos. .PD .PP Si se da \fIespectrab\fP, la salida se restringe a la información sobre ese trabajo. El estado de retorno es cero a menos que se encuentre una opción inválida o se suministre un \fIespectrab\fP inválido. .PP Si se da la opción \fB\-x\fP, \fBjobs\fP reemplaza cualquier \fIespectrab\fP encontrado en \fIorden\fP o \fIargs\fP con el ID de grupo de proceso correspondiente, y ejecuta \fIorden\fP pasándole \fIargs\fP, devolviendo su estado de salida. .RE .TP \fBkill\fP [\fB\-s\fP \fInombre\-señal\fP | \fB\-n\fP \fInumseñal\fP | \fB\-\fP\fInombre\-señal\fP] [\fIpid\fP | \fIespectrab\fP] ... .PD 0 .TP \fBkill\fP \fB\-l\fP|\fB\-L\fP [\fInombre\-señal\fP | \fIstatus_salida\fP] .PD Send the signal named by \fIsigspec\fP or \fIsignum\fP to the processes named by \fIpid\fP or \fIjobspec\fP. \fIsigspec\fP is either a case\-insensitive signal name such as .SM \fBSIGKILL\fP (with or without the .SM \fBSIG\fP prefix) or a signal number; \fIsignum\fP is a signal number. If \fIsigspec\fP is not present, then .SM \fBSIGTERM\fP is assumed. An argument of \fB\-l\fP lists the signal names. If any arguments are supplied when \fB\-l\fP is given, the names of the signals corresponding to the arguments are listed, and the return status is 0. The \fIexit_status\fP argument to \fB\-l\fP is a number specifying either a signal number or the exit status of a process terminated by a signal. The \fB\-L\fP option is equivalent to \fB\-l\fP. \fBkill\fP returns true if at least one signal was successfully sent, or false if an error occurs or an invalid option is encountered. .TP \fBlet\fP \fIarg\fP [\fIarg\fP ...] Cada \fIarg\fP es una expresión aritmética a ser evaluada (vea .SM \fBEVALUACIÓN ARITMÉTICA\fP) .ie \n(zZ=1 in \fIbash(1)\fP). .el above). Si el último \fIarg\fP se evalúa a 0, \fBlet\fP devuelve 1; si no, devuelve 0. .TP \fBlocal\fP [\fIopción\fP] [\fInombre\fP[=\fIvalor\fP] ... | \- ] For each argument, a local variable named \fIname\fP is created, and assigned \fIvalue\fP. The \fIoption\fP can be any of the options accepted by \fBdeclare\fP. When \fBlocal\fP is used within a function, it causes the variable \fIname\fP to have a visible scope restricted to that function and its children. If \fIname\fP is \-, the set of shell options is made local to the function in which \fBlocal\fP is invoked: shell options changed using the \fBset\fP builtin inside the function are restored to their original values when the function returns. The restore is effected as if a series of \fBset\fP commands were executed to restore the values that were in place before the function. With no operands, \fBlocal\fP writes a list of local variables to the standard output. It is an error to use \fBlocal\fP when not within a function. The return status is 0 unless \fBlocal\fP is used outside a function, an invalid \fIname\fP is supplied, or \fIname\fP is a readonly variable. .TP \fBlogout\fP Sale de la shell. .TP \fBmapfile\fP [\fB\-d\fP \fIdelim\fP] [\fB\-n\fP \fIcount\fP] [\fB\-O\fP \fIorigin\fP] [\fB\-s\fP \fIcount\fP] [\fB\-t\fP] [\fB\-u\fP \fIfd\fP] [\fB\-C\fP \fIcallback\fP] [\fB\-c\fP \fIquantum\fP] [\fIarray\fP] .PD 0 .TP \fBreadarray\fP [\fB\-d\fP \fIdelim\fP] [\fB\-n\fP \fIcount\fP] [\fB\-O\fP \fIorigin\fP] [\fB\-s\fP \fIcount\fP] [\fB\-t\fP] [\fB\-u\fP \fIfd\fP] [\fB\-C\fP \fIcallback\fP] [\fB\-c\fP \fIquantum\fP] [\fIarray\fP] .PD Read lines from the standard input into the indexed array variable \fIarray\fP, or from file descriptor \fIfd\fP if the \fB\-u\fP option is supplied. The variable .SM \fBMAPFILE\fP is the default \fIarray\fP. Options, if supplied, have the following meanings: .RS .PD 0 .TP \fB\-d\fP The first character of \fIdelim\fP is used to terminate each input line, rather than newline. If \fIdelim\fP is the empty string, \fBmapfile\fP will terminate a line when it reads a NUL character. .TP \fB\-n\fP Copy at most \fIcount\fP lines. If \fIcount\fP is 0, all lines are copied. .TP \fB\-O\fP Begin assigning to \fIarray\fP at index \fIorigin\fP. The default index is 0. .TP \fB\-s\fP Elimina las primeras \fInumero\fP líneas leidas. .TP \fB\-t\fP Remove a trailing \fIdelim\fP (default newline) from each line read. .TP \fB\-u\fP Read lines from file descriptor \fIfd\fP instead of the standard input. .TP \fB\-C\fP Evaluate \fIcallback\fP each time \fIquantum\fP lines are read. The \fB\-c\fP option specifies \fIquantum\fP. .TP \fB\-c\fP Specify the number of lines read between each call to \fIcallback\fP. .PD .PP If \fB\-C\fP is specified without \fB\-c\fP, the default quantum is 5000. When \fIcallback\fP is evaluated, it is supplied the index of the next array element to be assigned and the line to be assigned to that element as additional arguments. \fIcallback\fP is evaluated after the line is read but before the array element is assigned. .PP If not supplied with an explicit origin, \fBmapfile\fP will clear \fIarray\fP before assigning to it. .PP \fBmapfile\fP returns successfully unless an invalid option or option argument is supplied, \fIarray\fP is invalid or unassignable, or if \fIarray\fP is not an indexed array. .RE .TP \fBpopd\fP [\-\fBn\fP] [+\fIn\fP] [\-\fIn\fP] Quita entradas de la pila de directorios. Los elementos se numeran empezando por el cero a partir del primer directorio listado por \fBdirs\fP. Si no se indica ningún argumento, \fBpopd\fP eliminará el primer directorio de la pila moviéndose hacia el que quedaría después en primer lugar. Si se indican argumentos, tendrán el siguiente significado: .RS .PD 0 .TP \fB\-n\fP Suprime el normal cambio de directorio cuando se desapilan directorios, de forma que solamente la pila se manipula. .TP \fB+\fP\fIn\fP Elimina la \fIn\fP\-ésima entrada de la pila comenzando por la parte izquierda de la lista mostrada por \fBdirs\fP, empezando por cero. Por ejemplo: .if n ``popd +0'' .if t \f(CWpopd +0\fP elimina el primer directorio, .if n ``popd +1'' .if t \f(CWpopd +1\fP el segundo. .TP \fB\-\fP\fIn\fP Elimina la \fIn\fP\-sima entrada (contando desde la derecha de la lista mostrada por \fBdirs\fP, empezando por cero. Por ejemplo: .if n ``popd -0'' .if t \f(CWpopd -0\fP Elimina el último directorio, .if n ``popd -1'' .if t \f(CWpopd -1\fP el siguiente al último. .PD .PP If the top element of the directory stack is modified, and the \fI\-n\fP option was not supplied, \fBpopd\fP uses the \fBcd\fP builtin to change to the directory at the top of the stack. If the \fBcd\fP fails, \fBpopd\fP returns a non\-zero value. .PP De lo contrario, \fBpopd\fP devuelve 'falso' si se encuentra una opción inválida, la pila de directorios está vacía, se especifica una entrada de la pila de directorios no existente. .PP Si la orden \fBpopd\fP tiene éxito, bash ejecuta \fBdirs\fP para mostra el último contenido de la pila de directorios, siendo el valor de salida cero. .RE .TP \fBprintf\fP [\fB\-v\fP \fIvar\fP] \fIformato\fP [\fIargumentos\fP] Escribe los \fIargumentos\fP formateados por la salida estándar bajo control de \fIformato\fP. La opción \fB\-v\fP hace que la salida se asigne a la variable \fIvar\fP en lugar de mostrarse por la salida estándar. .sp 1 \fIformato\fP es un cadena de caracteres con tres tipos de objetos: caracteres simples que simplemente se envían a la salida estándar, caracteres de escape que son convertidos antes de enviarse a la salida estándar y especificaciones de formatos que hacen que se impriman los siguientes \fIargumentos\fP. Además de las especificaciones del formato estándar de \fIprintf\fP(1), \fBprintf\fP también interpreta las siguientes extensiones: .RS .PD 0 .TP \fB%b\fP hace que \fBprintf\fP expanda la barra invertida en el correspondiente \fIargumento\fP como lo haría \fBecho \-e\fP. .TP \fB%q\fP causes \fBprintf\fP to output the corresponding \fIargument\fP in a format that can be reused as shell input. .TP \fB%Q\fP Igual que \fB%q\fP salvo que aplica la precisión definida en el \fIargumento\fP antes de entrecomillarlo. .TP \fB%(\fP\fIdatefmt\fP\fB)T\fP causes \fBprintf\fP to output the date\-time string resulting from using \fIdatefmt\fP as a format string for \fIstrftime\fP(3). The corresponding \fIargument\fP is an integer representing the number of seconds since the epoch. Two special argument values may be used: \-1 represents the current time, and \-2 represents the time the shell was invoked. If no argument is specified, conversion behaves as if \-1 had been given. This is an exception to the usual \fBprintf\fP behavior. .PD .PP The %b, %q, and %T directives all use the field width and precision arguments from the format specification and write that many bytes from (or use that wide a field for) the expanded argument, which usually contains more characters than the original. .PP Arguments to non\-string format specifiers are treated as C constants, except that a leading plus or minus sign is allowed, and if the leading character is a single or double quote, the value is the ASCII value of the following character. .PP El \fIformato\fP se reutiliza tanto como sea necesario para consumir todos los \fIargumentos\fP. Si el \fIformato\fP requiere más \fIargumentos\fP que los que se suministran, las especificaciones de formato extra se comportan como si se hubiera dado un valor cero o una cadena vacía, según lo apropiado. El valor de retorno será cero si finaliza con éxito y otra cifra si falla. .RE .TP \fBpushd\fP [\fB\-n\fP] [+\fIn\fP] [\-\fIn\fP] .PD 0 .TP \fBpushd\fP [\fB\-n\fP] [\fIdir\fP] .PD Añade un directorio a la cima de la pila de directorios, o rota la pila, haciendo que el directorio de trabajo en curso sea la nueva cima de la pila. Sin argumentos \fBpushd\fP intercambia los dos elementos superiores de la pila de directorio. Si se aportan argumentos, tendrán los siguientes significados: .RS .PD 0 .TP \fB\-n\fP Suprime el cambio normal de directorio cuando se rotan o añaden directorios a la pila, de forma que solamente se manipula la pila. .TP \fB+\fP\fIn\fP Rota la pila de forma que el \fIn\fP\-simo directorio (contando desde la izquierda de la lista mostrada por \fBdirs\fP, empezando por cero) esté en la cima. .TP \fB\-\fP\fIn\fP Rota la pila de forma que el \fIn\fP\-simo directorio (contando desde la derecha de la lista mostrada por \fBdirs\fP, empezando por cero) esté en la cima. .TP \fIdir\fP Añade \fIdirs\fP al comienzo de la pila de directorios .PD .PP After the stack has been modified, if the \fB\-n\fP option was not supplied, \fBpushd\fP uses the \fBcd\fP builtin to change to the directory at the top of the stack. If the \fBcd\fP fails, \fBpushd\fP returns a non\-zero value. .PP Otherwise, if no arguments are supplied, \fBpushd\fP returns 0 unless the directory stack is empty. When rotating the directory stack, \fBpushd\fP returns 0 unless the directory stack is empty or a non\-existent directory stack element is specified. .PP Si la orden \fBpushd\fP se ejecuta sin problema, bash ejecuta \fBdirs\fP para mostrar el contenido final de la pila de directorios. .RE .TP \fBpwd\fP [\fB\-LP\fP] Print the absolute pathname of the current working directory. The pathname printed contains no symbolic links if the \fB\-P\fP option is supplied or the \fB\-o physical\fP option to the \fBset\fP builtin command is enabled. If the \fB\-L\fP option is used, the pathname printed may contain symbolic links. The return status is 0 unless an error occurs while reading the name of the current directory or an invalid option is supplied. .TP \fBread\fP [\fB\-ers\fP] [\fB\-a\fP \fIaname\fP] [\fB\-d\fP \fIdelim\fP] [\fB\-i\fP \fItext\fP] [\fB\-n\fP \fInchars\fP] [\fB\-N\fP \fInchars\fP] [\fB\-p\fP \fIprompt\fP] [\fB\-t\fP \fItimeout\fP] [\fB\-u\fP \fIfd\fP] [\fInombre\fP ...] One line is read from the standard input, or from the file descriptor \fIfd\fP supplied as an argument to the \fB\-u\fP option, split into words as described .ie \n(zZ=1 in \fIbash(1)\fP .el above under \fBWord Splitting\fP, and the first word is assigned to the first \fIname\fP, the second word to the second \fIname\fP, and so on. If there are more words than names, the remaining words and their intervening delimiters are assigned to the last \fIname\fP. If there are fewer words read from the input stream than names, the remaining names are assigned empty values. The characters in .SM \fBIFS\fP are used to split the line into words using the same rules the shell uses for expansion (described .ie \n(zZ=1 in \fIbash(1)\fP .el above under \fBWord Splitting\fP). The backslash character (\fB\e\fP) may be used to remove any special meaning for the next character read and for line continuation. Options, if supplied, have the following meanings: .RS .PD 0 .TP \fB\-a \fP\fIarray\fP Las palabras se asignan secuencialmente a los elementos de la variable vector \fIarray\fP, empezando por 0. Se anula la posible previa definición de \fIarray\fP antes de que se asignen nuevos valores. Otros argumentos \fInombre\fP no se tienen en consideración. .TP \fB\-d \fP\fIdelim\fP The first character of \fIdelim\fP is used to terminate the input line, rather than newline. If \fIdelim\fP is the empty string, \fBread\fP will terminate a line when it reads a NUL character. .TP \fB\-e\fP If the standard input is coming from a terminal, \fBreadline\fP (see .SM \fBREADLINE\fP .ie \n(zZ=1 in \fIbash(1)\fP) .el above) is used to obtain the line. Readline uses the current (or default, if line editing was not previously active) editing settings, but uses readline's default filename completion. .TP \fB\-i \fP\fItext\fP If \fBreadline\fP is being used to read the line, \fItext\fP is placed into the editing buffer before editing begins. .TP \fB\-n \fP\fInchars\fP \fBread\fP returns after reading \fInchars\fP characters rather than waiting for a complete line of input, but honors a delimiter if fewer than \fInchars\fP characters are read before the delimiter. .TP \fB\-N \fP\fInchars\fP \fBread\fP returns after reading exactly \fInchars\fP characters rather than waiting for a complete line of input, unless EOF is encountered or \fBread\fP times out. Delimiter characters encountered in the input are not treated specially and do not cause \fBread\fP to return until \fInchars\fP characters are read. The result is not split on the characters in \fBIFS\fP; the intent is that the variable is assigned exactly the characters read (with the exception of backslash; see the \fB\-r\fP option below). .TP \fB\-p \fP\fIprompt\fP Display \fIprompt\fP on standard error, without a trailing newline, before attempting to read any input. The prompt is displayed only if input is coming from a terminal. .TP \fB\-r\fP Backslash does not act as an escape character. The backslash is considered to be part of the line. In particular, a backslash\-newline pair may not then be used as a line continuation. .TP \fB\-s\fP Silent mode. If input is coming from a terminal, characters are not echoed. .TP \fB\-t \fP\fItimeout\fP Cause \fBread\fP to time out and return failure if a complete line of input (or a specified number of characters) is not read within \fItimeout\fP seconds. \fItimeout\fP may be a decimal number with a fractional portion following the decimal point. This option is only effective if \fBread\fP is reading input from a terminal, pipe, or other special file; it has no effect when reading from regular files. If \fBread\fP times out, \fBread\fP saves any partial input read into the specified variable \fIname\fP. If \fItimeout\fP is 0, \fBread\fP returns immediately, without trying to read any data. The exit status is 0 if input is available on the specified file descriptor, or the read will return EOF, non\-zero otherwise. The exit status is greater than 128 if the timeout is exceeded. .TP \fB\-u \fP\fIfd\fP Read input from file descriptor \fIfd\fP. .PD .PP If no \fInames\fP are supplied, the line read, without the ending delimiter but otherwise unmodified, is assigned to the variable .SM \fBREPLY\fP. The exit status is zero, unless end\-of\-file is encountered, \fBread\fP times out (in which case the status is greater than 128), a variable assignment error (such as assigning to a readonly variable) occurs, or an invalid file descriptor is supplied as the argument to \fB\-u\fP. .RE .TP \fBreadonly\fP [\fB\-aAf\fP] [\fB\-p\fP] [\fInombre\fP[=\fIpalabra\fP] ...] .PD The given \fInames\fP are marked readonly; the values of these \fInames\fP may not be changed by subsequent assignment. If the \fB\-f\fP option is supplied, the functions corresponding to the \fInames\fP are so marked. The \fB\-a\fP option restricts the variables to indexed arrays; the \fB\-A\fP option restricts the variables to associative arrays. If both options are supplied, \fB\-A\fP takes precedence. If no \fIname\fP arguments are given, or if the \fB\-p\fP option is supplied, a list of all readonly names is printed. The other options may be used to restrict the output to a subset of the set of readonly names. The \fB\-p\fP option causes output to be displayed in a format that may be reused as input. If a variable name is followed by =\fIword\fP, the value of the variable is set to \fIword\fP. The return status is 0 unless an invalid option is encountered, one of the \fInames\fP is not a valid shell variable name, or \fB\-f\fP is supplied with a \fIname\fP that is not a function. .TP \fBreturn\fP [\fIn\fP] Causes a function to stop executing and return the value specified by \fIn\fP to its caller. If \fIn\fP is omitted, the return status is that of the last command executed in the function body. If \fBreturn\fP is executed by a trap handler, the last command used to determine the status is the last command executed before the trap handler. If \fBreturn\fP is executed during a \fBDEBUG\fP trap, the last command used to determine the status is the last command executed by the trap handler before \fBreturn\fP was invoked. If \fBreturn\fP is used outside a function, but during execution of a script by the \fB.\fP (\fBsource\fP) command, it causes the shell to stop executing that script and return either \fIn\fP or the exit status of the last command executed within the script as the exit status of the script. If \fIn\fP is supplied, the return value is its least significant 8 bits. The return status is non\-zero if \fBreturn\fP is supplied a non\-numeric argument, or is used outside a function and not during execution of a script by \fB.\fP\^ or \fBsource\fP. Any command associated with the \fBRETURN\fP trap is executed before execution resumes after the function or script. .TP \fBset\fP [\fB\-abefhkmnptuvxBCEHPT\fP] [\fB\-o\fP \fInombre\-opción\fP] [\fB\-\-\fP] [\fB\-\fP] [\fIarg\fP ...] .PD 0 .TP \fBset\fP [\fB+abefhkmnptuvxBCEHPT\fP] [\fB+o\fP \fInombre\-opción\fP] [\fB\-\-\fP] [\fB\-\fP] [\fIarg\fP ...] .PD Without options, display the name and value of each shell variable in a format that can be reused as input for setting or resetting the currently\-set variables. Read\-only variables cannot be reset. In \fIposix mode\fP, only shell variables are listed. The output is sorted according to the current locale. When options are specified, they set or unset shell attributes. Any arguments remaining after option processing are treated as values for the positional parameters and are assigned, in order, to \fB$1\fP, \fB$2\fP, \fB...\fP \fB$\fP\fIn\fP. Options, if specified, have the following meanings: .RS .PD 0 .TP 8 \fB\-a\fP Cada variable o función que se modifiquen o creen tendrán el atributo de exportación y se marcarán para exportar en el entorno de subsiguientes órdenes. .TP 8 \fB\-b\fP Informa del estado de los trabajos en segundo plano terminados inmediatamente, en vez de esperar a justo antes de mostrar el siguiente indicador primario. Esto solo es efectivo cuando el control de trabajos está habilitado. .TP 8 \fB\-e\fP Exit immediately if a \fIpipeline\fP (which may consist of a single \fIsimple command\fP), a \fIlist\fP, or a \fIcompound command\fP (see .SM \fBSHELL GRAMMAR\fP .ie \n(zZ=1 in \fIbash(1)\fP), .el above), exits with a non\-zero status. The shell does not exit if the command that fails is part of the command list immediately following a \fBwhile\fP or \fBuntil\fP keyword, part of the test following the \fBif\fP or \fBelif\fP reserved words, part of any command executed in a \fB&&\fP or \fB||\fP list except the command following the final \fB&&\fP or \fB||\fP, any command in a pipeline but the last, or if the command's return value is being inverted with \fB!\fP. If a compound command other than a subshell returns a non\-zero status because a command failed while \fB\-e\fP was being ignored, the shell does not exit. A trap on \fBERR\fP, if set, is executed before the shell exits. This option applies to the shell environment and each subshell environment separately (see .SM \fBCOMMAND EXECUTION ENVIRONMENT\fP .ie \n(zZ=1 in \fIbash(1)\fP), .el above), podrá provocar que las subshells finalizen antes de ejecutar todas las órdenes en la subshell. .if t .sp 0.5 .if n .sp 1 If a compound command or shell function executes in a context where \fB\-e\fP is being ignored, none of the commands executed within the compound command or function body will be affected by the \fB\-e\fP setting, even if \fB\-e\fP is set and a command returns a failure status. If a compound command or shell function sets \fB\-e\fP while executing in a context where \fB\-e\fP is ignored, that setting will not have any effect until the compound command or the command containing the function call completes. .TP 8 \fB\-f\fP Deshabilita la expansión de nombres de rutas. .TP 8 \fB\-h\fP Recuerda la localización de órdenes una vez que se buscan para la 1ª ejecución. Esto está habilitado de forma predeterminada. .TP 8 \fB\-k\fP Todos los argumentos en forma de sentencias de asignación se ponen en el entorno para una orden, no solamente aquéllos que precedan al nombre de la orden. .TP 8 \fB\-m\fP Modo de monitorización. Se habilita el control de tareas. Esta opción está puesta de forma predeterminada para shells interactivos en sistemas que lo admitan (vea .SM \fBCONTROL DE TAREAS\fP anteriormente). .ie \n(zZ=1 in \fIbash(1)\fP). .el above). Todos los procesos se ejecutan en un grupo separado. Cada vez que finalice una tarea en segundo plano, la shell mostrará una línea indicando su estado de salida. .TP 8 \fB\-n\fP Lee órdenes pero no las ejecuta. Esto puede emplearse para comprobar si un guión de la shell tiene errores de sintaxis. Para shells interactivos esta opción no tiene efecto. .TP 8 \fB\-o \fP\fInombre\-opción\fP El \fInombre\-opción\fP puede ser uno de los siguientes: .RS .TP 8 \fBallexport\fP Lo miso que \fB\-a\fP. .TP 8 \fBbraceexpand\fP Lo miso que \fB\-B\fP. .TP 8 \fBemacs\fP Use an emacs\-style command line editing interface. This is enabled by default when the shell is interactive, unless the shell is started with the \fB\-\-noediting\fP option. This also affects the editing interface used for \fBread \-e\fP. .TP 8 \fBerrexit\fP Lo mismo que \fB\-e\fP. .TP 8 \fBerrtrace\fP Lo mismo que \fB\-E\fP. .TP 8 \fBfunctrace\fP Lo mismo que \fB\-T\fP. .TP 8 \fBhashall\fP Lo mismo que \fB\-h\fP. .TP 8 \fBhistexpand\fP Lo mismo que \fB\-H\fP. .TP 8 \fBhistory\fP Activa el histórico de órdenes, tal como se describe en .ie \n(zZ=1 in \fIbash(1)\fP .el above en el apartado .SM \fBHISTORIAL\fP. Esta opción está habilitada por omisión en shells interactivos. .TP 8 \fBignoreeof\fP The effect is as if the shell command .if t \f(CWIGNOREEOF=10\fP .if n ``IGNOREEOF=10'' se hubiera ejecutado la orden de la shell (vea \fBVariables de la shell\fP) .ie \n(zZ=1 in \fIbash(1)\fP). .el above). .TP 8 \fBkeyword\fP Lo mismo que \fB\-k\fP. .TP 8 \fBmonitor\fP Lo mismo que \fB\-m\fP. .TP 8 \fBnoclobber\fP Lo mismo que \fB\-C\fP. .TP 8 \fBnoexec\fP Lo mismo que \fB\-n\fP. .TP 8 \fBnoglob\fP Lo mismo que \fB\-f\fP. .TP 8 \fBnolog\fP Currently ignored. .TP 8 \fBnotify\fP Lo mismo que \fB\-b\fP. .TP 8 \fBnounset\fP Lo mismo que \fB\-u\fP. .TP 8 \fBonecmd\fP Lo mismo que \fB\-t\fP. .TP 8 \fBphysical\fP Lo mismo que \fB\-P\fP. .TP 8 \fBpipefail\fP If set, the return value of a pipeline is the value of the last (rightmost) command to exit with a non\-zero status, or zero if all commands in the pipeline exit successfully. This option is disabled by default. .TP 8 \fBposix\fP Cambia el comportamiento de \fBbash\fP cuando el funcionamiento difiera del estándar POSIX, de forma que concuerde con éste(\fIposix mode\fP). Consulte .SM \fBVEASE TAMBIÉN\fP .ie \n(zZ=1 in \fIbash(1)\fP .el below más delante si quiere leer un documento donde se detalla la influencia del modo posix sobre el funcionamiento de bash. .TP 8 \fBprivileged\fP Lo mismo que \fB\-p\fP. .TP 8 \fBverbose\fP Lo mismo que \fB\-v\fP. .TP 8 \fBvi\fP Use a vi\-style command line editing interface. This also affects the editing interface used for \fBread \-e\fP. .TP 8 \fBxtrace\fP Lo mismo que \fB\-x\fP. .sp .5 .PP Si se da \fB\-o\fP sin ningún \fInombre\-opción\fP, se muestran los valores de las opciones activas. Si se da \fB+o\fP sin ningún \fInombre\-opción\fP, se muestra en la salida estándar una serie de órdenes \fBset\fP para recrear las opciones según están puestas o no actualmente. .RE .TP 8 \fB\-p\fP Turn on \fIprivileged\fP mode. In this mode, the .SM \fB$ENV\fP and .SM \fB$BASH_ENV\fP files are not processed, shell functions are not inherited from the environment, and the .SM \fBSHELLOPTS\fP, .SM \fBBASHOPTS\fP, .SM \fBCDPATH\fP, and .SM \fBGLOBIGNORE\fP variables, if they appear in the environment, are ignored. If the shell is started with the effective user (group) id not equal to the real user (group) id, and the \fB\-p\fP option is not supplied, these actions are taken and the effective user id is set to the real user id. If the \fB\-p\fP option is supplied at startup, the effective user id is not reset. Turning this option off causes the effective user and group ids to be set to the real user and group ids. .TP 8 \fB\-r\fP Activa el modo restringido de la shell. Una vez que se activa, esta opción no puede desactivarse. .TP 8 \fB\-t\fP Sale tras leer y ejecutar una sola orden. .TP 8 \fB\-u\fP Trata las variables no definidas, los parámetros distintos a los especiales "@" y "*" o las variables vectoriales con subíndice "@" o "*" como un error cuando se realiza la expansión de parámetros. Si la expansión se intenta hacer sobre una variable o parámetro no definidos, la shell mostrará un mensaje de error y, si no está en modo interactivo, finalizará con un estado distinto de cero. .TP 8 \fB\-v\fP Repite en la salida las líneas de entrada de la shell tras leerlas. .TP 8 \fB\-x\fP After expanding each \fIsimple command\fP, \fBfor\fP command, \fBcase\fP command, \fBselect\fP command, or arithmetic \fBfor\fP command, display the expanded value of .SM \fBPS4\fP, followed by the command and its expanded arguments or associated word list. .TP 8 \fB\-B\fP la shell realiza la expansión de llaves (vea \fBExpansión de llaves\fP arriba). .ie \n(zZ=1 in \fIbash(1)\fP). .el above). Está activado por defecto. .TP 8 \fB\-C\fP Si está activo, \fBbash\fP no sobreescribe un archivo existente con los operadores de redirección \fB>\fP, \fB>&\fP, ni \fB<>\fP. Esto puede cambiarse cuando se crean archivos de salida mediante el empleo del operador \fB>|\fP en vez de \fB>\fP. .TP 8 \fB\-E\fP Si está definida, cualquier trampa en \fBERR\fP será heredada por las funciones de la shell, las sustituciones de órdenes y las órdenes ejecutadas en subshells. En general, la trampa \fBERR\fP no se hereda en estos casos. .TP 8 \fB\-H\fP Permite la sustitución de historia mediante \fB!\fP\^. Esta opción está activada por omisión cuando la shell es interactivo. .TP 8 \fB\-P\fP If set, the shell does not resolve symbolic links when executing commands such as \fBcd\fP that change the current working directory. It uses the physical directory structure instead. By default, \fBbash\fP follows the logical chain of directories when performing commands which change the current directory. .TP 8 \fB\-T\fP Si está definida, cualquier trampa en \fBDEBUG\fP O \fBRETURN\fP será heredada por las funciones de la shell, las sustituciones de órdenes y las órdenes ejecutadas en subshells. En general, las trampas \fBDEBUG\fP y \fBRETURN\fP no se heredan en estos casos. .TP 8 \fB\-\-\fP Si a esta opción no sigue ningún argumento más, entonces los parámetros posicionales se anulan. Si no, los parámetros posicionales se ponen con los valores dados por los \fIarg\fPs, incluso si alguno de ellos comienza con un \fB\-\fP. .TP 8 \fB\-\fP Señala el final de las opciones, haciendo que el resto de \fIarg\fPs se asignen a los parámetros posicionales. Las opciones \fB\-x\fP y \fB\-v\fP se desactivan. Si no hay más \fIarg\fPs, los parámetros posicionales permanecen sin cambios. .PD .PP Las opciones están desactivadas de forma predeterminada a menos que se diga otra cosa. Usar + en vez de \- hace que estas opciones se desactiven. Las opciones también pueden darse como argumentos al llamar al shell. El conjunto de opciones activadas puede examinarse en \fB$\-\fP. El estado de retorno es siempre `verdad' a menos que se encuentre una opción inválida. .RE .TP \fBshift\fP [\fIn\fP] Los parámetros posicionales desde \fIn\fP+1 ... se renombran a \fB$1\fP \fB...\fP Los parámetros representados por los números desde \fB$#\fP hasta \fB$#\fP\-\fIn\fP+1 se anulan. \fIn\fP debe ser un número no negativo menor o igual a \fB$#\fP. Si \fIn\fP es 0, no se cambia ningún parámetro. Si \fIn\fP no se da, se supone 1. Si \fIn\fP es mayor que \fB$#\fP, los parámetros posicionales no se cambian. El estado de retorno es mayor que cero si \fIn\fP es mayor que \fB$#\fP o menor que cero; en otro caso es cero. .TP \fBshopt\fP [\fB\-pqsu\fP] [\fB\-o\fP] [\fInombreopc\fP ...] Toggle the values of settings controlling optional shell behavior. The settings can be either those listed below, or, if the \fB\-o\fP option is used, those available with the \fB\-o\fP option to the \fBset\fP builtin command. With no options, or with the \fB\-p\fP option, a list of all settable options is displayed, with an indication of whether or not each is set; if \fIoptnames\fP are supplied, the output is restricted to those options. The \fB\-p\fP option causes output to be displayed in a form that may be reused as input. Other options have the following meanings: .RS .PD 0 .TP \fB\-s\fP Activa (set) cada \fInombreopc\fP. .TP \fB\-u\fP Desactiva (unset) cada \fInombreopc\fP. .TP \fB\-q\fP Suprime la salida normal (modo silencioso); el estado de salida indica si el \fInombreopc\fP está activado o no. Si se dan varios argumentos \fInombreopc\fP con \fB\-q\fP, el estado de salida es cero si todos los \fInombreopcs\fP están activados; distinto de cero en otro caso. .TP \fB\-o\fP Restringe los valores de \fInombreopc\fP a aquéllos definidos para la opción \fB\-o\fP de la orden interna \fBset\fP. .PD .PP If either \fB\-s\fP or \fB\-u\fP is used with no \fIoptname\fP arguments, \fBshopt\fP shows only those options which are set or unset, respectively. Unless otherwise noted, the \fBshopt\fP options are disabled (unset) by default. .PP El estado de retorno cuando se listan opciones es cero si todos los \fInombreopcs\fP están activos, distinto de cero en otro caso. Cuando se activan o desactivan opciones, el estado de salida es cero a menos que un \fInombreopc\fP no sea una opción de la shell válida. .PP La lista de las opciones de \fBshopt\fP es: .if t .sp .5v .if n .sp 1v .PD 0 .TP 8 \fBassoc_expand_once\fP If set, the shell suppresses multiple evaluation of associative array subscripts during arithmetic expression evaluation, while executing builtins that can perform variable assignments, and while executing builtins that perform array dereferencing. .TP 8 \fBautocd\fP If set, a command name that is the name of a directory is executed as if it were the argument to the \fBcd\fP command. This option is only used by interactive shells. .TP 8 \fBcdable_vars\fP Si está activa, un argumento de la orden interna \fBcd\fP que no sea un directorio, se supone el nombre de una variable cuyo valor es el directorio al que hay que cambiarse. .TP 8 \fBcdspell\fP Si está activa, se corregirán pequeños errores que hubiera en la escritura de un componente directorio de una orden \fBcd\fP. Los errores que se buscan se refieren a caracteres transpuestos, un carácter que falte, y un carácter que sobre. Si se encuentra una corrección, se muestra el nombre de archivo corregido y la orden procede. Esta opción solo se emplea en shells interactivos. .TP 8 \fBcheckhash\fP Si está activa, \fBbash\fP comprueba que una orden encontrada en la tabla de dispersión existe antes de intentar ejecutarlo. Si una orden en la tabla de dispersión ya no existe, se realiza una búsqueda normal en el PATH. .TP 8 \fBcheckjobs\fP If set, \fBbash\fP lists the status of any stopped and running jobs before exiting an interactive shell. If any jobs are running, this causes the exit to be deferred until a second exit is attempted without an intervening command (see .SM \fBJOB CONTROL\fP .ie \n(zZ=1 in \fIbash(1)\fP). .el above). La shell siempre pospone su finalización si alguna tarea está detenida. .TP 8 \fBcheckwinsize\fP Si está activa, \fBbash\fP comprueba el tamaño de ventana tras cada orden (no nativa) y, si necesario, actualiza los valores de .SM \fBLINES\fP y .SM \fBCOLUMNS\fP.Activa por defecto. .TP 8 \fBcmdhist\fP Si está activa, \fBbash\fP intenta guardar todas las líneas de una orden de varias líneas en la misma entrada del historial. Esto permite reeditar fácilmente múltiples órdenes. Esta opción está activada por defecto, pero solo surte efecto si está activado el historial tal como se describe en .ie \n(zZ=1 in \fIbash(1)\fP .el above en el apartado .SM \fBHISTÓRICO\fP. .PD 0 .TP 8 \fBcompat31\fP .TP 8 \fBcompat32\fP .TP 8 \fBcompat40\fP .TP 8 \fBcompat41\fP .TP 8 \fBcompat42\fP .TP 8 \fBcompat43\fP .TP 8 \fBcompat44\fP .TP 8 \fBcompat50\fP .PD Controla ciertos ascpetos del modo de compatibilidad de la shell. Consulte .SM \fBMODO DE COMPATIBILIDAD DE LA SHELL\fP más adelante. .ie \n(zZ=1 in \fIbash(1)\fP). .el below). .TP 8 \fBcomplete_fullquote\fP If set, \fBbash\fP quotes all shell metacharacters in filenames and directory names when performing completion. If not set, \fBbash\fP removes metacharacters such as the dollar sign from the set of characters that will be quoted in completed filenames when these metacharacters appear in shell variable references in words to be completed. This means that dollar signs in variable names that expand to directories will not be quoted; however, any dollar signs appearing in filenames will not be quoted, either. This is active only when bash is using backslashes to quote completed filenames. This variable is set by default, which is the default bash behavior in versions through 4.2. .TP 8 \fBdirexpand\fP If set, \fBbash\fP replaces directory names with the results of word expansion when performing filename completion. This changes the contents of the readline editing buffer. If not set, \fBbash\fP attempts to preserve what the user typed. .TP 8 \fBdirspell\fP Si está definido, \fBbash\fP intentará corregir los nombres de los directorios al autocompletar siempre que el nombre dado no corresponda a ningún directorio. .TP 8 \fBdotglob\fP Si está activa, \fBbash\fP incluye los nombres de archivos que comiencen con un `.' en los resultados de la expansión de nombres de ruta. Los nombres de archivo \fB\*(lq.\*(rq\fP y \fB\*(lq..\*(rq\fP siempre deben concordarse expresamente aunque \fBdotglob\fP esté activa. .TP 8 \fBexecfail\fP Si está activa, una shell no interactiva no acabará si no puede ejecutar el archivo especificado como un argumento de la orden interna \fBexec\fP. Una shell interactiva no finaliza si \fBexec\fP falla. .TP 8 \fBexpand_aliases\fP Si está definido, los aliases se expanden tal como se describe en .ie \n(zZ=1 in \fIbash(1)\fP .el above .SM \fBALIAS\fP. Esta opción está habilitada de forma predeterminada para shells interactivos. .TP 8 \fBextdebug\fP If set at shell invocation, or in a shell startup file, arrange to execute the debugger profile before the shell starts, identical to the \fB\-\-debugger\fP option. If set after invocation, behavior intended for use by debuggers is enabled: .RS .TP \fB1.\fP The \fB\-F\fP option to the \fBdeclare\fP builtin displays the source file name and line number corresponding to each function name supplied as an argument. .TP \fB2.\fP If the command run by the \fBDEBUG\fP trap returns a non\-zero value, the next command is skipped and not executed. .TP \fB3.\fP If the command run by the \fBDEBUG\fP trap returns a value of 2, and the shell is executing in a subroutine (a shell function or a shell script executed by the \fB.\fP or \fBsource\fP builtins), the shell simulates a call to \fBreturn\fP. .TP \fB4.\fP .SM \fBBASH_ARGC\fP y .SM \fBBASH_ARGV\fP se actualizan tal como se describe en .ie \n(zZ=1 in \fIbash(1)\fP). .el above). .TP \fB5.\fP Function tracing is enabled: command substitution, shell functions, and subshells invoked with \fB(\fP \fIcommand\fP \fB)\fP inherit the \fBDEBUG\fP and \fBRETURN\fP traps. .TP \fB6.\fP Error tracing is enabled: command substitution, shell functions, and subshells invoked with \fB(\fP \fIcommand\fP \fB)\fP inherit the \fBERR\fP trap. .RE .TP 8 \fBextglob\fP Si está activa, se habilitan las características de concordancia de patrones extendidas descritas .ie \n(zZ=1 in \fIbash(1)\fP .el above bajo \fBExpansión de Nombres de Ruta\fP activadas .TP 8 \fBextquote\fP If set, \fB$\fP\(aq\fIstring\fP\(aq and \fB$\fP"\fIstring\fP" quoting is performed within \fB${\fP\fIparameter\fP\fB}\fP expansions enclosed in double quotes. This option is enabled by default. .TP 8 \fBfailglob\fP If set, patterns which fail to match filenames during pathname expansion result in an expansion error. .TP 8 \fBforce_fignore\fP If set, the suffixes specified by the .SM \fBFIGNORE\fP shell variable cause words to be ignored when performing word completion even if the ignored words are the only possible completions. See .SM \fBSHELL VARIABLES\fP .ie \n(zZ=1 in \fIbash(1)\fP .el above para ver una descripción de .SM \fBFIGNORE\fP. Esta opción está habilitada de forma predeterminada. .TP 8 \fBglobasciiranges\fP If set, range expressions used in pattern matching bracket expressions (see .SM \fBPattern Matching\fP .ie \n(zZ=1 in \fIbash(1)\fP) .el above) behave as if in the traditional C locale when performing comparisons. That is, the current locale's collating sequence is not taken into account, so \fBb\fP will not collate between \fBA\fP and \fBB\fP, and upper\-case and lower\-case ASCII characters will collate together. .TP 8 \fBglobskipdots\fP If set, pathname expansion will never match the filenames \fB\*(lq.\*(rq\fP and \fB\*(lq..\*(rq\fP, even if the pattern begins with a \fB\*(lq.\*(rq\fP. This option is enabled by default. .TP 8 \fBglobstar\fP If set, the pattern \fB**\fP used in a pathname expansion context will match all files and zero or more directories and subdirectories. If the pattern is followed by a \fB/\fP, only directories and subdirectories match. .TP 8 \fBgnu_errfmt\fP If set, shell error messages are written in the standard GNU error message format. .TP 8 \fBhistappend\fP Si está activo el historial se añade al archivo nombrado según el valor de la variable .SM \fBHISTFILE\fP cuando la shell acaba, en vez de sobreescribir el archivo. .TP 8 \fBhistreedit\fP Si está activa, y \fBreadline\fP se está utilizando, se le da al usuario la oportunidad de re\-editar la sustitución de historia fallida. .TP 8 \fBhistverify\fP Si está activa, y \fBreadline\fP se está utilizando, los resultados de la sustitución de historia no se pasan inmediatamente al analizador de la shell. En vez de eso, la línea resultante se carga en el búfer de edición de \fBreadline\fP, permitiendo así una modificación posterior. .TP 8 \fBhostcomplete\fP Si está activa, y \fBreadline\fP se está utilizando, \fBbash\fP intentará terminar de escribir un nombre de equipo anfitrión cuando se esté completando una palabra que contenga una \fB@\fP (consulte \fBTerminación\fP bajo .SM \fBREADLINE\fP anteriormente). .ie \n(zZ=1 in \fIbash(1)\fP). .el above). Esto está activado por defecto. .TP 8 \fBhuponexit\fP Si está activa, \fBbash\fP enviará una señal .SM \fBSIGHUP\fP a todos los trabajos cuando una shell de entrada interactiva finalice. .TP 8 \fBinherit_errexit\fP If set, command substitution inherits the value of the \fBerrexit\fP option, instead of unsetting it in the subshell environment. This option is enabled when \fIposix mode\fP is enabled. .TP 8 \fBinteractive_comments\fP Si está activa, permite a una palabra que empiece por \fB#\fP hacer que esa palabra y todos los caracteres restantes de esa línea no sean tenidos en cuenta en una shell interactiva (consulte .SM \fBCOMENTARIOS\fP anteriormente). .ie \n(zZ=1 in \fIbash(1)\fP). .el above). Esta opción está activada por defecto. .TP 8 \fBlastpipe\fP If set, and job control is not active, the shell runs the last command of a pipeline not executed in the background in the current shell environment. .TP 8 \fBlithist\fP Si está activa, y la opción \fBcmdhist\fP también lo está, las órdenes multi\-línea se guardan en la historia con saltos de línea empotrados en vez de emplear como separador el punto y coma, donde sea posible. .TP 8 \fBlocalvar_inherit\fP If set, local variables inherit the value and attributes of a variable of the same name that exists at a previous scope before any new value is assigned. The nameref attribute is not inherited. .TP 8 \fBlocalvar_unset\fP If set, calling \fBunset\fP on local variables in previous function scopes marks them so subsequent lookups find them unset until that function returns. This is identical to the behavior of unsetting local variables at the current function scope. .TP 8 \fBlogin_shell\fP La shell define esta opción si se ha iniciado como una shell de entrada. Consulte .SM \fBLLAMADA\fP más adelante. .ie \n(zZ=1 in \fIbash(1)\fP). .el above). Este valor no debería ser modificado. .TP 8 \fBmailwarn\fP Si está activa, y a un archivo donde \fBbash\fP está buscando correo nuevo se ha accedido desde la última vez que se buscó, se muestra el mensaje \*(lqThe mail in \fImailfile\fP has been read\*(rq, o su equivalente en el idioma local, que en español sería \*(lqEl correo en \fIbuzón\fP ha sido leído\*(rq. .TP 8 \fBno_empty_cmd_completion\fP Si está activa, y \fBreadline\fP se está utilizando, \fBbash\fP no intentará buscar en .SM \fBPATH\fP posibles cadenas para completar si se intenta autocompletar en una línea en blanco. .TP 8 \fBnocaseglob\fP Si está activa, \fBbash\fP busca concordancias de nombres de archivos sin distinción entre mayúsculas y minúsculas cuando realice la expansión de nombres de ruta (vea \fBExpansión de nombres de ruta\fP). .ie \n(zZ=1 in \fIbash(1)\fP). .el above). .TP 8 \fBnocasematch\fP Si está definida, \fBbash\fP buscará concordancias sin distinción entre mayúsculas y minúsculas ya sea ejecutando las órdenes condicionales \fBcase\fP o \fB[[\fP, expansiones de palabra en patrones de sustitución o durante el filtrado de posibles cadenas en autocompletados programables. .TP 8 \fBnoexpand_translation\fP If set, \fBbash\fP encloses the translated results of $"..." quoting in single quotes instead of double quotes. If the string is not translated, this has no effect. .TP 8 \fBnullglob\fP Si está activa, \fBbash\fP permite que los patrones que no concuerden con ningún archivo (vea \fBExpansión de nombres de ruta\fP arriba) .ie \n(zZ=1 in \fIbash(1)\fP) .el above) se expandan a una cadena vacía en lugar de hacerlo a si mismos. .TP 8 \fBpatsub_replacement\fP If set, \fBbash\fP expands occurrences of \fB&\fP in the replacement string of pattern substitution to the text matched by the pattern, as described under \fBParameter Expansion\fP .ie \n(zZ=1 in \fIbash(1)\fP. .el above. Esta opción está activada por defecto. .TP 8 \fBprogcomp\fP Si está definida, las utilidades de autocompletado programable (consulte \fBAutocompletado Programable\fP anteriormente). .ie \n(zZ=1 in \fIbash(1)\fP) .el above) están activada. Estas opciones están activadas por defecto. .TP 8 \fBprogcomp_alias\fP If set, and programmable completion is enabled, \fBbash\fP treats a command name that doesn't have any completions as a possible alias and attempts alias expansion. If it has an alias, \fBbash\fP attempts programmable completion using the command word resulting from the expanded alias. .TP 8 \fBpromptvars\fP Si está activa, las cadenas de caracteres que sirven de indicadores están sujetas a expansión de variable y parámetro tras ser expandidas como se describió en .SM \fBINDICADORES\fP .ie \n(zZ=1 in \fIbash(1)\fP. .el above. Esta opción está activada por defecto. .TP 8 \fBrestricted_shell\fP la shell activa esta opción si se inicia en modo restringido (consulte .SM \fBSHELL RESTRINGIDA\fP más adelante). .ie \n(zZ=1 in \fIbash(1)\fP). .el below). The value may not be changed. This is not reset when the startup files are executed, allowing the startup files to discover whether or not a shell is restricted. .TP 8 \fBshift_verbose\fP Si está activa, la orden interna \fBshift\fP muestra un mensaje de error cuando el número de shift excede al de parámetros posicionales. .TP 8 \fBsourcepath\fP Si está activa, la orden nativa \fBsource\fP (\fB.\fP) emplea el valor de .SM \fBPATH\fP para buscar el directorio que contenga el archivo suministrado como argumento. Esta opción está activa por omisión. .TP 8 \fBvarredir_close\fP If set, the shell automatically closes file descriptors assigned using the \fI{varname}\fP redirection syntax (see .SM \fBREDIRECTION\fP .ie \n(zZ=1 in \fIbash(1)\fP) .el above) en lugar de dejarlos abiertos una vez que la orden finalice. .TP 8 \fBxpg_echo\fP If set, the \fBecho\fP builtin expands backslash\-escape sequences by default. .RE .PD .TP \fBsuspend\fP [\fB\-f\fP] Suspend the execution of this shell until it receives a .SM \fBSIGCONT\fP signal. A login shell, or a shell without job control enabled, cannot be suspended; the \fB\-f\fP option can be used to override this and force the suspension. The return status is 0 unless the shell is a login shell or job control is not enabled and \fB\-f\fP is not supplied. .TP \fBtest\fP \fIexpr\fP .PD 0 .TP \fB[\fP \fIexpr\fP \fB]\fP Devuelve un estado de 0 (verdadero) o 1 (falso) dependiendo de la evaluación de la expresión condicional \fIexpr\fP. Cada operador y operando debe ser un argumento separado. Las expresiones se componen de las primarias descritas .ie \n(zZ=1 in \fIbash(1)\fP .el above under .SM \fBCONDITIONAL EXPRESSIONS\fP. \fBtest\fP does not accept any options, nor does it accept and ignore an argument of \fB\-\-\fP as signifying the end of options. .if t .sp 0.5 .if n .sp 1 Expressions may be combined using the following operators, listed in decreasing order of precedence. The evaluation depends on the number of arguments; see below. Operator precedence is used when there are five or more arguments. .RS .PD 0 .TP \fB! \fP\fIexpr\fP Verdad si \fIexpr\fP es falsa. .TP \fB( \fP\fIexpr\fP\fB )\fP Devuelve el valor de \fIexpr\fP. Esto puede emplearse para cambiar la precedencia normal de los operadores. .TP \fIexpr1\fP \-\fBa\fP \fIexpr2\fP Verdad si tanto \fIexpr1\fP como \fIexpr2\fP son verdad. .TP \fIexpr1\fP \-\fBo\fP \fIexpr2\fP Verdad si uno al menos de \fIexpr1\fP o \fIexpr2\fP es verdad. .PD .PP \fBtest\fP y \fB[\fP evalúan expresiones condicionales según un conjunto de reglas basadas en el número de argumentos. .if t .sp 0.5 .if n .sp 1 .PD 0 .TP 0 argumentos La expresión es falsa. .TP 1 argumento La expresión es verdad si y solo si el argumento no está vacío. .TP 2 argumentos Si el primer argumento es \fB!\fP, la expresión es verdad si y solo si el segundo argumento es nulo. Si el primer argumento es uno de los operadores condicionales monarios listados .ie \n(zZ=1 in \fIbash(1)\fP .el above En .SM \fBEXPRESIONES CONDICIONALES\fP, la expresión es verdadera si el test monario lo es. Si el primer argumento no es un operador condicional monario válido, la expresión es falsa. .TP 3 argumentos The following conditions are applied in the order listed. If the second argument is one of the binary conditional operators listed .ie \n(zZ=1 in \fIbash(1)\fP .el above under .SM \fBCONDITIONAL EXPRESSIONS\fP, the result of the expression is the result of the binary test using the first and third arguments as operands. The \fB\-a\fP and \fB\-o\fP operators are considered binary operators when there are three arguments. If the first argument is \fB!\fP, the value is the negation of the two\-argument test using the second and third arguments. If the first argument is exactly \fB(\fP and the third argument is exactly \fB)\fP, the result is the one\-argument test of the second argument. Otherwise, the expression is false. .TP 4 argumentos The following conditions are applied in the order listed. If the first argument is \fB!\fP, the result is the negation of the three\-argument expression composed of the remaining arguments. the two\-argument test using the second and third arguments. If the first argument is exactly \fB(\fP and the fourth argument is exactly \fB)\fP, the result is the two\-argument test of the second and third arguments. Otherwise, the expression is parsed and evaluated according to precedence using the rules listed above. .TP 5 ó más argumentos La expresión se analiza y evalúa de acuerdo con la precedencia usando las reglas mencionadas arriba. .if t .sp 0.5 .if n .sp 1 .LP When used with \fBtest\fP or \fB[\fP, the \fB<\fP and \fB>\fP operators sort lexicographically using ASCII ordering. .RE .PD .TP \fBtimes\fP Muestra los tiempos acumulados de usuario y sistema para la shell y para procesos ejecutados desde él. El estado de retorno es 0. .TP \fBtrap\fP [\fB\-lp\fP] [[\fIarg\fP] \fInombre\-señal\fP ...] The command \fIarg\fP is to be read and executed when the shell receives signal(s) \fIsigspec\fP. If \fIarg\fP is absent (and there is a single \fIsigspec\fP) or \fB\-\fP, each specified signal is reset to its original disposition (the value it had upon entrance to the shell). If \fIarg\fP is the null string the signal specified by each \fIsigspec\fP is ignored by the shell and by the commands it invokes. If \fIarg\fP is not present and \fB\-p\fP has been supplied, then the trap commands associated with each \fIsigspec\fP are displayed. If no arguments are supplied or if only \fB\-p\fP is given, \fBtrap\fP prints the list of commands associated with each signal. The \fB\-l\fP option causes the shell to print a list of signal names and their corresponding numbers. Each \fIsigspec\fP is either a signal name defined in <\fIsignal.h\fP>, or a signal number. Signal names are case insensitive and the .SM \fBSIG\fP prefix is optional. .if t .sp 0.5 .if n .sp 1 If a \fIsigspec\fP is .SM \fBEXIT\fP (0) the command \fIarg\fP is executed on exit from the shell. If a \fIsigspec\fP is .SM \fBDEBUG\fP, the command \fIarg\fP is executed before every \fIsimple command\fP, \fIfor\fP command, \fIcase\fP command, \fIselect\fP command, every arithmetic \fIfor\fP command, and before the first command executes in a shell function (see .SM \fBSHELL GRAMMAR\fP .ie \n(zZ=1 in \fIbash(1)\fP). .el above). Refer to the description of the \fBextdebug\fP option to the \fBshopt\fP builtin for details of its effect on the \fBDEBUG\fP trap. If a \fIsigspec\fP is .SM \fBRETURN\fP, the command \fIarg\fP is executed each time a shell function or a script executed with the \fB.\fP or \fBsource\fP builtins finishes executing. .if t .sp 0.5 .if n .sp 1 If a \fIsigspec\fP is .SM \fBERR\fP, the command \fIarg\fP is executed whenever a pipeline (which may consist of a single simple command), a list, or a compound command returns a non\-zero exit status, subject to the following conditions. The .SM \fBERR\fP trap is not executed if the failed command is part of the command list immediately following a \fBwhile\fP or \fBuntil\fP keyword, part of the test in an \fIif\fP statement, part of a command executed in a \fB&&\fP or \fB||\fP list except the command following the final \fB&&\fP or \fB||\fP, any command in a pipeline but the last, or if the command's return value is being inverted using \fB!\fP. These are the same conditions obeyed by the \fBerrexit\fP (\fB\-e\fP) option. .if t .sp 0.5 .if n .sp 1 Signals ignored upon entry to the shell cannot be trapped or reset. Trapped signals that are not being ignored are reset to their original values in a subshell or subshell environment when one is created. The return status is false if any \fIsigspec\fP is invalid; otherwise \fBtrap\fP returns true. .TP \fBtype\fP [\fB\-aftpP\fP] \fInombre\fP [\fInombre\fP ...] Sin opciones, indica cómo será interpretado cada \fInombre\fP si se usa como un nombre de orden. Si se emplea la opción \fB\-t\fP, \fBtype\fP muestra una de las siguientes cadenas de caracteres: \fIalias\fP, \fIkeyword\fP, \fIfunction\fP, \fIbuiltin\fP, o \fIfile\fP si \fInombre\fP es respectivamente un alias, una palabra reservada de la shell, una función, una orden interna incorporada en la shell, o un archivo ejecutable de disco. Si el \fInombre\fP no se encuentra, no se muestra nada, y se devuelve un estado de salida de `falso'. Si se emplea la opción \fB\-p\fP, \fBtype\fP devuelve o bien el nombre del archivo de disco que se ejecutaría si se especificara \fInombre\fP como un nombre de orden, o bien nada si .if t \f(CWtype -t name\fP .if n ``type -t name'' No devolvería \fIarchivo\fP. La opción \fB\-P\fP obliga a .SM \fBRUTA\fP a buscar cada \fInombre\fP aunque .if t \f(CWtype -t name\fP .if n ``type -t name'' would not return \fIfile\fP. If a command is hashed, \fB\-p\fP and \fB\-P\fP print the hashed value, which is not necessarily the file that appears first in .SM \fBPATH\fP. If the \fB\-a\fP option is used, \fBtype\fP prints all of the places that contain an executable named \fIname\fP. This includes aliases and functions, if and only if the \fB\-p\fP option is not also used. The table of hashed commands is not consulted when using \fB\-a\fP. The \fB\-f\fP option suppresses shell function lookup, as with the \fBcommand\fP builtin. \fBtype\fP returns true if all of the arguments are found, false if any are not found. .TP \fBulimit\fP [\fB\-HS\fP] \fB\-a\fP .PD 0 .TP \fBulimit\fP [\fB\-HS\fP] [\fB\-bcdefiklmnpqrstuvxPRT\fP [\fIlímite\fP]] .PD Provides control over the resources available to the shell and to processes started by it, on systems that allow such control. The \fB\-H\fP and \fB\-S\fP options specify that the hard or soft limit is set for the given resource. A hard limit cannot be increased by a non\-root user once it is set; a soft limit may be increased up to the value of the hard limit. If neither \fB\-H\fP nor \fB\-S\fP is specified, both the soft and hard limits are set. The value of \fIlimit\fP can be a number in the unit specified for the resource or one of the special values \fBhard\fP, \fBsoft\fP, or \fBunlimited\fP, which stand for the current hard limit, the current soft limit, and no limit, respectively. If \fIlimit\fP is omitted, the current value of the soft limit of the resource is printed, unless the \fB\-H\fP option is given. When more than one resource is specified, the limit name and unit, if appropriate, are printed before the value. Other options are interpreted as follows: .RS .PD 0 .TP \fB\-a\fP Se informa de todos los límites actuales; no se configura ninguno .TP \fB\-b\fP El tamaño máximo de buffer del conector .TP \fB\-c\fP El tamaño máximo de archivo de volcados de memoria (core) .TP \fB\-d\fP El tamaño máximo del segmento de datos de un proceso .TP \fB\-e\fP La máxima prioridad de ejecución ("nice") .TP \fB\-f\fP El tamaño máximo de los archivos creados por la shell y sus descendientes .TP \fB\-i\fP El número máximo de señales pendientes .TP \fB\-k\fP El número máxima de kqueues que se pueden acomodar .TP \fB\-l\fP El tamaño máximo que puede ser bloqueado en memoria .TP \fB\-m\fP El tamaño máximo de memoria residente (la mayoría de sistemas no tiene en cuenta este valor) .TP \fB\-n\fP EL número máximo de descriptores de archivos abiertos (la mayoría de sistemas no permiten establecer este valor) .TP \fB\-p\fP El tamaño de una tubería en bloques de 512 B (esto puede no estar establecido) .TP \fB\-q\fP El número máximo de bytes en la cola de mensajes POSIX .TP \fB\-r\fP La máxima prioridad de ejeución en tiempo real. .TP \fB\-s\fP El tamaño máximo de pila .TP \fB\-t\fP La máxima cantidad de tiempo de CPU en segundos .TP \fB\-u\fP El número máximo de procesos disponibles para un solo usuario .TP \fB\-v\fP La máxima cantidad de memoria virtual disponible para la shell y, en algunos sistemas, para sus descendientes. .TP \fB\-x\fP La cantidad máxima de bloqueos de archivo .TP \fB\-P\fP The maximum number of pseudoterminals .TP \fB\-R\fP El tiempo máximo, en microsegundos, que puede ejecutarse un proceso en tiempo real antes de bloquearse. .TP \fB\-T\fP La cantidad máxima de hilos .PD .PP If \fIlimit\fP is given, and the \fB\-a\fP option is not used, \fIlimit\fP is the new value of the specified resource. If no option is given, then \fB\-f\fP is assumed. Values are in 1024\-byte increments, except for \fB\-t\fP, which is in seconds; \fB\-R\fP, which is in microseconds; \fB\-p\fP, which is in units of 512\-byte blocks; \fB\-P\fP, \fB\-T\fP, \fB\-b\fP, \fB\-k\fP, \fB\-n\fP, and \fB\-u\fP, which are unscaled values; and, when in posix mode, \fB\-c\fP and \fB\-f\fP, which are in 512\-byte increments. The return status is 0 unless an invalid option or argument is supplied, or an error occurs while setting a new limit. .RE .TP \fBumask\fP [\fB\-p\fP] [\fB\-S\fP] [\fImodo\fP] La máscara de creación de archivos del usuario se establece a \fImodo\fP. Si \fImodo\fP empieza con un dígito, se interpreta como un número octal; si no, se interpreta como un modo simbólico similar al aceptado por \fIchmod\fP(1). Si \fImodo\fP se omite, se muestra el valor actual de la máscara. La opción \fB\-S\fP hace que la máscara se imprima en forma simbólica; la salida predeterminada es como un número octal. Si se da la opción \fB\-p\fP y \fImodo\fP se omite, la salida es de tal forma que puede reutilizarse como entrada. El estado de retorno es 0 si el modo se cambió exitosamente o si no se dio el argumento \fImodo\fP, y `falso' en otra circunstancia. .TP \fBunalias\fP [\-\fBa\fP] [\fInombre\fP ...] Quita cada \fInombre\fP de la lista de alias definidos. Si se da la opción \fB\-a\fP, se quitan todas las definiciones de alias. El estado de salida es `verdad' a menos que un \fInombre\fP dado no sea un alias definido. .TP \fBunset\fP [\-\fBfv\fP] [\-\fBn\fP] [\fInombre\fP ...] For each \fIname\fP, remove the corresponding variable or function. If the \fB\-v\fP option is given, each \fIname\fP refers to a shell variable, and that variable is removed. Read\-only variables may not be unset. If \fB\-f\fP is specified, each \fIname\fP refers to a shell function, and the function definition is removed. If the \fB\-n\fP option is supplied, and \fIname\fP is a variable with the \fInameref\fP attribute, \fIname\fP will be unset rather than the variable it references. \fB\-n\fP has no effect if the \fB\-f\fP option is supplied. If no options are supplied, each \fIname\fP refers to a variable; if there is no variable by that name, a function with that name, if any, is unset. Each unset variable or function is removed from the environment passed to subsequent commands. If any of .SM \fBBASH_ALIASES\fP, .SM \fBBASH_ARGV0\fP, .SM \fBBASH_CMDS\fP, .SM \fBBASH_COMMAND\fP, .SM \fBBASH_SUBSHELL\fP, .SM \fBBASHPID\fP, .SM \fBCOMP_WORDBREAKS\fP, .SM \fBDIRSTACK\fP, .SM \fBEPOCHREALTIME\fP, .SM \fBEPOCHSECONDS\fP, .SM \fBFUNCNAME\fP, .SM \fBGROUPS\fP, .SM \fBHISTCMD\fP, .SM \fBLINENO\fP, .SM \fBRANDOM\fP, .SM \fBSECONDS\fP, or .SM \fBSRANDOM\fP are unset, they lose their special properties, even if they are subsequently reset. The exit status is true unless a \fIname\fP is readonly or may not be unset. .TP \fBwait\fP [\fB\-fn\fP] [\fB\-p\fP \fInombrevariable\fP] [\fIid ...\fP] Wait for each specified child process and return its termination status. Each \fIid\fP may be a process ID or a job specification; if a job spec is given, all processes in that job's pipeline are waited for. If \fIid\fP is not given, \fBwait\fP waits for all running background jobs and the last\-executed process substitution, if its process id is the same as \fB$!\fP, and the return status is zero. If the \fB\-n\fP option is supplied, \fBwait\fP waits for a single job from the list of \fIid\fPs or, if no \fIid\fPs are supplied, any job, to complete and returns its exit status. If none of the supplied arguments is a child of the shell, or if no arguments are supplied and the shell has no unwaited\-for children, the exit status is 127. If the \fB\-p\fP option is supplied, the process or job identifier of the job for which the exit status is returned is assigned to the variable \fIvarname\fP named by the option argument. The variable will be unset initially, before any assignment. This is useful only when the \fB\-n\fP option is supplied. Supplying the \fB\-f\fP option, when job control is enabled, forces \fBwait\fP to wait for \fIid\fP to terminate before returning its status, instead of returning when it changes status. If \fIid\fP specifies a non\-existent process or job, the return status is 127. If \fBwait\fP is interrupted by a signal, the return status will be greater than 128, as described under \fBSIGNALS\fP .ie \n(zZ=1 in \fIbash(1)\fP. .el above. De otro modo, el estado devuelto es el estado de salida del último proceso o tarea por la que se está esperando. .SH "MODO DE COMPATIBILIDAD DE LA SHELL" En Bash\-4.0 se introdujo el concepto de \fInivel de compatibilidad de la shell\fP definido como una serie de opciones de la orden nativa shopt (\fBcompat31\fP, \fBcompat32\fP, \fBcompat40\fP, \fBcompat41\fP y así sucesivamente). Estas opciones son mutuamente excluyentes ya que sólo puede haber un nivel de compatibilidad a la vez. Este nivel de compatibilidad permite a los usuarios seleccionar la forma de actuar de alguna versión anterior \-incompatible con la actual\- mientras adapta los scripts para que puedan ejecutarse en la versión actual. Sólo pretende ser una solución temporal. .PP En esta sección no se mencionan funciones estándares en una determinada versión. Por ejemplo: al indicar \fBcompat32\fP provocará que al entrecomillar el rhs del operador de una expresión regular también entrecomilla caracteres especiales de expresión regular en la palabra, siendo éste el comportamiento por defecto de las versiones 3.2 y superiores. .PP If a user enables, say, \fBcompat32\fP, it may affect the behavior of other compatibility levels up to and including the current compatibility level. The idea is that each compatibility level controls behavior that changed in that version of \fBbash\fP, but that behavior may have been present in earlier versions. For instance, the change to use locale\-based comparisons with the \fB[[\fP command came in bash\-4.1, and earlier versions used ASCII\-based comparisons, so enabling \fBcompat32\fP will enable ASCII\-based comparisons as well. That granularity may not be sufficient for all uses, and as a result users should employ compatibility levels carefully. Read the documentation for a particular feature to find out the current behavior. .PP En Bash\-4.3 se introdujo una nueva variable de la shell: .SM \fBBASH_COMPAT\fP. El valor asignado a esta variable (un número decimal como 4.2 o un entero que correspondería a la opción \fBcompat\fP\fINN\fP como por ejemplo: 42) determinará el nivel de compatibilidad. .PP A partir de la versión 4.4, Bash comenzó a extinguir los antiguos niveles de compatibilidad. En algún momento, se eliminarán empleándose .SM \fBBASH_COMPAT\fP en su lugar. .PP Bash\-5.0 es la última versión que incluye una opción de shopt para la versión anterior. A partir de la versión Bash\-5.0, será necesario emplear .SM \fBBASH_COMPAT\fP. .PP The following table describes the behavior changes controlled by each compatibility level setting. The \fBcompat\fP\fINN\fP tag is used as shorthand for setting the compatibility level to \fINN\fP using one of the following mechanisms. For versions prior to bash\-5.0, the compatibility level may be set using the corresponding \fBcompat\fP\fINN\fP shopt option. For bash\-4.3 and later versions, the .SM \fBBASH_COMPAT\fP variable is preferred, and it is required for bash\-5.1 and later versions. .TP \fBcompat31\fP .PD 0 .RS .IP \(bu quoting the rhs of the \fB[[\fP command's regexp matching operator (=~) has no special effect .RE .PD .TP \fBcompat32\fP .PD 0 .RS .IP \(bu interrupting a command list such as "a ; b ; c" causes the execution of the next command in the list (in bash\-4.0 and later versions, the shell acts as if it received the interrupt, so interrupting one command in a list aborts the execution of the entire list) .RE .PD .TP \fBcompat40\fP .PD 0 .RS .IP \(bu the \fB<\fP and \fB>\fP operators to the \fB[[\fP command do not consider the current locale when comparing strings; they use ASCII ordering. Bash versions prior to bash\-4.1 use ASCII collation and \fIstrcmp\fP(3); bash\-4.1 and later use the current locale's collation sequence and \fIstrcoll\fP(3). .RE .PD .TP \fBcompat41\fP .PD 0 .RS .IP \(bu in \fIposix\fP mode, \fBtime\fP may be followed by options and still be recognized as a reserved word (this is POSIX interpretation 267) .IP \(bu in \fIposix\fP mode, the parser requires that an even number of single quotes occur in the \fIword\fP portion of a double\-quoted parameter expansion and treats them specially, so that characters within the single quotes are considered quoted (this is POSIX interpretation 221) .RE .PD .TP \fBcompat42\fP .PD 0 .RS .IP \(bu the replacement string in double\-quoted pattern substitution does not undergo quote removal, as it does in versions after bash\-4.2 .IP \(bu in posix mode, single quotes are considered special when expanding the \fIword\fP portion of a double\-quoted parameter expansion and can be used to quote a closing brace or other special character (this is part of POSIX interpretation 221); in later versions, single quotes are not special within double\-quoted word expansions .RE .PD .TP \fBcompat43\fP .PD 0 .RS .IP \(bu no emite un mensaje de advertencia si se intenta emplear un grupo entrecomillado como argumento de 'declare' (declare \-a foo=\(aq(1 2)\(aq). Las versiones posteriores emiten dicho mensaje advirtiendo que está en desuso. .IP \(bu los errores en la expansión de palabras no se consideran fatales para que la orden no se ejecute incluso en modo posix (por defecto, se emite un error fatal haciendo que la shell pare su ejecución). .IP \(bu when executing a shell function, the loop state (while/until/etc.) is not reset, so \fBbreak\fP or \fBcontinue\fP in that function will break or continue loops in the calling context. Bash\-4.4 and later reset the loop state to prevent this .RE .PD .TP \fBcompat44\fP .PD 0 .RS .IP \(bu la shell define los valores de .SM \fBBASH_ARGV\fP y .SM \fBBASH_ARGC\fP para que puedan expandirse en los parámetros posicionales aunque no esté activo el modo ampliado de depuración. .IP \(bu una subshell hereda los bucles del contexto de su antecesor, así \fBbreak\fP o \fBcontinue\fP hacen terminar su ejecución. En la versión 5.0 y posteriores, se reinicia el estado del bucle para evitarlo. .IP \(bu las asignaciones de variables que precenden órdenes nativas como \fBexport\fP y \fBreadonly\fP que definen atributos siguen influyendo en las variables con el mismo nombre en el entorno en que se invocaron aunque la shell no esté en modo posix. .RE .PD .TP \fBcompat50\fP .PD 0 .RS .IP \(bu Bash\-5.1 changed the way .SM \fB$RANDOM\fP is generated to introduce slightly more randomness. If the shell compatibility level is set to 50 or lower, it reverts to the method from bash\-5.0 and previous versions, so seeding the random number generator by assigning a value to .SM \fBRANDOM\fP will produce the same sequence as in bash\-5.0 .IP \(bu If the command hash table is empty, bash versions prior to bash\-5.1 printed an informational message to that effect, even when producing output that can be reused as input. Bash\-5.1 suppresses that message when the \fB\-l\fP option is supplied. .RE .PD .TP \fBcompat51\fP .PD 0 .RS .IP \(bu La orden nativa \fBunset\fP gestiona de modo distinto los intento de desactivar los subíndices de un vector \fB@\fP y \fB*\fP según se trate de un vector asociativo o indexado, también difiere respecto de anteriores versiones. .RE .PD .if \n(zZ=1 .ig zZ .\" bash_builtins .SH "SHELL RESTRINGIDA" .\" rbash.1 .zY .PP Si \fBbash\fP se arranca con el nombre \fBrbash\fP, o se da la opción \fB\-r\fP en la llamada, la shell se convierte en restringido. Una shell restringida se emplea para establecer un entorno más controlado que el que la shell estándar proporciona. Se comporta de forma idéntica a \fBbash\fP con la excepción de que lo siguiente no está permitido o no se realiza: .IP \(bu cambiar de directorio con \fBcd\fP .IP \(bu define o elimina los valores de .SM \fBSHELL\fP, .SM \fBPATH\fP, .SM \fBHISTFILE\fP, .SM \fBENV\fP, o .SM \fBBASH_ENV\fP .IP \(bu especificar nombres de órdenes que contengan \fB/\fP .IP \(bu especificar un nombre de archivo que contenga al menos una \fB/\fP como un argumento de la orden interna \fB.\fP (\fBsource\fP) .IP \(bu especificar un nombre de archivo que contenga al menos una barra como argumento de la orden interna \fBhistory\fP .IP \(bu especificar un nombre de archivo que contenga al menos una barra como argumento de la orden interna \fBhash\fP .IP \(bu importar definiciones de funciones desde el entorno de la shell en el arranque .IP \(bu analizar el valor de .SM \fBSHELLOPTS\fP desde el entorno de la shell en el arranque .IP \(bu redirigir la salida usando los operadores de redirección >, >|, <>, >&, &>, y >> .IP \(bu utiliza la orden nativa \fBexec\fP para reemplazar la shell por otro programa .IP \(bu añadir o eliminar órdenes incorporadas con las opciones \fB\-f\fP o \fB\-d\fP de la orden interna \fBenable\fP. .IP \(bu utilizar la orden interna \fBenable\fP para activar órdenes internas de la shell inactivas. .IP \(bu dar la opción \fB\-p\fP a la orden interna \fBcommand\fP. .IP \(bu desactivar el modo restringido con \fBset +r\fP o \fBshopt \-u restricted_shell\fP. .PP Estas restricciones entran en vigor después de que se lean los archivos de arranque que hubiera. .PP .ie \n(zY=1 When a command that is found to be a shell script is executed, .el \{ When a command that is found to be a shell script is executed (see .SM .B "COMMAND EXECUTION" above), \} \fBrbash\fP desactiva todas las restricciones en la shell lanzado para ejecutar el guión. .if \n(zY=1 .ig zY .\" end of rbash.1 .SH "VÉASE TAMBIÉN" .PD 0 .TP \fIBash Reference Manual\fP, Brian Fox y Chet Ramey .TP \fIThe Gnu Readline Library\fP (La Biblioteca Readline de GNU), Brian Fox & Chet Ramey .TP \fIThe Gnu History Library\fP (La Biblioteca de Historia de GNU), Brian Fox & Chet Ramey .TP \fIPortable Operating System Interface (POSIX) Part 2: Shell and Utilities\fP (Interfaz para Sistemas Operativos Portables (POSIX) Parte 2: Shell y Utilidades), IEEE \-\- http://pubs.opengroup.org/onlinepubs/9699919799/ .TP http://tiswww.case.edu/~chet/bash/POSIX \-\- descripción del modo posix .TP \fIsh\fP(1), \fIksh\fP(1), \fIcsh\fP(1) .TP \fIemacs\fP(1), \fIvi\fP(1) .TP \fIreadline\fP(3) .PD .SH ARCHIVOS .PD 0 .TP .FN /bin/bash La imagen ejecutable de \fBbash\fP .TP .FN /etc/profile El archivo de inicio general, leído en shells de inicio .TP .FN /etc/bash.bashrc Archivo global de inicio para shells interactivos .TP .FN /etc/bash.bash.logout El archivo global que se ejecuta cuando se sale de la shell .TP .FN ~/.bash_profile El archivo de inicio personal, leído en shells de inicio .TP .FN ~/.bashrc El archivo individual de inicio para shells interactivos .TP .FN ~/.bash_logout El archivo de limpieza de inicio personal, ejecutado cada vez que termina una shell de inicio .TP .FN ~/.bash_history Valor por defecto de \fBHISTFILE\fP, el archivo donde bash guarda el historial de órdenes .TP .FN ~/.inputrc El archivo de inicio individual de \fIreadline\fP .PD .SH AUTORES Brian Fox, Free Software Foundation .br bfox@gnu.org .PP Chet Ramey, Case Western Reserve University .br chet.ramey@case.edu .SH "INFORMES DE FALLOS" Si Ud. encuentra un fallo en \fBbash,\fP debería informar de ello. Pero primero debería asegurarse de que realmente es un fallo, y de que aparece en la versión más reciente de \fBbash\fP. Dicha versión siempre está disponible en \fIftp://ftp.gnu.org/pub/gnu/bash/\fP y en \fIhttp://git.savannah.gnu.org/cgit/bash.git/snapshot/bash\-master.tar.gz\fP. .PP Una vez que Ud. ha determinado que realmente existe un fallo, utilice la orden \fIbashbug\fP para enviar el informe correspondiente. Si Ud. ha encontrado cómo corregirlo, ¡se le anima a que nos mande también la corrección! Las sugerencias y los informes de fallos `filosóficos' se pueden enviar por correo electrónico a \fIbug\-bash@gnu.org\fP o se pueden publicar en el grupo de discusiones de Usenet \fBgnu.bash.bug\fP. .PP TODOS los informes de fallos deben incluir: .PP .PD 0 .TP 20 El número de versión de \fBbash\fP .TP El tipo de equipo (hardware) y el sistema operativo .TP El compilador que se empleó para compilarlo .TP Una descripción del comportamiento del fallo .TP Un breve script o 'receta' para reproducir el fallo .PD .PP \fIbashbug\fP inserta automáticamente los tres primeros puntos en la plantilla que proporciona para escribir el informe del fallo. .PP Los comentarios e informes de fallos que conciernan a esta página de manual deben dirigirse a \fIchet.ramey@case.edu\fP. .SH ERRORES Es demasiado grande y demasiado lento. .PP Hay algunas sutiles diferencias entre \fBbash\fP y versiones tradicionales del shell de Bourne \fBsh\fP, mayormente debidas a la especificación .SM \fBPOSIX\fP. .PP Los alias son confusos en algunos casos. .PP Las órdenes nativas de la shell y las funciones no son interrumpibles/reiniciables. .PP Las órdenes compuestas y las secuencias de órdenes de la forma `a ; b ; c' no se manejan de forma muy elegante cuando se intenta suspender el proceso. Cuando se detiene un proceso, la shell ejecuta inmediatamente la siguiente orden de la secuencia. Para remediar esto es suficiente poner la secuencia de órdenes entre paréntesis; así la forzamos a ejecutarse en una subshell, que puede detenerse como una unidad. .PP Las variables de tipo vector no pueden (de momento) exportarse. .PP Solo puede haber un coproceso activo a la vez. .zZ .zY .PP .SH TRADUCCIÓN La traducción al español de esta página del manual fue creada por Gerardo Aburruzaga García y Marcos Fouces . .PP Esta traducción es documentación libre; lea la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. .PP Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a .MT debian-l10n-spanish@lists.debian.org .ME .