Provided by: manpages-es_4.18.1-1_all bug

NOMBRE

       bash - GNU Bourne-Again SHell (la shell de Bourne otra vez, de GNU)

SINOPSIS

       bash [opciones] [orden | achivo]

COPYRIGHT

       Bash is Copyright (C) 1989-2022 by the Free Software Foundation, Inc.

DESCRIPCIÓN

       Bash  es  un  intérprete  de  lenguage  de  script  compatible  con sh que ejecuta órdenes
       recibidas  desde  la  entrada  estándar  o  desde  un  archivo.   Bash  también  incorpora
       funcionalidades tomadas de otras shell como Korn y C (ksh y csh).

       Bash  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).  Bash  puede
       configurarse para ser conforme a POSIX por defecto.

OPCIONES

       La shell puede ejecutarse con cualquiera de las opciones descritas en la descripción de la
       orden interna set, incluso la opcion -o.  Además, bash tambień interpreta  las  siguientes
       opciones cuando se ejecuta:

       -c        Con  la  opción -c, las órdenes se empiezan a leer a partir del primer argumento
                 orden que no sea una opción. Si hay algún argumento después de orden, el primero
                 de  ellos  se  asignará  a  $0  y  el  resto  a  los parámetros posicionales. La
                 asignacióna $0 define el nombre de la shell que se  usará  en  los  mensajes  de
                 error y avisos.
       -i        Si la opción -i está presente, la shell es interactivo.
       -l        Hace  que  bash  actúe  como  si se le hubiera llamado como una shell de entrada
                 (consulte LLAMADA más adelante).
       -r        Si la opción -r está presente, entonces la shell se  pone  en  modo  restringido
                 (consulte SHELL RESTRINGIDA más adelante).
       -s        Si  la  opción  -s 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.
       -v        Repite en la salida las líneas de entrada de la shell tras leerlas.
       -x        Muestra las órdenes y sus argumentos a medida que se ejecutan.
       -D        Se  muestra  en  la  salida  estándar  una  lista  de  cadenas   de   caracteres
                 entrecomilladas  precedidas  por  $.   Estas cadenas son las que están sujetas a
                 traducción cuando la localización en curso  no  es  C  ni  POSIX.   Esta  opción
                 implica también la -n; no se ejecuta ninguna orden.
       [-+]O [opción_shopt]
                 opción_shopt  representa  una de las opciones de la shell aceptadas por la orden
                 nativa shopt (consulte ÓRDENES NATIVAS DE LA  SHELL  a  continuación).  Si  está
                 presente  opción_shopt,  -0  definirá  el valor de dicha opción y +0 anulará esa
                 definición. Si no está presente opción_shopt, se muestran en pantalla una  lista
                 con  los nombres y los valores de las opciones aceptadas por shopt. Si se invoca
                 con la opción +0, se muestra una lista apta para su reutilización.
       --        Un -- señala el fin de las opciones e inhabilita cualquier  posterior  procesado
                 de  opciones. Cualesquier argumentos tras -- se tratan como nombres de fichero y
                 argumentos. Un argumento - es equivalente a --.

       Bash 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.

       --debugger
              Ejecuta el depurador antes del inicio de la shell. Activa  el  modo  de  depuración
              ampliado  (consulte la descripción de la opción extdebug de la orden nativa shopt a
              continuación).
       --dump-po-strings
              Equivalente a -D, pero la salida  es  en  el  formato  de  un  fichero  po  (objeto
              portable), del gettext de GNU.
       --dump-strings
              Equivalente a -D.
       --help Muestra un mensaje de ayuda y termina.
       --init-file archivo
       --rcfile archivo
              Ejecuta órdenes desde archivo en vez de hacerlo desde el archivo de inicio estándar
              /etc/bash.bashrc y el personal en ~/.bashrc si la shell  es  interactiva  (consulte
              LLAMADA más adelante).

       --login
              Equivale a -l.

       --noediting
              No  utiliza  la  biblioteca  de  GNU  readline  para leer líneas de órdenes en modo
              interactivo.

       --noprofile
              No lee ni el fichero de arranque de sistema /etc/profile ni ninguno de los ficheros
              de  inicio  personales ~/.bash_profile, ~/.bash_login, ni ~/.profile.  Por omisión,
              bash lee estos ficheros cuando se le llama como una shell de entrada  (vea  LLAMADA
              más adelante).

       --norc No  lee  ni ejecuta el archivo de inicio general /etc/bash.bashrc ni el personal de
              cada usuario en ~/.bashrc si la shell es interactiva. Esta opción  está  activa  de
              forma predeterminada si se ejecutó la shell mediante sh.

       --posix
              Cambia  el  comportamiento  de  bash  cuando el funcionamiento difiera del estándar
              POSIX 1003.2, de forma que concuerde con éste(posix mode). Consulte  VEASE  TAMBIÉN
              más  delante  si  quiere  leer un documento donde se detalla la influencia del modo
              posix sobre el funcionamiento de bash.

       --restricted
              la shell se pone en modo restringido (consulte SHELL RESTRINGIDA más adelante).

       --verbose
              Equivale a -v.

       --version
              Muestra información acerca de la versión de esta instancia de bash y finaliza.

ARGUMENTOS

       Si quedan argumentos tras el procesado de las opciones, y no se han dado ni la  opción  -c
       ni  la  -s,  se  supondrá  que el primer argumento es el nombre de un archivo que contiene
       órdenes de la shell.  Si bash se llama de esta manera, $0 se  define  con  el  nombre  del
       archivo,  y los parámetros posicionales se definen con los restantes argumentos.  Bash lee
       y ejecuta órdenes de este archivo y después finaliza.  El estado de salida de bash  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 PATH para el
       script.

LLAMADA

       Una shell de entrada es aquella cuyo primer carácter del argumento cero es un -, o que  ha
       sido llamada con la opción --login.

       Una  shell  interactiva es aquella que se inició sin argumentos sin opciones (salvo que se
       especifique -s) y sin la opción -c cuya  entrada  y  error  estandar  están  conectadas  a
       terminales  (según  se determina en isatty(3)), o uno iniciado con la opción -i.  PS1 está
       definido y $- incluye i si bash es interactivo, permitiendo así a un script de shell  o  a
       un archivo de inicio la comprobación de este estado.

       Los siguientes párrafos describen cómo bash ejecuta sus archivos de inicio.  Si cualquiera
       de los archivo existe pero no puede leerse, bash informa de un error.  Las tildes de la  ñ
       se  expanden en nombres de archivos como se describe más adelante en Expansión de la tilde
       en la sección EXPANSIÓN.

       Cuando bash se llama como una shell de entrada interactiva, primero lee y ejecuta  órdenes
       desde  el  archivo  /etc/profile,  si  es  que  existe.   Tras  leer este archivo, buscará
       ~/.bash_profile, ~/.bash_login, y ~/.profile, en ese orden,  ejecutando  las  órdenes  del
       primero de ellos que exista y se pueda leer. La opción --noprofile evitará estas acciones.

       Cuando  una shell de entrada termina o una shel de entrada no interactiva ejecuta la orden
       natia exit,  bash ejecutará las órdenes contenidas en ~/.bash_logout, si existiese.

       Cuando se inicia una shell interactiva no de inicio, bash lee y ejecuta  las  órdenes  que
       encuentra  en  ~/.bashrc, si existiese. Esto puede evitarse mediante la opción --norc.  La
       opción --rcfile archivo forzará a bash a leer y ejecutar órdenes desde archivo en lugar de
       hacerlo desde ~/.bashrc.

       Cuando bash se arranque de forma no interactiva, por ejemplo para ejecutar un script de la
       shell, busca la variable BASH_ENV en el entorno, expande su  valor  si  está  definida,  y
       utiliza  el  valor  expandido  como  el  nombre  de un fichero a leer y ejecutar.  Bash se
       comporta como si se ejecutaran las siguientes órdenes:
              if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
       pero el valor de la variable PATH no se emplea para buscar el nombre del fichero.

       Si bash se ejecuta con con el nombre sh, intentará imitar el comportamiento de arranque de
       versiones  antiguas  de  sh  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  /etc/profile  y  ~/.profile, en ese orden. La opción --noprofile anulará esta
       acción. Cuando se ejecuta como una shell interactiva con  el  nombre  sh,  bash  busca  la
       variable  ENV,  expande  su  valor  si  está definida, y emplea el valor expandido como el
       nombre de un archivo a ejecutar. Como una shell llamada  como  sh  no  intentará  ejecutar
       órdenes  desde  cualquier  otro archivo de inicio, la opción --rcfile no tiene efecto. Una
       shell no interactivo llamada con el nombre sh no intenta leer ningún  fichero  de  inicio.
       Cuando se llama como sh, bash entra en modo posix después de leer los ficheros de inicio.

       Cuando  bash  se  arranca  en  modo  posix, como ocurre cuando se da la opción de línea de
       órdenes --posix, sigue el estándar POSIX para los ficheros de arranque.  En este modo, los
       shells interactivos expanden la variable ENV 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.

       Bash  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  rshd  o
       sshd.  Si  bash  determina  que  está siendo ejecutado de este modo, lee y ejecuta órdenes
       desde /etc/bash.bashrc y ~/.bashrc, si existen y tienen permiso de lectura.   Esto  no  lo
       hará  si  se  ejecuta  mediante la orden sh. La opción --norc puede emplearse para inhibir
       este comportamiento, y la opción --rcfile puede utilizarse para forzar la lectura de  otro
       archivo,  pero  ni rshd, ni sshd suelen invocar la shell con estas opciones ni permitir su
       uso.

       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 -p, 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  SHELLOPTS,  BASHOPTS,  CDPATH  y  GLOBIGNORE y el id de usuario
       efectivo será el mismo del usuario real. Si se indica la opción -p, se hará lo mismo salvo
       que el id de usuario efectivo no se cambia.

DEFINICIONES

       Las siguientes definiciones se usan a través del resto de este documento.
       blanco Un espacio en blanco o tabulación (tab).
       palabra
              Una  secuencia  de  caracteres  considerados  por  la  shell  como una sola unidad.
              También se conoce como un lexema (token).
       nombre Una palabra que consiste solamente en  caracteres  alfanuméricos  y  subrayados,  y
              comienza con un carácter alfabético o un subrayado. También se llama identificador.
       metacarácter
              Un  carácter  que,  cuando  no  está  entrecomillado,  separa  palabras. Uno de los
              siguientes:
              |  & ; ( ) < > space tab newline
       operador de control
              Un lexema que realiza una función de control. Es uno de los siguientes símbolos:
              || & && ; ;; ;& ;;& ( ) | |& <newline>

PALABRAS RESERVADAS

       Las Palabras reservadas 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 GRAMÁTICA  DE  LA  SHELL  a  continuación)  o  la
       tercera  palabra de una orden case o select (solo sería válido in) o de la orden for (solo
       in y do serían válidos):

       ! case  coproc  do done elif else esac fi for function if in select then until while  {  }
       time [[ ]]

GRAMÁTICA DE LA SHELL

       Esta sección describe la sintaxis de diversas formas de órdenes de la shell.

   Órdenes simples
       Una  orden  simple  es  una  secuencia de asignaciones opcionales de variables seguida por
       palabras separadas por blancos y redirecciones, y terminadas por un operador  de  control.
       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.

       El valor devuelto de una orden simple es su estado de salida,  ó  128+n  si  la  orden  ha
       terminado debido a la señal n.

   Tuberías
       Una  tubería  es una secuencia de una o más órdenes separadas por uno de los operadores de
       control | o |&.  El formato de una tubería es:

              [time [-p]] [ ! ] orden1 [ [||&] orden2 ... ]

       La salida estándar de orden1 está conectada mediante una tubería a la entrada estándar  de
       orden2.  Dicha  conexión  se  reliza  antes  de cualquier redirección que defina la orden1
       (consulte REDIRECCIÓN más adelante). Si se emplea |& la salida de error estándar de orden1
       también se conectará a la entrada estándar de orden2 junto con su salida estándar a través
       de la tubería; esto es una abreviatura de  2>&1 |. 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 orden1.

       El estado de salida de una tubería será el de la última orden salvo que la opción pipefail
       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  !,  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.

       Si  la palabra reservada time 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  -p cambia el formato de salida al especificado por POSIX. Cuando la
       shell está en modo posix, no reconoce time como palabra reservada si el siguiente conjunto
       de  opciones  comienza  por  "-".  La variable TIMEFORMAT puede definir la forma en que se
       muestran las temporizaciones. Consulte TIMEFORMAT en el apartado Variables de la Shell.

       Cuando la shell está en modo posix, time 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  TIMEFORMAT  para  definir  el  formato  de  la
       información de tiempo.

       Cada  orden que forme parte de una tubería se ejecuta en un proceso separado, es decir, en
       una subshell. Consulte ENTORNO DE EJECUCIÓN DE ÓRDENES si precisa información  acerca  del
       entorno  en  una  subshell.  Si  la opción lastpipe está activada mediante la orden nativa
       shopt (vea la descripción de shopt 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.

   Listas
       Una lista es una secuencia de una o más tuberías separadas por uno de los operadores ;, &,
       &&, o ||, y terminada opcionalmente por uno de ;, &, o <nueva-línea>.

       De estos operadores de listas, && y || tienen igual precedencia. Le  siguen  ;  y  &,  que
       también tienen igual precedencia.

       Puede  aparece  uno  o  varios  saltos de línea en lugar de un punto y coma para delimitar
       órdenes en una lista

       Si una orden se termina mediante el operador de control &, la shell ejecuta  la  orden  en
       segundo  plano  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 asíncronas. Las órdenes separadas por un
       ;  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.

       Las listas AND y OR son secuencias formadas por una  o  más  tuberías  separadas  por  los
       operadores  de  control  &&  y  ||,  respectivamente.  Se  comienzan  a interpretar por la
       izquierda. Una lista AND tiene el siguiente formato:

              orden1 && orden2

       orden2 se ejecuta si y solo si orden1 devuelve un estado de salida 0.

       Una lista O tiene el siguiente formato

              orden1 || orden2

       orden2 se ejecuta si y solo si orden1 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.

   Órdenes Compuestas
       Una  orden compuesta es una de las siguientes. En la mayoría de los casos, una lista 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.

       (lista)
              lista  se  ejecuta  en  una  subshell (consulte ENTORNO DE EJECUCIÓN DE ÓRDENES 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 lista.

       { lista; }
              lista 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 grupo de órdenes. El estado de
              salida es el de lista. Observe que a diferencia de los metacaracteres (  y  ),  los
              metacaracteres  {  y  }  son  palabras  reservadas 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 lista mediante espacio o mediante otro metacarácter
              de la shell.

       ((expresión))
              La expresión se evalúa de acuerdo a las  reglas  descritas  más  adelante  bajo  la
              sección  EVALUACIÓN ARITMÉTICA. 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  expresión  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.

       [[ expresión ]]
              Devuelve un estado  de  0  o  1  dependiendo  de  la  evaluación  de  la  expresión
              condicional  expresión.  Las expresiones se componen de las primarias descritas más
              adelante en el apartado EXPRESIONES CONDICIONALES.  No  tienen  lugar  división  de
              palabras ni expansión de nombres de ruta en las palabras entre el [[ y el ]]; 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 -f para que sean reconocidos como primarios.

              Cuando se emplean con [[, los operadores < y > ordenan lexicográficamente en base a
              la configuración del idioma actual.

       Vea  la  descripción de la orden nativa test 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).

       Cuando se emplean los operadores == y !=, 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 Concordancia de patrones, tal como si estuviese activa la opción  extglob  de  la
       shell. El operador == equivale a =. Si está activada la opción nocasematch de la shell, se
       buscará la concordancia sin diferenciar entre mayúsculas y minúsculas. El  valor  devuelto
       es  0  si la cadena concuerda (==) o no concuerda (=0 )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.

       Dispone  de  otro operador binario: =~. Tiene la misma prevalencia que == y !=. Al usarlo,
       la cadena a la derecha se considerará una expresión regular ampliada  POSIX  y  concordada
       adecuadamente  (mediante  las interfaces POSIX regcomp y regexec generalmente descritas en
       regex(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 nocasematch 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.

       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 ^ y $.
       La  variable  vectorial  BASH_REMATCH  registra  la parte de la cadena que concordó con el
       patrón. El elemento de BASH_REMATCH 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 BASH_REMATCH donde el índice n es  la  parte
       de  la  cadena  que  concuerda  con  la  nésima subexpresión entre paréntesis. Bash define
       BASH_REMATCH con un alcance general, declararla como una variable local puede dar lugar  a
       resultados indeseados.

       Las  expresiones  pueden  combinarse mediante los siguientes operadores, listados en orden
       decreciente de precedencia:

              ( expresión )
                     Devuelve el valor de  expresión.   Esto  puede  emplearse  para  cambiar  la
                     precedencia normal de los operadores.
              ! expresión
                     Verdad si expresión es falsa.
              expresión1 && expresión2
                     Verdad si ambas expresión1 y expresión2 son verdaderas.
              expresión1 || expresión2
                     Verdad si una al menos de expresión1 o expresión2 es verdad.

              Los  operadores  &&  y  ||  no  evalúan  la expresión2 si el valor de expresión1 es
              suficiente para determinar el valor de retorno de toda la expresión condicional.

       for nombre [ [ in palabra ...; ] ] do lista ; done
              La lista de palabras que va detrás  de  in  se  expande,  generando  una  lista  de
              elementos.  La  variable  nombre  se  define como cada elemento de la lista en cada
              iteración, y lista se ejecuta cada vez. Si la palabra de in se omite, la orden  for
              ejecuta  lista  una  vez para cada parámetro posicional que esté definido (consulte
              PARÁMETROS 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 in resulta en una
              lista vacía, no se ejecuta ninguna orden y el estado de salida es 0.

       for (( expr1 ; expr2 ; expr3 )) ; do lista ; done
              Primeramente se evaluará la  expresión  aritmética  expr1  en  base  a  las  reglas
              definidas  más  adelante  en la sección EVALUACIÓN ARITMÉTICA. Después se evalúa la
              expresión expr2 repetidamente hasta que el resultado sea cero. Cada vez  que  expr2
              se  evalúe  con  un  resultado  diferente  a cero, se ejecutará lista y se evaluará
              expr3. 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 lista ejecutada o falso si alguna de las expresiones no es válida.

       select nombre [ in palabra ] ; do lista ; done
              La lista de palabras que sigue a in 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 palabra del in se omite,  se  muestran  los
              parámetros posicionales (consulte PARÁMETROS más adelante).  Entonces se muestra el
              indicador PS3 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
              nombre 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 select se completa y devuelve 1.
              Cualquier otro valor leída hace que nombre se defina como un valor vacío. La  línea
              leída se guarda en la variable REPLY. La lista se ejecuta tras cada selección hasta
              que se ejecute una orden break.  El estado de salida de select es el de  la  última
              orden ejecutada en lista o cero si no se ha ejecutado ninguna orden.

       case palabra in [ [(] patrón [ | patrón ] ... ) lista ;; ] ... esac
              Una orden case expandirá primero palabra y buscará si concuerda con cada uno de los
              patrones  en  base  a  las  reglas  de  concordancia  descritas  más  adelante   en
              Concordancia.  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 patrón 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 nocasematch, se  buscará  la  concordancia  sin  distinguir  entre
              mayúsculas  y  minúsculas. Cada vez que se encuentre una concordancia, se ejecutará
              la correspondiente lista. Si se emplea el  operador  ;;,  una  vez  encontrada  una
              concordancia,  no  se  seguirán  buscando  más.  Si se emplea ;& en lugar de ;;, la
              ejecución continuará con la lista asociada con el siguiente conjunto  de  patrones.
              Si  se utiliza ;;& en lugar de ;; hará que la shell pruebe el siguiente conjunto de
              patrones, si lo hubiese, ejecutando las listas 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 lista.

       if lista; then lista; [ elif lista; then lista; ] ... [ else lista; ] fi
              La lista if se ejecuta. Si su estado de salida es cero, se ejecuta la  lista  then.
              De  otro  modo,  se  ejecuta por turno cada lista elif, y si su estado de salida es
              cero, se ejecuta la lista then correspondiente y la orden se completa.  Si  no,  se
              ejecuta  la  lista  then  si  está presente. El estado de salida es el de la última
              orden ejecutada, o cero si ninguna condición fue verdadera.

       while lista-1; do lista-2; done
       until lista-1; do lista-2; done
              La orden while ejecuta continuamente la lista lista-2 siempre que la  última  orden
              de  lista-1  devuelva  un  estado  de  salida cero. La orden until es idéntica a la
              while, salvo que la comprobación es a la inversa: la lista-2  se  ejecuta  mientras
              que  la  última orden en lista-1 devuelva un estado de salida distinto de cero.  El
              estado de salida de las órdenes while y until es  el  de  la  última  orden  de  la
              lista-2 ejecutada, o cero si no se ejecutó ninguna orden.

   Coprocesos
       Un  coproceso  es  una  orden  de  la  shell  precedida de la palabra reservada coproc. Un
       coproceso se ejecuta de modo asíncrono en una subshell, de igual  modo  que  si  la  orden
       fuese seguida del operador de control &, con una tubería bidireccional entre la shell y el
       coproceso.

       La sintaxis de un coproceso es la siguiente:

              coproc [NOMBRE] orden [redirecciones]

       Esto creará un coproceso llamado NOMBRE. orden puede ser  un  orden  simple  o  compuesta.
       NOMBRE  será  una variable de la shell. Si no se da ningún NOMBRE, por defecto se asignará
       el de COPROC.

       El formato recomendado de un coproceso es el siguiente:

              coproc NOMBRE { orden [redirecciones]; }

       Esta forma es recomendable porque las ordenes simples harán que el  coproceso  siempre  se
       llame COPROC, siendo más sencillo su uso y más completo que las otras órdenes compuestas.

       Si  orden  es  una  orden  compuesta,  NOMBRE  será opcional. La palabra que siga a coproc
       determinará si dicha palabra debe  interpretarse  como  el  nombre  de  una  variable:  se
       considerará  como  el  valor  de  NOMBRE si no es una palabra reservada que introduzca una
       orden compuesta. Si orden es una orden simple, NOMBRE no está permitido; esto se hace para
       evitar confusiones entre NOMBRE y la primera palabra de la orden compuesta.

       Cuando  se  ejecuta  un coproceso, la shell crea una variable vectorial (consulte vectores
       más adelante) llamada NOMBRE dentro de la shell que lo  ejecuta.  La  salida  estándar  de
       orden  está unida a un descriptor de archivo de la shell mediante una tubería, asignándose
       éste a NOMBRE[0]. La entrada estándar de la orden  también  está  conectada  mediante  una
       tubería  a  otro  descriptor  de archivo de la shell asignado a NOMBRE[1]. Esta tubería se
       define antes de cualquier redirección definida en la  orden  (consulte  REDIRECCIONES  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.

       El identificador de proceso de la shell abierta para ejecutar el coproceso se almacena  en
       el  valor  de  la  variable NAME_PID. La orden nativa wait puede emplearse para esperar la
       finalización del coproceso.

       Como el coproceso se creó como una orden asíncrona, la  orden  coproc  siempre  tiene  una
       valor de salida de éxito. El valor de salida de un coproceso es el de orden.

   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:

       nombre_función () orden_incluida [redirección]
       function nombrefunción [()] orden-compuesta [redirección]
              Define  una función llama nombrefunción. La palabra reservada function es opcional,
              si se indica pueden omitirse los paréntesis. El cuerpo de la función será la  orden
              compuesta  (consulte  Órdenes  Compuestas más atrás). Esta orden suele consistir en
              una lista de órdenes entre { y }, pero puede ser cualquier orden  que  figure  bajo
              Órdenes  Compuestas  con  una  única  excepción:  si se emplea la palabra reservada
              function sin paréntesis, son recomendables las llaves. orden-compuesta se ejecutará
              siempre  y  cuando nombrefunción se especifique como el nombre de una orden simple.
              Si estamos en modo posix, nombrefunción deberá ser un nombre de shell válido  y  no
              podrá  ser  una  de  las  órdenes  nativas  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  $. 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 FUNCIONES más adelante.

COMENTARIOS

       En una shell no interactiva, o en una interactiva en el que la opción interactive_comments
       de  la orden nativa shopt está activa (consulte ÓRDENES NATIVAS DE LA SHELL más adelante),
       una palabra que empiece por # 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
       interactive_comments habilitada, no admite  comentarios.  La  opción  interactive_comments
       está activa por defecto en shells interactivas.

ENTRECOMILLADO

       El  entrecomillado  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.

       Cada uno de los metacaracteres listados a continuación bajo el epígrafe DEFINICIONES tiene
       un  significado especial para la shell y deben ser protegidos o entrecomillados si quieren
       referirse a sí mismos.

       Cuando se utilizan  la  funciones  de  expansión  de  historial  (consulte  EXPANSIÓN  DEL
       HISTORIAL  a  continuación),  tiene  que  entrecomillarse  el  carácter  de  expansión del
       historial, generalmente ! si se desea evitar dicha expansión.

       Existen tres métodos de entrecomillado: El carácter de escape, comillas simples y comillas
       dobles.

       Una  barra  inclinada inversa no entrecomillada (\) es el carácter de escape.  Preserva el
       valor literal del siguiente carácter que lo acompaña, con la excepción  de  <nueva-línea>.
       Si  aparece  un par \<nueva-línea> y la barra invertida no está ella misma entre comillas,
       el \<nueva-línea> se trata como una continuación de línea (esto es, se quita del flujo  de
       entrada y no se tiene efectivamente en cuenta).

       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.

       Encerrar  caracteres  entre  comillas  dobles  preserva  el  valor  literal  de  todos los
       caracteres de dentro de las comillas, con la excepción de $, `, y \,  si  está  activa  la
       expansión  del  historial,  también  !.  Cuando la shell está en modo posix, ! no tiene un
       significado especial si va entre dobles comillas  aunque  esté  activa  la  expansión  del
       historial.  Los  caracteres $ y ` 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: $, `, "", \, o <nueva-línea>.  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 ! entre comillas
       dobles se escape con una barra invertida. No se elimina la barra invertida si precede a !.

       Los parámetros especiales * y @ tienen un significado especial cuando están entre comillas
       dobles (consulte PARÁMETROS más adelante).

       Las secuencias de caracteres de la forma $'cadena' se consideran como una forma espcial de
       comillas simples. La secuencia se expande a cadena, con los caracteres de cadena 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:
              \a     alerta (pitido)
              \b     espacio-atrás
              \e
              \E     un carácter de escape (ESC)
              \f     nueva página
              \n     nueva linea
              \r     retorno de carro
              \t     tabulación horizontal
              \v     tabulación vertical
              \\     barra invertida
              \'     comillas simples
              \"     comillas dobles
              \?     signo de interrogación
              \nnn   el  carácter  de  8-bits  cuyo  código  es el valor octal nnn (de uno a tres
                     dígitos octales)
              \xHH   el carácter de 8-bits cuyo código es el valor  hexadecimal  HH  (uno  o  dos
                     dígitos hexadecimales)
              \uHHHH caŕácter  Unicode  (ISO/IEC  10646) cuyo valor hexadecimal es HHHH (de uno a
                     cuatro caracteres hexadecimales)
              \UHHHHHHHH
                     caŕácter Unicode (ISO/IEC 10646) cuyo valor hexadecimal es HHHHHHHH (de  uno
                     a ocho caracteres hexadecimales)
              \cx    un carácter de control -x

       El  resultado  de la expansión es entrecomillado con comillas simples, como si el signo de
       dólar no hubiera estado presente.

       Una cadena entre comillas dobles precedida por un signo de dólar ($"cadena") hará  que  la
       cadena  se  traduzca  según  la  localización  actual.gettext  buscará su traducción en el
       catálogo de mensajes mediante las variables  de  la  shell  LC_MESSAGES,  TEXTDOMAINDIR  y
       TEXTDOMAIN.  Si la localización actual es C o POSIX, 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  noexpand_translation  mediante  la
       orden  nativa  shopt,  las cadenas traducidas tendrán comillas simples en lugar de dobles.
       Consulte la descripción de shopt más adelante en el aprtado ÓRDENES NATIVAS DE LA SHELL.

PARÁMETROS

       Un parámetro es una entidad que almacena valores. Puede ser un nombre, un número, o uno de
       los  caracteres especiales listados a continuación bajo el epígrafe Parámetros especiales.
       Una variable es un parámetro que se denota mediante un nombre, puede  tener  un  valor  de
       cero  o  más  atributos.  Dichos  atributos  se  asigna  mediante  la orden nativa declare
       (consulte declare más adelante en la sección ÓRDENES NATIVAS DE LA SHELL).

       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  unset  (consulte  ÓRDENES  NATIVAS  DE  LA  SHELL  más
       adelante).

       A una variable se le puede asignar un valor mediante una sentencia de la forma

              nombre=[valor]

       Si  no  se  da  el valor, a la variable se asigna la cadena vacía. Todos los valores 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 EXPANSIÓN más adelante). Si la
       variable tiene activado su atributo integer entonces valor se evaluará como una  expresión
       aritmética  incluso  si  no se emplea la expansión $((...)) (consulte Expansión aritmética
       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 alias,
       declare, typeset, export, readonly y local (órdenes de declaración). En modo  posix  estas
       órdenes  nativas  puede  aparecer en una orden después de una o más instancias de la orden
       nativa y mantener las propiedades de la asignación.

       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  declare
       que  acepten  declaraciones  de asignación (órdenes de declaración). Cuando se aplica += a
       una variable que se definido como número entero (integer), su valor 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
       Vectores  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.

       A  una  variable  se  le  puede asignar el atributo nameref ejecutando las órdenes nativas
       declare o local con la opción  -n  (consulte  las  descripciones  de  declare  y  local  a
       continuación)  para  crear  un nameref, 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  nameref, 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
              declare -n ref=$1
       dentro de la función se creará una variable ref cuyo valor es el  nombre  de  la  variable
       pasado  como  primer argumento. Las referencias y asignaciones a ref, y los cambios en sus
       atributos, se tratan como referencias, asignaciones y modificaciones  de  atributos  a  la
       variable  cuyo  nombre se pasó como $1. Si la variable de control en un bucle for 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 nameref.
       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 unset. De lo contrario, si se ejecuta unset con
       el nombre de una variable nameref como argumento, la variable a la que hace referencia  se
       desactivará.

   Parámetros Posicionales
       Un  parámetro  posicional  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 set.  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 FUNCIONES más adelente).

       Cuando un parámetro posicional consistente en más de  un  solo  dígito  se  expande,  debe
       rodearse por llaves (consulte EXPANSIÓN más adelante).

   Parámetros Especiales
       la shell trata de forma especial a ciertos parámetros. Éstos solo pueden referenciarse; no
       se permite asignarles nada.
       *      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 IFS. Esto
              es, "$*" es equivalente a "$1c$2c...", donde c es el primer carácter del  valor  de
              la  variable  IFS. Si IFS no está definida, los parámetros se separan por espacios.
              Si IFS es la cadena vacía, los parámetros se juntan sin ningún separador.
       @      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, "$@" es equivalente a  '$1'  '$2'...  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, '$@'y $@ se eliminan (se expande a 'nada').
       #      Se expande al número en base 10 de parámetros posicionales.
       ?      Se expande al estado de salida de la tubería más recientemente ejecutada en  primer
              plano.
       -      Se  expande  a  las  opciones  de  la  shell  activas  actualmente  según  se hayan
              especificado en la llamada, mediante la orden nativa set, o las que haya puesto  el
              mismo shell (como la opción -i).
       $      Se  expande  al  PID  de  la  shell. En una subshell, se expande al PID de la shell
              actual, no al del subshell.
       !      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 bg. Consulte CONTROL
              DE TAREAS más adelante.
       0      Se expande al nombre de la shell o script de la shell. Este parámetro se pone en el
              inicio  de  la  shell.  Si  bash  se llama con un fichero de órdenes, $0 se pone al
              nombre de ese fichero. Si bash se arranca con la opción -c, entonces $0 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 bash,  como  se  da  en  el
              argumento cero.

   Variables de la Shell
       la shell define automáticamente las siguientes variables:

       _      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.
       BASH   Se  expande al nombre completo del fichero empleado para llamar a esta instancia de
              bash.
       BASHOPTS
              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 -s de la orden
              nativa shopt (consulte ÓRDENES NATIVAS DE LA SHELL más adelante). Las opciones  que
              aparecen  en BASHOPTS son aquéllas que aparecen como on en shopt.  Si esta variable
              está en el entorno cuando se inicia bash, cada opción de la shell en  la  lista  se
              activará  antes  de  cargar  cualquier  archivo de inicio.  Es una variable de solo
              lectura.
       BASHPID
              Se expande al ID del proceso en ejecución de bash. Esto difiere de  $$  en  ciertos
              casos,  como  las  subshells  que  no requieren una reinicialización de bash. No se
              consideran las asignaciones de BASHPID. Si se anula el valor  definido  a  BASHPID,
              ésta pierde sus propiedades especiales aunque se vuelva a definir posteriormente.
       BASH_ALIASES
              Una  variable  vectorial asociativa cuyos miembros pertenecen a la lista interna de
              alias tal como la gestiona la orden nativa alias. 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
              BASH_ALIASES,   perderá   sus   propiedades  especiales,  incluso  si  se  reactiva
              posteriormente.
       BASH_ARGC
              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 bash. El número de parámetros de la subrutina
              actual (función o script ejecutado mediante .  o source) se encuentra en  la  parte
              superior  de  la  pila. Cuando se ejecuta una subrutina, se envian los parámetros a
              BASH_ARGC. La shell activa  BASH_ARGC  solo  cuando  está  en  modo  de  depuración
              ampliado  (consulte  más  adelante la descripción de la opción extdebug de la orden
              nativa shopt). La activación de extdebug 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.
       BASH_ARGV
              Una variable vectorial que contiene todos los parámetros de la pila de llamadas  de
              la ejecución actual de bash. 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 BASH_ARGV. La shell activa BASH_ARGV solo cuando está en
              modo  de  depuración  ampliado (consulte a continuación la descripción de la opción
              extdebug de la orden nativa shopt). Activar  extdebug  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.
       BASH_ARGV0
              Esta variable se expande al nombre de la shell o del script (igual que $0, consulte
              al  descripción  del  parámetro  especial 0 anteriormente). Los valores asignados a
              BASH_ARGV0, también se asignan automáticamente a $0. Si  se  desactiva  BASH_ARGV0,
              perderá sus propiedades especiales aunque posteriormente sea reactivado.
       BASH_CMDS
              Variable  vectorial  asociativa  cuyos  miembros  corresponden  al hash de la tabla
              interna de órdenes tal como la gestiona la orden nativa hash. 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  BASH_CMDS,  perderá  sus
              propiedades especiales aunque se vuelva a reactivar posteriormente.
       BASH_COMMAND
              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 BASH_COMMAND, pierde sus propiedades especiales
              aunque se vuelva a definir con posterioridad.
       BASH_EXECUTION_STRING
              La orden dada como argumento al ejecutar con la opción -c.
       BASH_LINENO
              Variable vectorial cuyos miembros corresponden a los números  de  línea  de  código
              fuente  donde  se invocó FUNCNAME. ${BASH_LINENO[$i]} será el número de línea en el
              archivo de código fuente (${BASH_SOURCE[$i+1]}) donde se invocó ${FUNCNAME[$i]}  (o
              bien  ${BASH_LINENO[$i-1]}  si  está  referenciado en el seno de otra función de la
              shell). El número de línea actual puede obtenerse mediante LINENO.
       BASH_LOADABLES_PATH
              Lista de directorios separados entre si po dos puntos en los cuales la shell  busca
              órdenes nativas cargables dinámicamente definidas por la orden enable.
       BASH_REMATCH
              Variable  vectorial  cuyos  miembros  se asignan mediante el operador =~ a la orden
              condicional [[. 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 n
              corresponderá a la porción de cadena que concuerda con la nésima subexpresión entre
              paréntesis.
       BASH_SOURCE
              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  FUNCNAME. La función de la shell ${FUNCNAME[$i]} se define en el archivo
              ${BASH_SOURCE[$i]} y se invoca desde ${BASH_SOURCE[$i+1]}.
       BASH_SUBSHELL
              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
              BASH_SUBSHELL, ésta perderá su propiedades especiales  aunque  luego  se  vuelva  a
              definir.
       BASH_VERSINFO
              Una  variable  vector  de lectura exclusiva cuyos miembros contienen información de
              versión para esta instancia de bash.  Los valores  asignados  a  los  miembros  del
              vector son como sigue:
              BASH_VERSINFO[0]        El número mayor de versión (la distribución).
              BASH_VERSINFO[1]        El número menor de versión (la versión).
              BASH_VERSINFO[2]        El nivel de parcheo.
              BASH_VERSINFO[3]        La versión de compilación.
              BASH_VERSINFO[4]        El estado de la distribución (por ejemplo, beta1).
              BASH_VERSINFO[5]        El valor de MACHTYPE.
       BASH_VERSION
              Se expande a una cadena que describe la versión de esta instancia de bash.
       COMP_CWORD
              Índice  en  ${COMP_WORDS} 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 Autocompletado Programable a continuación.
       COMP_KEY
              La  clave  (o  última  clave  de  una secuencia de claves) empleada para invocar la
              actual función de autocompletado.
       COMP_LINE
              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 Autocompletado Programable a continuación.
       COMP_POINT
              Í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
              ${#COMP_LINE}. Esta variable sólo estará disponible en  funciones  de  la  shell  y
              órdenes   externas   invocadas  durante  autocompletados.  Consulte  Autocompletado
              Programable más adelante.
       COMP_TYPE
              Definida como un entero según el tipo  de  completado  provocó  la  llamada  a  una
              función  de  autocompletado:  TAB  para  un  autocompletado  normal, ? para mostrar
              autocompletados después de varias tabulaciones, !  para  mostrar  las  alternativas
              disponibles  en  autocompletados parciales, @ para mostrar alternativas disponibles
              cuando se modificó la palabra en cuestión o % para los menus.  Esta  variable  sólo
              estará  disponible  en  funciones  de la shell y órdenes externas invocadas durante
              autocompletados. Consulte Autocompletado Programable más adelante.
       COMP_WORDBREAKS
              Conjunto de caracteres que la biblioteca readline considera separadores de palabras
              durante   el   autocompletado.   Si   se  desactiva  COMP_WORDBREAKS,  perderá  sus
              características especiales aunque se reactive de nuevo.
       COMP_WORDS
              Una variable vectorial (consulte Vectores 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 readline, usando COMP_WORDBREAKS tal como  se  describe  anteriormente.  Esta
              variable  está  disponible  solo  en  las  funciones de la shell invocadas mediante
              autocompletado (consulte Autocompletado Progamable a continuación).
       COPROC Variable vectorial (consulte  Vectores  más  adelante)  creada  para  contener  los
              descriptores  de  archivo  de  entrada/salida  de un coproceso cualquiera (consulte
              Coprocesos anteriormente.
       DIRSTACK
              Una variable vector (consulte Vectores  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 dirs.  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 pushd y popd  para  añadir  y  quitar
              directorios.   La  asignación a esta variable no cambiará el directorio de trabajo.
              Si DIRSTACK no  está  definido,  pierde  sus  propiedades  especiales,  incluso  si
              posteriormente es redefinido.
       EPOCHREALTIME
              Este  parámetro  se  sustituirá  por  una  cifra  de coma flotante con el número de
              segundos  desde  el  Inicio  (Epoch)  de  Unix  (consulte   time(3))   medidos   en
              microsegundos.  No  se  tienen  en  cuenta  las  asignaciones  a  EPOCHREALTIME. Si
              EPOCHREALTIME no está definido,  pierde  sus  propiedades  especiales,  incluso  si
              posteriormente es redefinido.
       EPOCHSECONDS
              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  time(3)).  No  se
              tendrá  en cuenta ninguna asignación de un valor a EPOCHSECONDS. Si EPOCHSECONDS no
              está definido, pierde sus propiedades  especiales,  incluso  si  posteriormente  es
              redefinido.
       EUID   Se expande al UID efectivo del usuario actual, puesta en el incio de la shell. Esta
              variable es de solo lectura.
       FUNCNAME
              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  "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
              FUNCNAMES.  Si  FUNCNAMES  no  está  definido,  pierde  sus propiedades especiales,
              incluso si posteriormente es redefinido.

              Esta variable puede emplearse con BASH_LINENO y con BASH_SOURCE. Cada  elemento  de
              FUNCNAME  se  corresponde  con otros en BASH_LINENO y BASH_SOURCE para describir la
              pila  de  llamadas.  Por  ejemplo:  ${FUNCNAME[$i]}  se  invoca  desde  el  archivo
              ${BASH_SOURCE[$i+1]}  en  el número de línea ${BASH_LINENO[$i]}. La función interna
              caller muestra la invocación actual en base a esta información.
       GROUPS 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 GROUPS. Si GROUPS no está
              definido,  pierde  sus  propiedades  especiales,  incluso  si   posteriormente   es
              redefinido.
       HISTCMD
              El  número  de  historial  o  índice  en  el  historial  de  la orden actual. No se
              consideran asignaciones  a  HISTCMD.  Si  HISTCMD  no  está  definido,  pierde  sus
              propiedades especiales, incluso si posteriormente es redefinido.
       HOSTNAME
              Asignados automáticamente al nombre del anfitrión (equipo) actual.
       HOSTTYPE
              Asignado  automáticamente  a  una  cadena  que describe de forma unívoca el tipo de
              máquina en la que bash se  está  ejecutando.   El  valor  predefinido  depende  del
              sistema.
       LINENO 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  LINENO  no  está  definido,  pierde  sus
              propiedades especiales, incluso si posteriormente es redefinido.
       MACHTYPE
              Asignado automáticamente a una cadena que describe completamente el tipo de sistema
              en  el  que  bash  se  está   ejecutando,   en   el   formato   estándar   de   GNU
              cpu-compañía-sistema.  El valor predefinido depende del sistema.
       MAPFILE
              Una matriz variable (consulte Matrices a continuación) creada para incluir el texto
              captado por la orden nativa mapfile cuando no se indica ningún nombre de variable.
       OLDPWD El directorio de trabajo anterior como lo puso la orden cd.
       OPTARG El valor del último argumento que es una  opción  procesado  por  la  orden  nativa
              getopts (consulte ÓRDENES NATIVAS DE LA SHELL a continuación).
       OPTIND El  índice  del  siguiente  argumento  a  ser procesado por la orden nativa getopts
              (consulte ÓRDENES NATIVAS DE LA SHELL más adelante).
       OSTYPE Asignado automáticamente a una cadena que describe el sistema operativo en  el  que
              bash se está ejecutando.  El valor predefinido depende del sistema.
       PIPESTATUS
              Una  variable  vector  (consulte  Vectores  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).
       PPID   El PID del proceso padre de la shell. Esta variable es de lectura exclusiva.
       PWD    El directorio de trabajo actual como lo pone la orden cd.
       RANDOM Cada vez que este parámetro sea referenciado, se genera un entero aleatorio entre 0
              y 32767. Si se asigna un valor a RANDOM se inicia (se 'siembra')  la  secuencia  de
              números  aleatorios. Si RANDOM no está definido, pierde sus propiedades especiales,
              incluso si posteriormente es redefinido.
       READLINE_ARGUMENT
              Cualquier argumento numérico dado un una orden Readline definido mediante "bind -x"
              (consulte ÓRDENES NATIVAS DE LA SHELL a continuación) cuando se ha invocado.
       READLINE_LINE
              Contenido  del  buffer  de  línea de readline, para emplear con "bind -x" (consulte
              ÓRDENES NATIVAS DE LA SHELL a continuación).
       READLINE_MARK
              Posición de la marca (punto de inserción) en la  línea  guardad  de  readline  para
              emplear  con  "bind  -x"  (consulte  ÓRDENES NATIVAS DE LA SHELL más adelante). Los
              caracteres situadoes entre el punto de inserción  y  la  marca  suelen  denominarse
              región.
       READLINE_POINT
              Posición  del punto de inserción en la línea guardada de readline, para emplear con
              "bind -x" (consulte ÓRDENES NATIVAS DE LA SHELL a continuación).
       REPLY  La línea de entrada leída por la orden nativa read cuando no se le dan argumentos.
       SECONDS
              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 SECONDS,
              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 SECONDS no está definido, pierde sus propiedades especiales, incluso si
              posteriormente es redefinido.
       SHELLOPTS
              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 -o de la orden
              nativa set (consulte ÓRDENES NATIVAS DE LA SHELL más adelante).  Las  opciones  que
              aparecen  en  SHELLOPTS  son  aquéllas  que  aparecen  como  on en set -o.  Si esta
              variable está en el entorno cuando bash 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.
       SHLVL  Se incrementa en uno cada vez que se arranca una nueva instancia de bash.
       SRANDOM
              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 lineal en los sistemas con
              soporte para /dev/urandom o arc4random 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 SRANDOM  no  está
              definido, pierde todas sus propiedades aunque se redefina posteriormente.
       UID    Se  expande  al  UID  del  usuario  en curso, puesta en el inicio de la shell. Esta
              variable es de solo lectura.

       la shell hace uso de las siguientes variables. En algunos  casos,  bash  asigna  un  valor
       predeterminado a una variable; estos casos se indican a continuación.

       BASH_COMPAT
              Este  valor  define el nivel de compatibilidad de la shell. Más adelante en MODO DE
              COMPATIBILIDAD DE LA SHELL 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
              BASH_COMPAT  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 MODO DE COMPATIBILIDAD DE LA SHELL. Ejemplos  de  valores  válidos
              serían  4.2  o  42, ambos correspondientes a la opción compat42 shopt definiendo el
              nivel  de  compatibilidad  a  42.  La  versión  actual  también  es  un  nivel   de
              compatibilidad válido.
       BASH_ENV
              Si  este parámetro está definido cuando bash está ejecutando un script de shell, su
              valor se interpreta como un nombre de archivo que contiene órdenes para iniciar  la
              shell,  como  en  ~/.bashrc.   El  valor  de  BASH_ENV  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.  PATH no se usa para buscar el nombre de
              archivo resultante.
       BASH_XTRACEFD
              Si se le asigna un número entero cuyo valor coincida con un descriptor  de  archivo
              válido,  bash  anotará  la  salida  generada  cuando set -x is enabled to that file
              descriptor.  The file descriptor is closed when BASH_XTRACEFD is unset or  assigned
              a  new  value.  Unsetting BASH_XTRACEFD or assigning it the empty string causes the
              trace output to be sent to the standard error.  Note that setting BASH_XTRACEFD  to
              2  (the  standard  error  file descriptor) and then unsetting it will result in the
              standard error being closed.
       CDPATH Ruta de búsqueda para la orden cd.  Es una lista de directorios separados  por  dos
              puntos  en los cuales la shell busca directorios destino especificados por la orden
              cd.  Un valor de muestra es ".:~:/usr".
       CHILD_MAX
              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.
       COLUMNS
              Utilizado  por  la  orden  compuest select para determinar el ancho del terminal al
              imprimir listas de selección. Si la opción checkwinsize está activada o si, estando
              en una shell interactiva, se recibe una señal SIGWINCH, seactivará automáticamente.
       COMPREPLY
              Variable  vectorial donde bash leerá las diferentes posibilidades de autocompletado
              que genere una función de la shell  invocada  por  la  utilidad  de  autocompletado
              programable  (consulte  Autocompletado Programable más adelante). Cada elemento del
              vector contiene una posibilidad de autocompletado.
       EMACS  Si bash encuentra esta variable en el entorno cuando se inicia con  el  valor  "t",
              interpretará que se está ejecutando dentro de un buffer de Emacs y deshabilitará la
              edición de línea.
       ENV    Expanded and executed  similarly  to  BASH_ENV  (see  INVOCATION  above)   when  an
              interactive shell is invoked in posix mode.
       EXECIGNORE
              A  colon-separated list of shell patterns (see Pattern Matching)  defining the list
              of filenames to be  ignored  by  command  search  using  PATH.   Files  whose  full
              pathnames  match  one of these patterns are not considered executable files for the
              purposes of completion and command execution via PATH lookup.  This does not affect
              the  behavior  of the [, test, and [[ commands.  Full pathnames in the command hash
              table are not subject to EXECIGNORE.  Use this variable to  ignore  shared  library
              files  that have the executable bit set, but are not executable files.  The pattern
              matching honors the setting of the extglob shell option.
       FCEDIT El editor predeterminado para la orden nativa fc.
       FIGNORE
              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 READLINE más adelante).
              Un nombre de archivo cuyo sufijo concuerde con una de las entradas  en  FIGNORE  se
              excluye  de  la  lista  de  nombres de archivo a completar.  Un valor de muestra es
              ".o:~" (Es necesario entrecomillar el valor asignado a esta  variable  al  contener
              tildes).
       FUNCNEST
              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.
       GLOBIGNORE
              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 GLOBIGNORE, se quita de  la  lista  de
              concordancias.
       HISTCONTROL
              Lista  de  valores  separados por comas que gestiona la forma en que las órdenes se
              guardan en el histórico. Si esta lista contiene ignorespace, no se guardarán en  el
              histórico  las  líneas que comiencen por un espacio. Un vale de ignoredups hará que
              no se guarden las líneas que coincidan  con  la  entrada  inmediatamente  anterior.
              ignoreboth  es  una  combinación de ignorespace e ignoredups. erasedups 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
              HISTCONTROL 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
              HISTIGNORE. 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 HISTCONTROL.
       HISTFILE
              El nombre del archivo en el  que  se  guarda  el  historial  de  órdenes  (consulte
              HISTORIAL  más  adelante).  El valor predeterminado es ~/.bash_history.  Si no está
              definido, no se guarda el  historial  de  órdenes  cuando  se  finalice  una  shell
              interactivo.
       HISTFILESIZE
              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.
       HISTIGNORE
              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  `*').  Cada
              patrón  se  comprueba  con la línea tras aplicarse las comprobaciones especificadas
              por HISTCONTROL.  Además de los caracteres normales de concordancia de patrones  de
              la  shell,  `&'  concuerda con la línea de historia anterior.  `&' 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 HISTIGNORE. La  concordancia  de
              patrones depende de la configuración de la opción de la shell extglob.
       HISTSIZE
              Cantidad  de  órdenes  que  debe  guardar  el  historial  (Consulte  HISTORIAL  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.
       HISTTIMEFORMAT
              If this variable is set and not null, its value is used  as  a  format  string  for
              strftime(3) to print the time stamp associated with each history entry displayed by
              the history 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.
       HOME   El directorio inicial de trabajo del usuario en curso; el argumento  predeterminado
              para  la  orden  nativa  cd.   El  valor  de esta variable se usa también cuando se
              realiza la expansión de tilde.
       HOSTFILE
              Contiene el nombre de un fichero con el mismo formato que  /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, bash añade el contenido del nuevo archivo a la base
              de datos ya existente. Si está definida la variable HOSTFILE pero no  tiene  ningún
              valor  asignado o tiene asignado el nombre de un archivo que no se puede leer, bash
              intentará leer /etc/hosts para conseguir la lista de posibles nombres de equipo. Si
              se resetea el valor de HOSTFILE se vacia la lista de nombres de equipo.
       IFS    El  Separador  Interno  de Campo que se emplea para la división de palabras tras la
              expansión y para dividir líneas en palabras con la orden  nativa  read.   El  valor
              predeterminado es “<espacio><tab><nueva-línea>”.
       IGNOREEOF
              Controla  la  acción  de una shell interactiva al recibir un carácter EOF como sola
              entrada. Si está definido, el valor es el número de caracteres EOF consecutivos que
              deben  teclearse  como los primeros caracteres de una línea de entrada antes de que
              bash acabe. Si la variable existe pero no tiene un valor numérico,  o  ninguno,  el
              valor predeterminado es 10. Si no existe, EOF significa el final de la entrada para
              la shell.
       INPUTRC
              El nombre de fichero para el de inicio  de  readline,  en  vez  del  predeterminado
              ~/.inputrc (consulte READLINE más adelante).
       INSIDE_EMACS
              Si  está  presente  esta variable cuando se inicia la shell, bash 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 TERM.
       LANG   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
              LC_.
       LC_ALL Esta variable tiene preferencia sobre el valor de LANG y de cualquier otra variable
              de las que empiecen por LC_ especificando una categoría de localización.
       LC_COLLATE
              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.
       LC_CTYPE
              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.
       LC_MESSAGES
              Esta   variable   determina   la   localización   empleada  para  traducir  cadenas
              entrecomilladas con comillas dobles precedidas por un $.
       LC_NUMERIC
              Esta variable determina la localización empleada para el formato de los números.
       LC_TIME
              Esta variable determina la localización empleada para el formato de fecha y hora.
       LINES  Utilizada por la orden compuesta select para determinar la longitud de  la  columna
              para  mostrar  listas  de selección. Definida automáticamente siempre que la opción
              checkwinsize está activada o cuando se reciba  una  señal  SIGWINCH  en  una  shell
              interactiva.
       MAIL   Si este parámetro está puesto a un nombre de archivo y la variable MAILPATH no está
              definida, bash informa al usuario de la llegada de correo en el archivo definido  o
              con formato Maildir.
       MAILCHECK
              Define la frecuencia (en segundos)  a la que bash 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.
       MAILPATH
              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, $_ se expande al nombre del fichero de
              correo en curso.  Ejemplo:
              MAILPATH='/var/mail/bfox?"Tienes carta":~/shell-mail?"¡$_ tiene carta!"'
              Bash 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/$USER).
       OPTERR Si se pone al valor 1, bash muestra mensajes de error generados por la orden nativa
              getopts  (consulte ÓRDENES NATIVAS DE LA SHELL más adelante).  OPTERR se inicia a 1
              cada vez que se llama al shell o cuando se ejecuta un script de la shell.
       PATH   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 EJECUCIÓN DE ÓRDENES a continuación). La ruta predeterminada depende  del
              sistema siendo definida por el administrador que instala bash. Un valor habitual es
              ``/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin''.
       POSIXLY_CORRECT
              Si esta variable está en el entorno cuando de inicie bash, la shell entrará en modo
              posix  antes  de  cargar  los archivos de inicio igual que si se emplease la opción
              --posix. Si se define una vez que la shell se está  ejecutando,  bash  activará  el
              modo  posix tal como si la orden set -o posix se hubiese ejecutado. Cuando la shell
              entra en modo posix, definirá está variable si no lo está ya.
       PROMPT_COMMAND
              If this variable is set, and is an array, the value of each set element is executed
              as a command prior to issuing each primary prompt.  If this is set but not an array
              variable, its value is used as a command to execute instead.
       PROMPT_DIRTRIM
              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 \w y \W del  indicador  (prompt)  (sonsulte  PROMPTING  más  adelante).  Los
              caracteres eliminados se sustituyen por una elipsis.
       PS0    El  valor  de  este  parámetro  se expande (consulte INDICADORES más adelante) y lo
              muestran las shells interactivas después de leer una orden y despuñes  de  que  sea
              ejecutada.
       PS1    El  valor  de  este  parámetro  se expande (consulte INDICADORES más adelante) y se
              emplea como la cadena del indicador primario. El valor predeterminado  es  “\s-\v\$
              ”.
       PS2    El  valor  de este parámetro se expande como con PS1 y se emplea como la cadena del
              indicador secundario. El valor predeterminado es “> ”.
       PS3    El valor de este parámetro se  emplea  como  el  indicador  para  la  orden  select
              (consulte GRAMÁTICA DE LA SHELL anteriormente).
       PS4    El  valor  de este parámetro se expande como con PS1 y el valor se imprime antes de
              cada orden que bash muestra durante una traza de ejecución. El primer  carácter  de
              PS4 se replica múltiples veces, tantas como sean necesarias, para indicar múltiples
              niveles de indirección. El valor predeterminado es “+ ”.
       SHELL  Se expande al nombre completo de la ruta de la shell. Si no está definida al inicio
              de  la  shell,  bash  le asignará la ruta completa de la shell de inicio actual del
              usuario.
       TIMEFORMAT
              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 time.  El carácter % 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.
              %%        Un % literal.
              %[p][l]R  El tiempo total transcurrido en segundos.
              %[p][l]U  El número de segundos de CPU gastados en modo usuario.
              %[p][l]S  El número de segundos de CPU gastados en modo sistema.
              %P        El porcentaje de CPU, computado como (%U + %S) ÷ %R.

              La p opcional es un dígito que especifica la precisión, 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 p mayores de 3 se cambian  a
              3. Si p no se especifica, se usa precisamente el valor 3.

              La  l  opcional  especifica  un  formato más largo, incluyendo minutos, en la forma
              MMmSS.FFs.  El valor de p determina si se incluye o no la fracción.

              Si  esta  variable  no  está  definida,  bash  actúa  como  si  tuviera  el   valor
              $'\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS'.  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.
       TMOUT  Si  se  define  a  un valor mayor que cero, TMOUT se interpreta como la cantidad de
              segundos de timout de la orden nativa read. Si se espera alguna  entrada  desde  un
              terminal,  la  orden select finaliza si ésta no llega transcurridos TMOUT 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. Bash
              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.
              Bash termina después de esperar  ese  número  de  segundos  si  no  recibe  ninguna
              entrada.
       TMPDIR Si  está  definido,  bash  empleará  su  valor como nombre del directorio en el que
              creará los archivos temporales necesario para su el uso de la shell.
       auto_resume
              Esta variable controla cómo la shell interactúa con el usuario para el  control  de
              trabajos.  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
              nombre de un trabajo parado, en este contexto, es la línea de órdenes empleada para
              arrancarlo.  Si se define al valor exact, la  cadena  suministrada  debe  concordar
              exactamente  con  el  nombre  de un trabajo parado; si se define como substring, la
              cadena suministrada necesita concordar con una subcadena del nombre de  un  trabajo
              parado.  El  valor  substring  proporciona  una  funcionalidad  análoga  a  la  del
              identificador de trabajo %? (consulte CONTROL DE TAREAS 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 %cadena.
       histchars
              Los  dos o tres caracteres que controlan la expansión y separación en lexemas de la
              historia (consulte EXPANSIÓN DEL HISTORIAL a continuación).  El primer carácter  es
              el  carácter  de expansión del historial, el carácter que señala el comienzo de una
              expansión de historia, normalmente `!'.  El segundo  carácter  es  el  carácter  de
              sustitución  rápida,  que  se  usa  como  una  abreviatura para reejecutar la orden
              anterior, sustituyendo una cadena por otra en la orden. El valor predeterminado  es
              `^'.   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 `#'.  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.

   Vectores
       Bash proporciona variables vectores monodimensionales, indexados y asociativos.  Cualquier
       variable puede usarse como un vector indexado; la orden nativa declare 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.

       Un  vector  indexado  se  crea  automáticamente  si  se  asigna algo a una variable con la
       sintaxis nombre[índice]=valor. El índice se trata como una expresión aritmética  que  debe
       evaluarse  a  un  número. Para declarar un vector explícitamente, emplee declare -a nombre
       (consulte ÓRDENES NATIVAS DE LA  SHELL  más  adelante).   También  se  acepta  declare  -a
       nombre[índice], donde el índice no se tiene en cuenta.

       Los vectores asociativos se crean mediante declare -A nombre.

       Attributes may be specified for an array variable using the declare and readonly builtins.
       Each attribute applies to all members of an array.

       Arrays are assigned to using compound assignments of the form  name=(value1  ...  valuen),
       where  each value may be of the form [subscript]=string.  Indexed array assignments do not
       require anything but string.  Each value in the list  is  expanded  using  all  the  shell
       expansions  described  below  under  EXPANSION.   When assigning to indexed arrays, if the
       optional brackets and subscript are supplied, that index is  assigned  to;  otherwise  the
       index  of  the  element  assigned is the last index assigned to by the statement plus one.
       Indexing starts at zero.

       When assigning to an associative array, the words in a compound assignment may  be  either
       assignment  statements,  for  which  the subscript is required, or a list of words that is
       interpreted as a sequence of alternating keys and values: name=( key1 value1  key2  value2
       ...).   These  are  treated  identically  to name=( [key1]=value1 [key2]=value2 ...).  The
       first word in the list determines how the remaining words are interpreted; all assignments
       in  a  list  must  be  of  the same type.  When using key/value pairs, the keys may not be
       missing or empty; a final missing value is treated like the empty string.

       This syntax is also accepted by the declare builtin.  Individual  array  elements  may  be
       assigned to using the name[subscript]=value syntax introduced above.  When assigning to an
       indexed array, if name is subscripted by a negative number, that number is interpreted  as
       relative  to  one  greater  than the maximum index of name, so negative indices count back
       from the end of the array, and an index of -1 references the last element.

       El operador += realizará añadidos a una variable vectorial cuando se haga con la  sintaxis
       adecuada. Consulte PARÁMETROS anteriormente.

       Cualquier  elemento  de  un  vector  puede  referenciarse mediante ${nombre[índice]}.  Las
       llaves son necesarias para evitar conflictos con la expansión  de  nombres  de  rutas.  Si
       índice  es  @  o  *,  la palabra se expande a todos los miembros de nombre.  Estos índices
       difieren solamente cuando la palabra aparece entre comillas dobles.  Si  la  palabra  está
       entre  comillas  dobles,  ${nombre[*]}  se expande a una sola palabra con el valor de cada
       miembro del vector separados por el  primer  carácter  de  la  variable  especial  IFS,  y
       ${nombre[@]}  expande  cada  elemento  de  nombre  a  una  palabra separada. Cuando no hay
       miembros del vector, ${nombre[@]} 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 * y @ (consulte Parámetros especiales
       anteriormente). ${#nombre[índice]} se expande  a  la  longitud  de  ${nombre[índice]}.  Si
       índice  es  *  o  @, la expansión es el número de elementos del vector. Si índice 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.

       Referencing an array variable without a subscript is equivalent to referencing  the  array
       with  a subscript of 0.  Any reference to a variable using a valid subscript is legal, and
       bash will create an array if necessary.

       An array variable is considered set if a subscript has been assigned a  value.   The  null
       string is a valid value.

       It  is  possible  to  obtain  the  keys  (indices)  of  an  array  as  well as the values.
       ${!name[@]} and ${!name[*]} expand to the indices assigned in array  variable  name.   The
       treatment  when  in  double quotes is similar to the expansion of the special parameters @
       and * within double quotes.

       La orden nativa unset se emplea para eliminar vectores.  unset nombre[índice]  elimina  el
       elemento  del  vector con el índice 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. unset  nombre,  donde  nombre  es  un  vector,  eliminará  por
       completo   dicho  vector.  unset  nombre[índice],  donde  índice  es  *  o  @,  tendrá  un
       comportamiento diferente según sea un vector asociativo o indexado. Si nombre es un vector
       asociativo,  desactivará el elemento con índice * o @. Si nombre es un vector indexado, se
       eliminarán todos los elementos, no así el propio vector.

       When using a variable name with a subscript as an argument to  a  command,  such  as  with
       unset, without using the word expansion syntax described above, the argument is subject to
       pathname expansion.  If pathname expansion is not desired, the argument should be quoted.

       Las órdenes nativas declare, local, y  readonly  aceptan  cada  una  una  opción  -a  para
       especificar  un  vector indexado (indexed array) y la opción -A para especificad un vector
       asociativo (asociative array). Si se define  ambas  opciones,  prevalecerá  -A.  La  orden
       nativa  read  acepta  una  -a  para  asignar una lista de palabras leídas desde la entrada
       estándar a un vector. Las órdenes nativas set y declare muestran valores de un  vector  en
       una manera tal que les permite ser reutilizadas como asignaciones.

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:  expansión  de  llaves,  expansión  de  tilde,
       expansión de parámetro y variable, sustitución de orden, expansión aritmética, división de
       palabras, expansión de nombre de ruta.

       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.

       En sistemas que puedan admitirla, hay una expansión adicional disponible:  sustitución  de
       proceso.  É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.

       Después de realizar estas expansiones, se eliminan las comillas  de  la  palabra  original
       salvo que éstas hayan sido entrecomilladas (eliminación de comillas).

       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 "$@" y
       "${nombre[@]}" y en muchos casos $* y ${name[*]} como se ha  explicado  más  anteriormente
       (consulte PARÁMETROS).

   Expansión de Llaves
       La  expansión  de llaves es un mecanismo por el cual pueden generarse cadenas arbitrarias.
       Este mecanismo es similar a la expansión de nombre de ruta, 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 preámbulo  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 post scriptum 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.

       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{d,c,b}e se expande a
       `ade ace abe'.

       A sequence expression takes the form {x..y[..incr]}, where x and y are either integers  or
       single  letters,  and  incr,  an  optional  increment,  is  an integer.  When integers are
       supplied, the expression expands to each number between  x  and  y,  inclusive.   Supplied
       integers  may be prefixed with 0 to force each term to have the same width.  When either x
       or y 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 x and y,  inclusive,  using
       the  default  C  locale.   Note  that  both  x  and y 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.

       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.   Bash  no
       aplica ninguna interpretación sintáctica al contexto de la expansión ni al texto entre las
       llaves.

       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 { o , 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  ${  no  puede
       incorporarse en una expansión de llaves y evita que se ocurra hasta la llave de cierre }.

       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:

              mkdir /usr/local/src/bash/{old,new,dist,bugs}
       o
              chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}

       La expansión de llaves introduce una pequeña incompatibilidad con versiones anteriores  de
       sh.  sh  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.  Bash quita  las  llaves  de
       palabras,  como  una  consecuencia  de  la  expansión  de llaves. Por ejemplo, una palabra
       introducida a sh como fichero{1,2} aparece así mismo en la entrada. La  misma  palabra  se
       muestra  como  fichero1  fichero2  tras  la  expansión  hecha  por  bash.  Si se desea una
       compatibilidad estricta con sh, inicie bash con la opción +B o inhabilite la expansión  de
       llaves  con  la opción +B de la orden nativa set (consulte ÓRDENES NATIVAS DE LA SHELL más
       adelante).

   Expansión de Tilde
       Si una palabra comienza con un carácter tilde de la ñ sin entrecomillar (`~'),  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
       prefijo-tilde.  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  nombre  de
       entrada  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 HOME.   Si  HOME  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.

       Si  el  prefijo-tilde  es  un  `~+',  el valor de la variable de la shell PWD reemplaza al
       prefijo-tilde.  Si el prefijo-tilde es un `~-', el  valor  de  la  variable  de  la  shell
       OLDPWD,  si  está  definido,  se sustituye.  Si los caracteres que siguen a la tilde en el
       prefijo-tilde consisten en un número N, 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 dirs 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 `+'.

       Si el nombre de entrada es inválido, o si la expansión de tilde falla, la palabra se  deja
       tal cual.

       A  cada  asignación  de  variable  se  comprueba  si  hay prefijos-tilde sin entrecomillar
       inmediatamente tras un : o el primer =.  En estos casos, la  expansión  de  tilde  también
       tiene  lugar.   Consecuentemente,  uno  puede  usar  nombres  de  ficheros  con  tildes en
       asignaciones a PATH, MAILPATH, y CDPATH, y la shell asigna el valor expandido.

       Bash also performs  tilde  expansion  on  words  satisfying  the  conditions  of  variable
       assignments (as described above under PARAMETERS)  when they appear as arguments to simple
       commands.  Bash does not do this, except for the declaration commands listed  above,  when
       in posix mode.

   Expansión de Parámetro
       El  carácter  `$'  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.

       Cuando se empleen llaves, la de cierre es la  primera  `}'  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.

       ${parámetro}
              Se sustituye el valor de parámetro.  Se requieren llaves  cuando  parámetro  es  un
              parámetro  posicional  de más de un dígito, o cuando parámetro viene seguido por un
              carácter que no debe interpretarse como parte de su  nombre.  El  parámetro  es  un
              parámetro  de  la  shell  tal  como  se  describe  en  la  sección PARÁMETROS o una
              referencia a un vector (Vectores).

       If the first character of parameter is an exclamation point (!), and parameter  is  not  a
       nameref,  it  introduces  a level of indirection.  Bash uses the value formed by expanding
       the rest of parameter as the new parameter; this is then expanded and that value  is  used
       in  the  rest of the expansion, rather than the expansion of the original parameter.  This
       is known as indirect expansion.  The  value  is  subject  to  tilde  expansion,  parameter
       expansion,  command  substitution,  and  arithmetic expansion.  If parameter is a nameref,
       this expands to the name of the parameter referenced by parameter  instead  of  performing
       the complete indirect expansion.  The exceptions to this are the expansions of ${!prefix*}
       and ${!name[@]} described below.  The exclamation point must immediately follow  the  left
       brace in order to introduce indirection.

       En  cada  uno de los casos descritos a continuación, sobre palabra se aplican expansión de
       tilde, expansión de parámetro, sustitución de orden y expansión aritmética.

       When not performing substring expansion, using the forms documented below (e.g., :-), bash
       tests  for  a  parameter that is unset or null.  Omitting the colon results in a test only
       for a parameter that is unset.

       ${parámetro:-palabra}
              Emplear valores predeterminados.  Si parámetro no está definido o  está  vacío,  se
              sustituye  la  expansión  de  palabra.   De  otro  modo,  se  sustituye el valor de
              parámetro.
       ${parámetro:=palabra}
              Asignar valores predeterminados.  Si parámetro no  está  definido  o  es  nulo,  la
              expansión  de  palabra  se  asigna  a  parámetro.   Luego, el valor de parámetro se
              sustituye. No se puede asignar nada de esta manera a los parámetros posicionales ni
              a los especiales.
       ${parámetro:?palabra}
              Muestra  un error si no está definido o está vacío.  Si parámetro es nulo o no está
              definido, la expansión de palabra (o un mensaje a tal efecto  si  palabra  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 parámetro.
       ${parámetro:+palabra}
              Emplear un valor alternativo.  Si parámetro está vacío o no está  definido,  no  se
              sustituye nada; de otro modo, se sustituye la expansión de palabra.
       ${parámetro:desplazamiento}
       ${parámetro:desplazamiento:longitud}
              Substring  Expansion.  Expands to up to length characters of the value of parameter
              starting at the character specified by offset.  If parameter is @ or *, an  indexed
              array  subscripted  by  @ or *, or an associative array name, the results differ as
              described below.  If length is omitted, expands to the substring of  the  value  of
              parameter starting at the character specified by offset and extending to the end of
              the value.  length and offset are arithmetic expressions (see ARITHMETIC EVALUATION
              below).

              If  offset  evaluates to a number less than zero, the value is used as an offset in
              characters from the end of the value of parameter.  If length evaluates to a number
              less  than  zero,  it is interpreted as an offset in characters from the end of the
              value of parameter rather than a number of characters, and  the  expansion  is  the
              characters  between  offset  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  :-
              expansion.

              If  parameter  is  @  or *, the result is length positional parameters beginning at
              offset.  A negative offset 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 length evaluates  to  a  number  less  than
              zero.

              If  parameter  is  an  indexed  array name subscripted by @ or *, the result is the
              length members of the array beginning with ${parameter[offset]}.  A negative offset
              is taken relative to one greater than the maximum index of the specified array.  It
              is an expansion error if length evaluates to a number less than zero.

              Substring expansion applied to an associative array produces undefined results.

              Substring indexing is zero-based unless the  positional  parameters  are  used,  in
              which case the indexing starts at 1 by default.  If offset is 0, and the positional
              parameters are used, $0 is prefixed to the list.

       ${!prefijo*}
       ${!prefijo@}
              Names matching prefix.  Expands to the names of variables whose  names  begin  with
              prefix,  separated  by  the first character of the IFS special variable.  When @ is
              used and the expansion appears within double quotes, each variable name expands  to
              a separate word.

       ${!nombre[@]}
       ${!nombre[*]}
              List  of  array  keys.   If name is an array variable, expands to the list of array
              indices (keys) assigned in name.  If name is not an array, expands to 0 if name  is
              set  and  null  otherwise.   When @ is used and the expansion appears within double
              quotes, each key expands to a separate word.

       ${#parámetro}
              Parameter  length.   The  length  in  characters  of  the  value  of  parameter  is
              substituted.   If  parameter  is  *  or  @,  the value substituted is the number of
              positional parameters.  If parameter is an array name subscripted by *  or  @,  the
              value  substituted  is  the  number  of  elements in the array.  If parameter is an
              indexed array name subscripted by a negative number, that number is interpreted  as
              relative  to  one  greater than the maximum index of parameter, so negative indices
              count back from the end of the array, and  an  index  of  -1  references  the  last
              element.

       ${parámetro#palabra}
       ${parámetro##palabra}
              Remove  matching prefix pattern.  The word is expanded to produce a pattern just as
              in pathname expansion, and matched against the expanded value  of  parameter  using
              the  rules  described  under  Pattern  Matching  below.  If the pattern matches the
              beginning of the value of parameter, then  the  result  of  the  expansion  is  the
              expanded  value  of  parameter with the shortest matching pattern (the “#” case) or
              the longest matching pattern (the “##” case) deleted.  If parameter is @ or *,  the
              pattern  removal operation is applied to each positional parameter in turn, and the
              expansion is the resultant list.  If parameter is  an  array  variable  subscripted
              with  @  or *, the pattern removal operation is applied to each member of the array
              in turn, and the expansion is the resultant list.

       ${parámetro%palabra}
       ${parámetro%%palabra}
              Remove matching suffix pattern.  The word is expanded to produce a pattern just  as
              in  pathname  expansion,  and matched against the expanded value of parameter using
              the rules described under  Pattern  Matching  below.   If  the  pattern  matches  a
              trailing  portion  of  the  expanded  value  of  parameter,  then the result of the
              expansion is the expanded value of parameter with  the  shortest  matching  pattern
              (the  “%”  case)  or  the  longest  matching  pattern  (the “%%” case) deleted.  If
              parameter is @ or *, the pattern removal operation is applied  to  each  positional
              parameter  in  turn,  and  the expansion is the resultant list.  If parameter is an
              array variable subscripted with @ or *, the pattern removal operation is applied to
              each member of the array in turn, and the expansion is the resultant list.

       ${parámetro/patrón/cadena}
       ${parámetro//patrón/cadena}
       ${parámetro/#patrón/cadena}
       ${parámetro/%patrón/cadena}
              Pattern  substitution.   The  pattern  is  expanded to produce a pattern just as in
              pathname expansion.  Parameter is expanded and the longest match of pattern against
              its value is replaced with string.  string 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 Pattern
              Matching below.  In the first form above, only the first  match  is  replaced.   If
              there are two slashes separating parameter and pattern (the second form above), all
              matches of pattern are replaced with string.  If pattern  is  preceded  by  #  (the
              third  form  above),  it  must  match  at  the  beginning  of the expanded value of
              parameter.  If pattern is preceded by % (the fourth form above), it must  match  at
              the  end  of  the expanded value of parameter.  If the expansion of string is null,
              matches of pattern are deleted.  If string is null, matches of pattern are  deleted
              and the / following pattern may be omitted.

              Si  la  opción de shell pathsub_replacement está activada mediante shopt, cualquier
              instancia de & sin entrecomillar contenida en cadena será sustituida por  la  parte
              concordante de patrón.

              Quoting  any  part  of  string  inhibits replacement in the expansion of the quoted
              portion, including replacement strings stored in shell variables.   Backslash  will
              escape  & in string; the backslash is removed in order to permit a literal & in the
              replacement string.  Backslash can also be used to escape a backslash;  \\  results
              in  a  literal  backslash  in the replacement.  Users should take care if string 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  &  after  expanding  string;  shell
              programmers  should  quote  any occurrences of & they want to be taken literally in
              the replacement and ensure any  instances  of  &  they  want  to  be  replaced  are
              unquoted.

              If  the  nocasematch shell option is enabled, the match is performed without regard
              to the case of alphabetic characters.  If parameter is @  or  *,  the  substitution
              operation is applied to each positional parameter in turn, and the expansion is the
              resultant list.  If parameter is an array variable subscripted with  @  or  *,  the
              substitution  operation  is  applied  to  each member of the array in turn, and the
              expansion is the resultant list.

       ${parámetro^patrón}
       ${parámetro^^patrón}
       ${parámetro,patrón}
       ${parámetro,,patrón}
              Case modification.  This expansion modifies the case of  alphabetic  characters  in
              parameter.   The  pattern  is  expanded  to  produce  a pattern just as in pathname
              expansion.  Each character in the expanded value of  parameter  is  tested  against
              pattern, and, if it matches the pattern, its case is converted.  The pattern should
              not attempt to match more than one character.  The ^  operator  converts  lowercase
              letters  matching  pattern to uppercase; the , operator converts matching uppercase
              letters to lowercase.  The ^^ and ,, expansions convert each matched  character  in
              the  expanded  value;  the  ^  and  ,  expansions  match and convert only the first
              character in the expanded value.  If pattern is omitted, it is treated  like  a  ?,
              which  matches  every  character.   If  parameter  is @ or *, the case modification
              operation is applied to each positional parameter in turn, and the expansion is the
              resultant  list.   If  parameter  is an array variable subscripted with @ or *, the
              case modification operation is applied to each member of the array in turn, and the
              expansion is the resultant list.

       ${parámetro:operador}
              Transformación  de  parámetros. La expansión puede ser una transformación del valor
              de parámetro o información sobre el propio  parámetro  dependiendo  del  valor  del
              operador. Cada operador consta de una única letra:

              U      La  expansión  será  una  cadena  formada por el valor del parámetro con sus
                     letras minúsculas pasadas a mayúsculas.
              u      La expansión será una cadena formada por el valor de parámetro con su primer
                     carácter en mayúsculas, siempre que sea una letra.
              L      La  expansión  será  una  cadena  formada por el valor de parámetros con sus
                     letras mayúsculas convertidas en minúsculas.
              Q      La expansión es una cadena formada por el valor de parámetro en  un  formato
                     adecuado para ser utilizado como valor de entrada.
              E      La  expansión  será una cadena formada por el valor de parámetro expandiendo
                     las barras invertidas de forma análoga al sistema de comillas $'...'.
              P      La expansión será una cadena formada por el resultado de expandir  el  valor
                     de  parámetro  como si fuera un indicador de la shell  (consulte INDICADORES
                     más adelante).
              A      The expansion is a string in the form of an assignment statement or  declare
                     command  that, if evaluated, will recreate parameter with its attributes and
                     value.
              K      Produces a possibly-quoted version of the value of parameter, except that it
                     prints  the values of indexed and associative arrays as a sequence of quoted
                     key-value pairs (see Arrays above).
              a      La expansión será una  cadena  formada  por  los  valores  de  opciones  que
                     representan los atributos de parámetro.
              k      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.

              Si  parámetro  es  @  o *, la operación se aplicará a cada parámetro posicional por
              turnos, y la expansión es la  lista  resultante.   Si  parámetro  es  una  variable
              vectorial  indexada  con @ o *, 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.

              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.

   Sustitución de Orden
       La sustitución de orden permite a la salida de una orden reemplazar al nombre de la orden.
       Hay dos formas:

              $(orden)
       o
              `orden`

       Bash realiza la expansión ejecutando orden 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 $(cat archivo) puede reemplazarse por lo equivalente
       pero más rápido $(< archivo).

       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 $, `, o \.
       La primera comilla inversa no precedida por una barra invertida termina la sustitución  de
       orden.   Cuando  se  emplea  la  forma $(orden), todos los caracteres entre los paréntesis
       forman parte de la orden; ninguno se considera como especial.

       Las sustituciones de orden pueden anidarse. Para anidar  cuando  se  emplee  la  forma  de
       comillas inversas, proteja las comillas inversas internas con barras inversas.

       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.

   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:

              $((expresión))

       El antiguo formato $[expresión] es obsoleto y se eliminará en futuras versiones de bash.

       La  expresión  se  trata  como  si estuviera entre comillas dobles, pero un signo de doble
       comilla en expresión 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.

       La  evaluación  se  realiza  de  acuerdo  a las reglas listadas más adelante en EVALUACIÓN
       ARITMÉTICA.  Si expresión no es válida, bash imprime un mensaje indicando el  fallo  y  no
       ocurre ninguna sustitución.

   Sustitución de Proceso
       Process  substitution  allows  a  process's  input  or  output  to  be referred to using a
       filename.   It  takes  the  form  of  <(list)  or  >(list).   The  process  list  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 >(list) form is
       used,  writing  to the file will provide input for list.  If the <(list) form is used, the
       file passed as an argument  should  be  read  to  obtain  the  output  of  list.   Process
       substitution  is  supported  on  systems  that  support named pipes (FIFOs) or the /dev/fd
       method of naming open files.

       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.

   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 división
       de palabras.

       The shell treats each character of IFS as a delimiter, and splits the results of the other
       expansions into words using these characters as field terminators.  If IFS  is  unset,  or
       its value is exactly <space><tab><newline>, the default, then sequences of <space>, <tab>,
       and <newline> at the beginning and end of the  results  of  the  previous  expansions  are
       ignored,  and any sequence of IFS characters not at the beginning or end serves to delimit
       words.  If IFS has a value other than  the  default,  then  sequences  of  the  whitespace
       characters  space,  tab,  and newline are ignored at the beginning and end of the word, as
       long as the whitespace character is in the value of IFS  (an  IFS  whitespace  character).
       Any  character  in  IFS that is not IFS whitespace, along with any adjacent IFS whitespace
       characters, delimits a field.  A sequence of IFS whitespace characters is also treated  as
       a delimiter.  If the value of IFS is null, no word splitting occurs.

       Explicit  null  arguments ("" or '') 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 -d'' becomes -d  after  word  splitting  and  null
       argument removal.

       Observe que si no hay expansión, tampoco se realiza la división de palabras.

   Expansión de Nombres de Ruta
       After  word  splitting,  unless  the  -f option has been set, bash scans each word for the
       characters *, ?, and [.  If one of these characters appears, and is not quoted,  then  the
       word  is  regarded  as  a  pattern,  and  replaced  with  an alphabetically sorted list of
       filenames matching the pattern (see Pattern Matching below).  If no matching filenames are
       found,  and  the shell option nullglob is not enabled, the word is left unchanged.  If the
       nullglob option is set, and no matches are found, the word is removed.   If  the  failglob
       shell option is set, and no matches are found, an error message is printed and the command
       is not executed.  If the shell option  nocaseglob  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 LC_COLLATE. When a pattern is used for pathname expansion, the character
       “.” at the start of a name or immediately following a slash must  be  matched  explicitly,
       unless the shell option dotglob is set.  In order to match the filenames “.” and “..”, the
       pattern must begin with “.”  (for  example,  “.?”),  even  if  dotglob  is  set.   If  the
       globskipdots  shell  option is enabled, the filenames “.” and “..” are never matched, even
       if the pattern begins with a “.”.  When not matching pathnames, the “.”  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  Pattern  Matching.   See  the
       description of shopt  below  under  SHELL  BUILTIN  COMMANDS  for  a  description  of  the
       nocaseglob, nullglob, globskipdots, failglob, and dotglob shell options.

       La variable de la shell GLOBIGNORE puede utilizarse para restringir el conjunto de nombres
       de archivo que concuerden con un patrón.  Si GLOBIGNORE  está  definido,  cada  nombre  de
       archivo concordante que también coincida con uno de los patrones en GLOBIGNORE se quita de
       la lista de concordancias.  Los nombres de archivo “.” y “..” nunca son tenidos en cuenta,
       incluso cuando GLOBIGNORE esté puesto. Sin embargo, definir GLOBIGNORE activa la opción de
       la shell dotglob, de modo que todos los otros nombres de archivo que comiencen con un  “.”
       concordarán.   Para  obtener  el  comportamiento  anterior  de no hacer caso de nombres de
       archivo que comienzan con un “.”, haga que “.*” sea uno de los patrones de GLOBIGNORE.  La
       opción  dotglob  está deshabilitada cuando GLOBIGNORE no está definido. La concordancia de
       patrones depende de la configuración de la opción de la sehll extglob.

       Concordancia

       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 caracter 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.

       Los caracteres de patrón especiales tienen los siguientes significados:

              *      Matches any string, including the null  string.   When  the  globstar  shell
                     option  is  enabled,  and  *  is  used  in a pathname expansion context, two
                     adjacent *s used as a single pattern will match all files and zero  or  more
                     directories  and  subdirectories.   If followed by a /, two adjacent *s will
                     match only directories and subdirectories.
              ?      Concuerda con un solo carácter cualquiera.
              [...]  Matches any one of the enclosed characters.  A pair of characters  separated
                     by  a  hyphen  denotes  a range expression; 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 [ is a ! or a ^ 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 LC_COLLATE
                     or LC_ALL shell variables, if set.  To obtain the traditional interpretation
                     of range expressions, where [a-d] is equivalent to [abcd], set value of  the
                     LC_ALL shell variable to C, or enable the globasciiranges shell option.  A -
                     may be matched by including it as the first or last character in the set.  A
                     ] may be matched by including it as the first character in the set.

                     Dentro  de  [  y  ],  se pueden especificar clases de caracteres mediante la
                     sintaxis [:clase:], donde clase es una de las siguientes clases definidas en
                     el estándar POSIX:
                     alnum alpha ascii blank cntrl digit graph lower print punct space upper word
                     xdigit
                     Una clase de caracteres concuerda con cualquier carácter  que  pertenezca  a
                     esa clase El carácter word concordará con letras, cifras y el carácter '_'.

                     Dentro de [ y ], una clase de equivalencia se puede especificar empleando la
                     sintaxis [=c=], 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
                     c.

                     Dentro de [ y ],  la  sintaxis  [.símbolo.]  concuerda  con  el  símbolo  de
                     clasificación símbolo.

       Si  la  opción  de la shell extglob se activa mediante la orden nativa shopt, se reconocen
       algunos operadores de patrones avanzados. En la siguiente descripción, una lista-patrón es
       una  lista  de  uno  o más patrones separados por el carácter |. Se pueden formar patrones
       compuestos usando uno o más de los siguientes sub-patrones:

              ?(lista-patrón)
                     Concuerda con ninguna o una ocurrencia de los patrones dados
              *(lista-patrón)
                     Concuerda con ninguna o más ocurrencias de los patrones dados
              +(lista-patrón)
                     Concuerda con una o más ocurrencias de los patrones dados
              @(lista-patrón)
                     Concuerda con uno de los patrones dados
              !(lista-patrón)
                     Concuerda con cualquier cosa excepto con uno de los patrones dados

       Theextglob 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  extglob  is  enabled  before  parsing  constructs
       containing the patterns, including shell functions and command substitutions.

       When matching filenames, the dotglob shell option determines the set of filenames that are
       tested: when dotglob is enabled, the set of filenames includes all  files  beginning  with
       “.”,  but “.” and “..” 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 “.” unless  the
       pattern  or  sub-pattern begins with a “.”.  As above, “.” only has a special meaning when
       matching filenames.

       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.

   Eliminación de Comillas
       Tras  las  expansiones  precedentes,  todas  las  ocurrencias  no  entrecomilladas  de los
       caracteres \, ', y " que no resulten de una de las expansiones anteriores, se eliminan.

REDIRECCIÓN

       Before a command is executed, its input and output  may  be  redirected  using  a  special
       notation  interpreted  by  the  shell.   Redirection  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  simple command or may follow a command.  Redirections are
       processed in the order they appear, from left to right.

       Each redirection that may be preceded by a file descriptor number may instead be  preceded
       by  a  word of the form {varname}.  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  varname.  If >&- or <&- is preceded by {varname}, the value of varname defines the
       file descriptor to close.  If {varname} is supplied, the redirection persists  beyond  the
       scope  of  the  command,  allowing  the  shell  programmer to manage the file descriptor's
       lifetime manually.  The varredir_close shell option manages this behavior.

       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 <, 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
       >, la redirección se refiere a la salida estándar (descriptor de fichero 1).

       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,  bash
       informa de un error.

       Observe que el orden de las redirecciones es significativo. Por ejemplo, la orden

              ls > listadir 2>&1

       dirige la salida estándar normal y la de errores, ambas, al fichero listadir, mientras que
       la orden

              ls 2>&1 > listadir

       dirige solamente la salida estándar al archivo  listadir,  porque  la  salida  de  errores
       estándar se ha duplicado como salida estándar antes de que ésta se redirigiera a listadir.

       Bash  handles several filenames specially when they are used in redirections, as described
       in the following table.  If the operating system on which bash is running  provides  these
       special  files,  bash  will  use  them; otherwise it will emulate them internally with the
       behavior described below.

              /dev/fd/fd
                     Si fd es un entero válido, el decriptor de archivo fd se duplica.
              /dev/stdin
                     El descriptor de archivo 0 se duplica.
              /dev/stdout
                     El descriptor de archivo 1 se duplica.
              /dev/stderr
                     El descriptor de archivo 2 se duplica.
              /dev/tcp/equipo/puerto
                     Si equipo es un nombre de equipo válido o una dirección de internet y puerto
                     es  un  número  entero  correspondiente  a  un  número de puerto o nombre de
                     servicio, bash intentará abrir el conector TCP correspondiente.
              /dev/udp/equipo/puerto
                     Si equipo es un nombre de equipo válido o una dirección de internet y puerto
                     es  un  número  entero  correspondiente  a  un  número de puerto o nombre de
                     servicio, bash intentará abrir el conector UDP correspondiente.

       Un fallo en la apertura o creación de un fichero hace que la redirección fracase.

       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.

       Observe  que  la  orden  interna  exec puede ejecutar redirecciones con efecto en la shell
       actual.

   Redirección de la Entrada
       La redirección de la entrada hace que el fichero cuyo nombre resulte de  la  expansión  de
       palabra  se  abra  para  lectura  en  el  descriptor  de  fichero n, o la entrada estándar
       (descriptor de fichero 0) si no se especificó n.

       El formato general para la redirección de la entrada es:

              [n]<palabra

   Redirección de la Salida
       La redirección de la salida hace que el fichero cuyo nombre resulte  de  la  expansión  de
       palabra  se  abra  para  escritura  en  el  descriptor  de fichero n, o la salida estándar
       (descriptor de fichero 1) si n no se especificó. Si el  fichero  no  existe  se  crea;  si
       existe se trunca a longitud cero, se vacía.

       El formato general para la redirección de la salida es:

              [n]>palabra

       Si  el  operador de redirección es >, y la opción noclobber de la orden nativa set ha sido
       activada, la redirección fallará si el nombre de fichero resultante  de  la  expansión  de
       palabra existiera y fuera un fichero regular.  Si el operador de redirección es >|, o es >
       y la opción noclobber de la orden nativa set no está activada, la redirección  se  intenta
       incluso si el archivo nombrado por palabra existe.

   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 palabra se abra para añadir en el  descriptor  de  fichero  n,  o  la  salida
       estándar  (descriptor  de  fichero  1)  si n no se especificó. Si el fichero no existe, se
       crea.

       El formato general para añadir a la salida es:

              [n]>>palabra

   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 palabra con esta construcción.

       hay dos formatos para la redirección de la salida estándar y la salida de errores:

              &>palabra
       y
              >&palabra

       De las dos formas, es preferible la primera.  Ésta es semánticamente equivalente a

              >palabra 2>&1

       When using the second form, word may not expand to a number  or  -.   If  it  does,  other
       redirection  operators  apply  (see  Duplicating File Descriptors below) for compatibility
       reasons.

   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 palabra.

       el formato para unir la redirección de la salida estándar y la salida de errores sería  el
       siguiente:

              &>>palabra

       Ésta es semánticamente equivalente a

              >>palabra 2>&1

       (consulte Duplicación de descriptores de fichero más adelante).

   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 separador (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.

       El formato de los documentos internos es:

              [n]<<[-]palabra
                      documento-interno
              delimitador

       No  parameter  and  variable  expansion,  command  substitution,  arithmetic expansion, or
       pathname expansion is performed on word.  If any part of word is quoted, the delimiter  is
       the  result of quote removal on word, and the lines in the here-document are not expanded.
       If word is unquoted, all lines of the here-document are subjected to parameter  expansion,
       command  substitution,  and  arithmetic  expansion,  the  character sequence \<newline> is
       ignored, and \ must be used to quote the characters \, $, and `.

       Si el operador de redirección es <<-, 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 delimitador.
       Esto permite que los documentos internos dentro de guiones  de  la  shell  se  sangren  de
       manera natural.

   Cadenas de Documentos Internos
       Una variante de los documentos internos con el siguiente formato:

              [n]<<<palabra

       The   word   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 n if n is specified).

   Duplicación de Descriptores de Archivo
       Operador de Redirección

              [n]<&palabra

       se emplea para duplicar descriptores de ficheros de entrada.  Si palabra se expande a  uno
       o  más  dígitos,  el  descriptor  de  fichero denotado por n se hace ser una copia de este
       descriptor de fichero.  Si los dígitos en palabra no especifican un descriptor de  fichero
       abierto  para  entrada,  se produce un error de redirección.  Si palabra se evalúa a -, el
       descriptor de fichero n se cierra. Si n no se especifica, se emplea  la  entrada  estándar
       (descriptor de fichero 0).

       Operador

              [n]>&palabra

       is  used  similarly  to  duplicate  output  file  descriptors.  If n is not specified, the
       standard output (file descriptor 1) is used.  If the digits in word do not specify a  file
       descriptor  open  for  output,  a  redirection error occurs.  If word evaluates to -, file
       descriptor n is closed.  As a special case, if n is omitted, and word does not  expand  to
       one  or  more  digits  or  -,  the  standard  output  and standard error are redirected as
       described previously.

   Mobilidad de los Descriptores de Archivo
       Operador de Redirección

              [n]<&cifra-

       moves the file descriptor digit  to  file  descriptor  n,  or  the  standard  input  (file
       descriptor 0) if n is not specified.  digit is closed after being duplicated to n.

       De forma análoga, el operador de redirección

              [n]>&cifra-

       moves  the  file  descriptor  digit  to  file  descriptor  n, or the standard output (file
       descriptor 1) if n is not specified.

   Apertura de Descriptores de Archivo para lectura y escritura
       Operador de Redirección

              [n]<>palabra

       hace que el fichero cuyo nombres sea la expansión de palabra se abra para lectura  y  para
       escritura  en  el  descriptor  de  fichero  n,  o  en  el descriptor de fichero 0 si no se
       especifica n.  Si el fichero no existe, se crea.

ALIAS

       Aliases 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
       alias and unalias builtin commands (see SHELL BUILTIN COMMANDS 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 /, $, `, and = and any of the  shell
       metacharacters  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  ls
       to  ls -F, for instance, and bash does not try to recursively expand the replacement text.
       If the last character of the alias value is a blank, then the next command word  following
       the alias is also checked for alias expansion.

       Los alias se crean y listan con la orden alias, y se quitan con la orden unalias.

       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  FUNCIONES
       más adelante.

       Los  alias no se expanden cuando la shell no es interactivo, a menos que se haya puesto la
       opción expand_aliases mediante shopt  (consulte  la  descripción  de  shopt  bajo  ÓRDENES
       NATIVAS DE LA SHELL más adelante).

       The  rules  concerning  the  definition  and  use of aliases are somewhat confusing.  Bash
       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 alias in compound
       commands.

       Para casi cualquier propósito, los alias pueden sustituirse por funciones de la shell.

FUNCIONES

       A shell function, defined as described above under  SHELL  GRAMMAR,  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 # is updated to reflect the change.  Special parameter 0
       is  unchanged.   The  first  element  of  the  FUNCNAME variable is set to the name of the
       function while the function is executing.

       All other aspects of the shell execution environment are identical between a function  and
       its  caller  with these exceptions: the DEBUG and RETURN traps (see the description of the
       trap builtin under SHELL BUILTIN COMMANDS below) are not inherited unless the function has
       been  given  the trace attribute (see the description of the declare builtin below) or the
       -o functrace shell option has been enabled  with  the  set  builtin  (in  which  case  all
       functions  inherit  the  DEBUG and RETURN traps), and the ERR trap is not inherited unless
       the -o errtrace shell option has been enabled.

       Variables local to the function may be declared with  the  local  builtin  command  (local
       variables).   Ordinarily,  variables  and their values are shared between the function and
       its caller.  If a variable is declared local, the variable's visible scope  is  restricted
       to that function and its children (including the functions it calls).

       In  the  following  description,  the  current  scope  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  local  or  declare  builtins  in  the
       function that is currently executing.

       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.

       The  shell uses dynamic scoping 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.

       For  example,  if  a  variable var is declared as local in function func1, and func1 calls
       another function func2, references to var made from within func2 will resolve to the local
       variable var from func1, shadowing any global variable named var.

       The  unset  builtin  also acts using the same dynamic scope: if a variable is local to the
       current scope, unset 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 localvar_unset shell option changes this behavior).

       The FUNCNEST 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.

       If the builtin command return is executed  in  a  function,  the  function  completes  and
       execution  resumes  with the next command after the function call.  Any command associated
       with the RETURN trap is executed before execution resumes.  When a function completes, the
       values of the positional parameters and the special parameter # are restored to the values
       they had prior to the function's execution.

       Function names and definitions may be listed with the -f option to the declare or  typeset
       builtin  commands.   The -F option to declare or typeset will list the function names only
       (and optionally the source file and line number, if the extdebug 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  -f  option  to  the
       export  builtin.   A  function  definition may be deleted using the -f option to the unset
       builtin.

       Las funciones pueden anidarse. La variable  FUNCNEST  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.

EVALUACIÓN ARITMÉTICA

       The shell allows arithmetic expressions to be evaluated, under certain circumstances  (see
       the  let and declare builtin commands, the (( compound command, and Arithmetic Expansion).
       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.

       id++ id--
              variable post-incremento y post-reducción
       - +    menos y más unarios
       ++id --id
              variable pre-incremento y pre-reducción
       ! ~    negación lógica y bit a bit.
       **     exponenciación
       * / %  multiplicación, división, resto
       + -    adición, sustracción
       << >>  desplazamientos de bits a izquierda y derecha
       <= >= < >
              comparación
       == !=  igualdad y desigualdad
       &      Y de bits (AND)
       ^      O exclusivo de bits (XOR)
       |      O inclusivo de bits (OR)
       &&     Y lógico (AND)
       ||     O lógico (OR)
       expr?expr:expr
              Operador condicional
       = *= /= %= += -= <<= >>= &= ^= |=
              asignación
       expr1 , expr2
              coma

       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 integer attribute using declare -i is assigned a
       value.  A null value evaluates to 0.  A shell variable need not have its integer attribute
       turned on to be used in an expression.

       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 [base#]n, where the optional
       base is a decimal number between 2 and 64 representing the arithmetic base,  and  n  is  a
       number  in that base.  If base# is omitted, then base 10 is used.  When specifying n, 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 base is less than or equal to 36,
       lowercase and uppercase letters may be used interchangeably to represent  numbers  between
       10 and 35.

       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.

EXPRESIONES CONDICIONALES

       Conditional expressions are used by the [[ compound command and the  test  and  [  builtin
       commands  to test file attributes and perform string and arithmetic comparisons.  The test
       and [ commands determine their  behavior  based  on  the  number  of  arguments;  see  the
       descriptions of those commands for any other command-specific actions.

       Expressions are formed from the following unary or binary primaries.  Bash handles several
       filenames specially when they are used in expressions.  If the operating system  on  which
       bash  is  running  provides  these  special  files,  bash will use them; otherwise it will
       emulate them internally with this behavior: If any file argument to one of  the  primaries
       is  of the form /dev/fd/n, then file descriptor n is checked.  If the file argument to one
       of the primaries is one of /dev/stdin, /dev/stdout, or /dev/stderr, file descriptor 0,  1,
       or 2, respectively, is checked.

       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.

       Cuando se emplea con [[, los operadores < y > ordenan de modo lexicográfico en base  a  la
       configuración de idioma del equipo. La orden test realiza la ordenación en base a ASCII.

       -a archivo
              Verdad si archivo existe.
       -b archivo
              Verdad si archivo existe y es un archivo especial de bloques.
       -c fichero
              Verdad si fichero existe y es un fichero especial de caracteres.
       -d fichero
              Verdad si fichero existe y es un directorio.
       -e fichero
              Verdad si archivo existe.
       -f fichero
              Verdad si fichero existe y es un fichero regular.
       -g fichero
              Verdad si fichero existe y tiene el bit SGID.
       -h fichero
              Verdad si archivo existe y es un enlace simbólico o blando.
       -k archivo
              Verdad si archivo existe y tiene el bit 'pegajoso' (STIcky).
       -p fichero
              Verdad si fichero existe y es una tubería con nombre (FIFO).
       -r fichero
              Verdad si fichero existe y se puede leer.
       -s fichero
              Verdad si fichero existe y tiene un tamaño mayor que cero.
       -t fd  Verdad si el descriptor de fichero fd está abierto y se refiere a una terminal.
       -u archivo
              Verdad si fichero existe y tiene el bit SUID.
       -w fichero
              Verdad si fichero existe y se puede modificar.
       -x fichero
              Verdad si fichero existe y es ejecutable.
       -G fichero
              Verdad si fichero existe y su grupo es el GID efectivo.
       -L fichero
              Verdad si archivo existe y es un enlace simbólico o blando.
       -N fichero
              Verdad si fichero existe y ha sido modificado desde que se leyó la última vez.
       -O archivo
              Verdad si fichero existe y su propietario es el UID efectivo.
       -S fichero
              Verdad si fichero existe y es un zócalo (socket).
       fichero1 -ef fichero2
              Verdad si archivo1 y archivo2 tienen los mismos números de nodo-í y de dispositivo.
       fichero1 -nt fichero2
              Verdad si archivo1 es más reciente (según la fecha de modificación) que archivo2, o
              si archivo1 existe mientras que archivo2 no.
       archivo1 -ot archivo2
              Verdad si archivo1 es más antiguo que archivo2, o si archivo2 existe  mientras  que
              archivo1 no.
       -o nombre-opción
              Verdad  si  la  opción  de  la  shell nombre-opción está activada.  Vea la lista de
              opciones bajo la descripción de la opción -o de la orden interna set más adelante.
       -v nombre-variable
              Verdadero si está definida la variable de la shell varname (se le  ha  asignado  un
              valor).
       -R nombre-variable
              Verdadero  si  la variable de la shell varname está definida y es una referencia de
              nombre.
       -z cadena
              Verdad si la longitud de cadena es cero.
       cadena
       -n cadena
              Verdad si la longitud de cadena no es cero.

       cadena1 == cadena2
       cadena1 = cadena2
              True if the strings are equal.  = should be used with the test  command  for  POSIX
              conformance.   When  used  with  the  [[ command, this performs pattern matching as
              described above (Compound Commands).

       cadena1 != cadena2
              Verdad si las cadenas no son iguales.

       cadena1 < cadena2
              Verdad si cadena1 se ordena lexicográficamente antes de cadena2.

       cadena1 > cadena2
              Verdad si cadena1 se clasifica lexicográficamente tras cadena2.

       arg1 OP arg2
              OP is one of -eq, -ne, -lt, -le, -gt, or -ge.  These  arithmetic  binary  operators
              return  true  if  arg1 is equal to, not equal to, less than, less than or equal to,
              greater than, or greater than or equal to arg2, respectively.  Arg1 and arg2 may be
              positive  or  negative  integers.  When used with the [[ command, Arg1 and Arg2 are
              evaluated as arithmetic expressions (see ARITHMETIC EVALUATION above).

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:

       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.

       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.

       3.     Se ejecutan las redirecciones como se describió más arriba bajo REDIRECCIÓN.

       4.     El texto tras el = 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.

       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.

       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.

       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.

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.

       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 FUNCIONES.  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.

       Si el nombre no es ni una función de la shell ni una orden interna, y no  contiene  barras
       inclinadas,  bash  busca  en  cada  elemento de PATH un directorio que contenga un archivo
       ejecutable con ese nombre.  Bash emplea una tabla de dispersión (hash) para  recordar  los
       nombres de ruta completos de los archivos ejecutables (consulte hash en ÓRDENES NATIVAS DE
       LA SHELL a continuación).  Solo se realiza una búsqueda completa  de  los  directorios  de
       PATH  si  la  orden no se encuentra en la tabla de llamada command_not_found_handle. 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.

       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.

       Si esta ejecución fallara porque el fichero no tuviera un  formato  ejecutable  y  tampoco
       fuese  un  directorio,  se  asumiría  que  es un script de la shell, 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  hash  más adelante en ÓRDENES NATIVAS DE LA
       SHELL).

       Si el programa es un fichero que empieza con los dos caracteres #!, 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.

ENTORNO DE EJECUCIÓN DE ÓRDENES

       la shell tiene un entorno de ejecución, que consiste en lo siguiente:

       •      ficheros  abiertos  heredados  por  la  shell  en la llamada, quizás modificada por
              redirecciones suministradas a la orden interna exec

       •      el directorio de trabajo en curso, establecido por cd, pushd o popd, o heredado por
              la shell en la llamada

       •      la  máscara  de  modo de creación de ficheros, establecida por umask o heredada del
              padre de la shell

       •      las trampas en curso establecidas por trap

       •      parámetros de la shell que han sido establecidos por asignaciones  de  variables  o
              con set, o heredados del padre de la shell en el entorno

       •      funciones  de  la  shell definidas durante la ejecución o heredadas del padre de la
              shell en el entorno

       •      opciones activadas en la llamada (bien por omisión  o  mediante  argumentos  en  la
              línea de órdenes) o por set

       •      opciones activadas mediante shopt

       •      alias de la shell definidos con alias

       •      varios  identificadores  de  proceso, incluyendo los de tareas en segundo plano, el
              valor de $$, y el valor de $PPID

       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.

       •      los ficheros abiertos de la shell, más las modificaciones y adiciones especificadas
              en la orden por redirecciones

       •      el directorio de trabajo en curso

       •      la máscara de modo de creación de ficheros

       •      variables  de la shell marcadas para la exportación, junto con variables exportadas
              para la orden, pasadas en el entorno

       •      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

       Una  orden llamada en este entorno separado no puede afectar al entorno de ejecución de la
       shell.

       Una subshell es una copia del proceso de la shell.

       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.

       Subshells spawned to execute command substitutions inherit the value of the -e option from
       the parent shell.  When not in posix mode, bash clears the -e option in such subshells.

       If a command is followed by a & and job control is not active, the default standard  input
       for  the command is the empty file /dev/null.  Otherwise, the invoked command inherits the
       file descriptors of the calling shell as modified by redirections.

ENTORNO

       Cuando se llama a un programa, se le da un vector de  cadenas  de  caracteres  llamado  el
       entorno.  Esto es una lista de parejas nombre-valor, de la forma nombre=valor.

       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 exportar a procesos hijos. Las órdenes ejecutadas heredan el entorno.
       Las órdenes export y declare -x 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 unset más las adiciones con  las
       órdenes export y declare -x.

       El   entorno  para  cualquier  orden  simple  o  función  puede  aumentarse  temporalmente
       prefijándola con asignaciones de parámetros,  como  se  describió  arriba  en  PARÁMETROS.
       Estas sentencias de asignación afectan solamente al entorno visto por esa orden.

       Si  la  opción  -k está puesta (vea la orden interna set más adelante), entonces todas las
       asignaciones de parámetros se ponen en el entorno para una orden, no solo las que preceden
       a su nombre.

       Cuando  bash  llama  a una orden externa, la variable _ se pone con el nombre completo del
       fichero de la orden y se pasa a esa orden en su entorno.

ESTADO DE SALIDA

       El estado de salida de una orden ejecutada es el  valor  retornado  por  las  llamada  del
       sistema waitpid 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.

       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 N, bash emplea el valor
       de 128+N como el estado de salida.

       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.

       Si  una  orden  falla  debido  a un error durante la expansión o redirección, el estado de
       salida es mayor que cero.

       Las órdenes nativas de la shell devuelven un estado de 0 (verdad) si acaban con  éxito,  y
       distinto  de  cero  (falso)  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.

       El estado de salida de la última orden puede verse comprobando el parámetro especial $?.

       El  propio  bash  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 exit más adelante.

SEÑALES

       Cuando  bash  es  interactivo, en la ausencia de trampas, no hace caso de SIGTERM (de modo
       que kill 0 no mata una shell interactiva), y se captura y maneja SIGINT (de manera que  la
       orden  interna  wait es interrumpible).  En todos los casos, bash no hace caso de SIGQUIT.
       Si el control de tareas tiene efecto, bash no hace caso de SIGTTIN, SIGTTOU, y SIGTSTP.

       Las órdenes no nativas ejecutadas por bash  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  SIGINT  y  también  SIGQUIT  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 SIGTTIN, SIGTTOU, ni SIGTSTP.

       la shell, de forma predeterminada, finaliza al recibir una señal SIGHUP. Antes  de  salir,
       reenvía  la  señal  SIGHUP  a  todas  las  tareas,  en  ejecución o paradas.  A las tareas
       detenidas se les envía SIGCONT para asegurarse de  que  reciben  la  señal  SIGHUP.   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 disown (vea ÓRDENES NATIVAS DE LA SHELL más adelante) o marcarlo  para
       no recibir SIGHUP empleando disown -h.

       Si  la  opción  de  la  shell  huponexit se ha puesto mediante shopt, bash envía una señal
       SIGHUP a todas las tareas cuando una shell de entrada interactiva finaliza.

       If bash 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 bash is waiting
       for an asynchronous command via the wait builtin, the reception of a signal  for  which  a
       trap  has  been  set will cause the wait builtin to return immediately with an exit status
       greater than 128, immediately after which the trap is executed.

       When job control is not enabled, and bash is waiting for a foreground command to complete,
       the  shell  receives  keyboard-generated  signals such as SIGINT (usually generated by ^C)
       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 ^C sends SIGINT to all
       processes in that process group.

       When bash is running without job control enabled and receives SIGINT while waiting  for  a
       foreground  command,  it  waits  until that foreground command terminates and then decides
       what to do about the SIGINT:

       1.     If the command terminates due to the SIGINT, bash concludes that the user meant  to
              end  the  entire  script, and acts on the SIGINT (e.g., by running a SIGINT trap or
              exiting itself);

       2.     If the command does not terminate due to SIGINT, the  program  handled  the  SIGINT
              itself  and  did not treat it as a fatal signal.  In that case, bash does not treat
              SIGINT as a fatal signal, either, instead assuming that the SIGINT was used as part
              of  the  program's normal operation (e.g., emacs uses it to abort editing commands)
              or deliberately discarded.  However, bash will run any trap set on  SIGINT,  as  it
              does  with  any  other  trapped  signal  it  receives  while  it is waiting for the
              foreground command to complete, for compatibility.

CONTROL DE TAREAS

       El control de tareas se refiere a la capacidad  de  parar  selectivamente  (suspender)  la
       ejecución  de  procesos  y  continuar  (reanudar)  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 bash.

       la  shell  asocia  un  trabajo con cada tubería. Mantiene una tabla de tareas ejecutándose
       actualmente, que pueden listarse con la  orden  jobs.   Cuando  bash  arranca  un  trabajo
       asíncronamente (en segundo plano), imprime una línea con un aspecto como ésta:

              [1] 25647

       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.  Bash emplea la abstracción del trabajo como la base para el control de tareas.

       To  facilitate  the  implementation  of  the  user interface to job control, the operating
       system maintains the notion of a current terminal  process  group  ID.   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 SIGINT.  These processes are said to
       be  in the foreground.  Background 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 stty tostop, write to
       the terminal.  Background processes which attempt to read from (write to when stty  tostop
       is  in  effect)  the terminal are sent a SIGTTIN (SIGTTOU) signal by the kernel's terminal
       driver, which, unless caught, suspends the process.

       Si el sistema operativo en el que bash se está ejecutando, admite el control de  tareas  y
       bash da facilidades para su uso. Teclear el carácter suspender (típicamente ^Z, Control-Z)
       mientras que un proceso se está ejecutando, hace que ese proceso se pare y le  devuelve  a
       Ud. al bash.  Teclear el carácter suspensión diferida (típicamente ^Y, Control-Y) hace que
       el proceso se pare cuando intente leer entrada desde la terminal, y el control se devuelve
       a bash.  El usuario puede entonces manipular el estado de este trabajo, empleando la orden
       bg para continuar con él en segundo plano, la orden fg para continuar  con  él  en  primer
       plano,  o la orden kill para matarlo. Un ^Z 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.

       There  are  a number of ways to refer to a job in the shell.  The character % introduces a
       job specification (jobspec).  Job number n may be referred to as %n.  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, %ce refers to a stopped job whose command  name  begins
       with  ce.   If  a prefix matches more than one job, bash reports an error.  Using %?ce, on
       the other hand, refers to any job containing the string ce in its command  line.   If  the
       substring  matches  more than one job, bash reports an error.  The symbols %% and %+ refer
       to the shell's notion of the current job, which is the last job stopped while  it  was  in
       the foreground or started in the background.  The previous job may be referenced using %-.
       If there is only a single job, %+ and %- can both be used to refer to that job.  In output
       pertaining  to  jobs  (e.g.,  the  output  of the jobs command), the current job is always
       flagged with a +, and the previous job with a -.  A single %  (with  no  accompanying  job
       specification) also refers to the current job.

       Si  simplemente  damos el nombre de una tarea, esto puede traerlo a primer plano: %1 es un
       sinónimo de “fg %1”, que trae el trabajo número 1  desde  el  segundo  plano  al  primero.
       Similarmente, “%1 &” reanuda la tarea 1 en segundo plano, equivalente a “bg %1”.

       La  shell  se  entera  inmediatamente cuando una tarea cambia de estado. Normalmente, bash
       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 -b de la
       orden interna set está activada, bash informa de tales cambios  inmediatamente.  Cualquier
       trampa en SIGCHILD será ejecutada para cada descendiente que termine.

       If  an  attempt  to  exit  bash is made while jobs are stopped (or, if the checkjobs shell
       option has been enabled using the shopt builtin, running),  the  shell  prints  a  warning
       message,  and, if the checkjobs option is enabled, lists the jobs and their statuses.  The
       jobs 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.

       Cuando la shell está esperando por una tarea o un proceso con la orden interna wait  y  el
       control  de  tareas  está  activado,  wait  retornará cuando la tarea cambie su estado. La
       opción -f hace que wait espere hasta que la tarea o el proces termine para retornar.

INDICADORES

       Cuando se ejecuta interactivamente, bash muestra el indicador  primario  PS1  cuando  está
       dispuesto  para  leer  una  orden,  y  el  secundario PS2 cuando necesita más entrada para
       completar una orden.  Bash muestra el indicador PS0 después  de  recibir  una  orden  pero
       antes  de  ejecutarla. Bash muestra PS4 como se describió anteriormente antes de seguir la
       ejecución de cada orden cuando la opción -x está activada. Bash permite personalizar estos
       indicadores  insertando  caracteres  especiales  protegidos  con  barras invertidas que se
       interpretarán de este modo:
              \a     un carácter de alerta ASCII (07)
              \d     la fecha en el formato "Día-Semana Mes  Día"  (ejemplo,  "Tue  May  26")  en
                     inglés
              \D{formato}
                     el  formato  se envía a strftime(3) y el resultado se introduce en la cadena
                     del indicador; si formato está en blanco, se mostrará la  fecha  y  hora  en
                     formato local. Las llaves son necesarias
              \e     un carácter de escape (ESC) ASCII (033)
              \h     el nombre del equipo anfitrión hasta el primer `.'
              \H     el nombre del equipo anfitrión completo
              \j     la cantidad de tareas gestionadas por la shell al mismo tiempo
              \l     el nombre base del nombre de dispositivo del terminal de la shell
              \n     salto de línea
              \r     retorno de carro
              \s     el  nombre  de  la  shell,  el  nombre base de $0 (la porción que sigue a la
                     última barra inclinada)
              \t     la hora actual en el formato de 24 horas HH:MM:SS
              \T     la hora actual en el formato de    12 horas HH:MM:SS
              \@     la hora actual en el formato de 12 horas con indicador AM/PM
              \A     la hora actual en el formato de 24 horas HH:MM
              \u     el nombre de usuario del usuario en curso
              \v     la versión de bash (e.g., 2.00)
              \V     la distribución de bash, versión + nivel de parcheo (e.g., 2.00.0)
              \w     el valor de la variable de la shell PWD ($PWD), con $HOME abreviado con  una
                     tilde (emplea el valor de la variable PROMPT_DIRTRIM).
              \W     el nombre base del directorio de $PWD, cin $HOME abreviado con una tilde.
              \!     el número de historia de esta orden
              \#     el número de orden de esta orden
              \$     si el UID efectivo es 0 (el super-usuario), un #, si no un $
              \nnn   el carácter correspondiente al número octal nnn
              \\     una barra inclinada invertida
              \[     empieza  una  secuencia  de  caracteres no imprimibles, que pueden emplearse
                     para empotrar una secuencia de control del terminal en el indicador
              \]     termina una secuencia de caracteres no imprimibles

       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 HISTORIAL 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  promptvars  (vea  la
       descripción de la orden shopt bajo ÓRDENES INTERNAS  DE LA SHELL 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 caracter especial para la expansión de palabras.

READLINE

       This is the library that handles reading input when using an interactive shell, unless the
       --noediting option is given at shell invocation.  Line editing is also used when using the
       -e option to the read 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 -o emacs or -o vi options to the set builtin (see SHELL
       BUILTIN COMMANDS below).  To turn off line editing after the shell is running, use the  +o
       emacs or +o vi options to the set builtin.

   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-tecla; así, C-n  significa  Control-N.  De
       forma  similar,  las  teclas  meta  (Alt)   se  representan  con M-tecla, de forma que M-x
       significa Meta-X. (En teclados sin tecla meta, M-x significa ESC x, i.e., pulsar la  tecla
       de  escape  (Esc)  y  luego  la  tecla  x.   Esto  hace  que  ESC sea el prefijo meta.  La
       combinación M-C-x quiere decir ESC-Control-x, o pulsar la tecla Escape  y  luego  mantener
       presionada la tecla Control mientras se pulsa la tecla x.)

       Las órdenes de readline pueden recibir argumentos 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., kill-line) 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.

       Cuando  una  orden  se  describe como que corta texto, el texto borrado se guarda para una
       posible futura recuperación (pegado). El texto cortado se guarda en un  anillo  de  corte.
       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.

   Inicio de Readline
       Readline  se personaliza poniendo órdenes en un archivo de inicio (el archivo inputrc). El
       nombre de este archivo se toma del valor de la variable INPUTRC. Si esta variable no  está
       definida,  el  valor predeterminado es /etc/inputrc. 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  #  son  comentarios.   Las  líneas  que  comiencen  con  un  $ indican
       construcciones  condicionales.   Otras  líneas  representan  definiciones  de   teclas   y
       definiciones de variables.

       Las definiciones predeterminadas de teclas pueden cambiarse con un fichero inputrc.  Otros
       programas que usen esta biblioteca pueden añadir sus propias órdenes y definiciones.

       Por ejemplo, el poner

              M-Control-u: universal-argument
       o
              C-Meta-u: universal-argument
       dentro  del  fichero  inputrc  haría  que   M-C-u   ejecutara   la   orden   de   readline
       universal-argument.

       Se  reconocen  los  siguientes  nombres  simbólicos  de caracteres: RUBOUT, DEL, ESC, LFD,
       NEWLINE, RET, RETURN, SPC, SPACE, y TAB.

       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 macro).

   Definiciones de Teclas de Readline
       La  sintaxis  para  controlar  las definiciones de teclas en el fichero inputrc 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 Meta- o Control-, o como  una
       secuencia de teclas.

       Cuando  se  use la forma nombre-tecla:nombre-función o macro, nombre-tecla es el nombre de
       una tecla en inglés. Por ejemplo:

              Control-u: universal-argument
              Meta-Rubout: backward-kill-word
              Control-o: "> salida"

       En el ejemplo de arriba, C-u se enlaza a la función universal-argument, M-DEL se vincula a
       la  función  backward-kill-word, y C-o se define como que se ejecute la macro expresada en
       la parte derecha (esto es, insertar el texto ``> output'' en la línea).

       En  la  segunda  forma,  "sectecla":nombre-función  o  macro,  sectecla  difiere   de   la
       nombre-tecla  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.

              "\C-u": universal-argument
              "\C-x\C-r": re-read-init-file
              "\e[11~": "Tecla de Función 1"

       En este ejemplo, C-u se enlaza de nuevo a  la  función  universal-argument.   C-x  C-r  se
       vincula  a  la  función  re-read-init-file, y ESC [ 1 1 ~ se define como que se inserte el
       texto ``Function Key 1''.

       El conjunto completo de las secuencias de escape al estilo de GNU Emacs es
              \C-    prefijo de control
              \M-    prefijo meta
              \e     un carácter de escape (ESC)
              \\     barra invertida
              \"     una " literal
              \'     una ' literal

       Además de las secuencias de escape al estilo de  GNU  Emacs,  se  dispone  de  un  segundo
       conjunto de escapes con la barra invertida:
              \a     alerta (pitido)
              \b     espacio-atrás
              \d     espacio atrás
              \f     nueva página
              \n     salto de línea
              \r     retorno de carro
              \t     tabulación horizontal
              \v     tabulación vertical
              \nnn   el  carácter  de  8  bits  cuyo  código es el valor octal nnn (de uno a tres
                     dígitos)
              \xHH   el carácter de 8-bits cuyo código es el valor  hexadecimal  HH  (uno  o  dos
                     dígitos hexadecimales)

       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 '.

       Bash  permite  mostrar  o  modificar las definiciones de teclas en curso mediante la orden
       interna bind.  El modo de edición puede cambiarse durante una sesión interactiva empleando
       la opción -o de la orden interna set (vea ÓRDENES NATIVAS DE LA SHELL más adelante).

   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 inputrc con una sentencia de la forma

              set nombre-variable valor
       o bien empleando la orden nativa bind (consulte ÓRDENES NATIVAS DE LA SHELL más adelante).

       Except where noted, readline variables can take the values On or Off  (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 On.  All other values  are
       equivalent to Off.  The variables and their default values are:

       active-region-start-color
              A  string  variable that controls the text color and background when displaying the
              text in the active region (see  the  description  of  enable-active-region  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 "\e[01;33m".
       active-region-end-color
              A string variable  that  "undoes"  the  effects  of  active-region-start-color  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 "\e[0m".
       bell-style (audible)
              Controla  qué  pasa  cuando  readline  quiere  tocar el pito de la terminal.  Si se
              define como none, readline nunca toca el pito. Si se pone a visible,  readline  usa
              una  alerta  visible si está disponible.  Si se pone como audible, readline intenta
              hacer sonar el pito de la terminal.
       bind-tty-special-chars (On)
              If set to On, readline attempts to bind the control characters treated specially by
              the kernel's terminal driver to their readline equivalents.
       blink-matching-paren (Off)
              If  set  to  On,  readline  attempts  to  briefly  move  the  cursor  to an opening
              parenthesis when a closing parenthesis is inserted.
       colored-completion-prefix (Off)
              If set to On, 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 LS_COLORS environment variable.  If there  is  a  color
              definition        in       $LS_COLORS       for       the       custom       suffix
              "readline-colored-completion-prefix", readline  uses  this  color  for  the  common
              prefix instead of its default.
       colored-stats (Off)
              If  set  to  On,  readline  displays possible completions using different colors to
              indicate their file type.  The color definitions are taken from the  value  of  the
              LS_COLORS environment variable.
       comment-begin (“#”)
              La  cadena  que  se  inserta cuando se ejecuta la orden de readline insert-comment.
              Esta orden está enlazada a M-# en modo emacs y a # en modo vi.
       completion-display-width (-1)
              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.
       completion-ignore-case (Off)
              Si  se  pone  a  On,  readline  realiza la concordancia y terminación de nombres de
              ficheros sin importar si las letras son mayúsculas o minúsculas.
       completion-map-case (Off)
              If set to On, and completion-ignore-case is enabled, readline  treats  hyphens  (-)
              and  underscores  (_)  as  equivalent  when  performing  case-insensitive  filename
              matching and completion.
       completion-prefix-display-length (0)
              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.
       completion-query-items (100)
              Esto  determina  cuándo  se  pregunta  al  usuario  si  quiere  ver  el  número  de
              terminaciones posibles generadas por la orden possible-completions.  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.
       convert-meta (On)
              Si  se  pone  a On, 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 prefijo meta). Por está definido como On,
              pero readline lo define como Off si la localización contiene caracteres de 8  bits.
              Esta variable depende de la LC_TYPE pudiendo variar según la localización empleada.
       disable-completion (Off)
              Si  se pone a On, 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
              self-insert.
       echo-control-characters (On)
              When set to On, on operating systems that indicate they support it, readline echoes
              a character corresponding to a signal generated from the keyboard.
       editing-mode (emacs)
              Controla si readline empieza con un conjunto de definiciones de  teclas  similar  a
              las de Emacs o vi.  editing-mode puede ponerse a los valores emacs o vi.
       emacs-mode-string (@)
              If   the   show-mode-in-prompt  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  \1  and  \2
              escapes to begin and end sequences of non-printing characters, which can be used to
              embed a terminal control sequence into the mode string.
       enable-active-region (On)
              The point is the current cursor  position,  and  mark  refers  to  a  saved  cursor
              position.   The text between the point and mark is referred to as the region.  When
              this variable is set to On, readline  allows  certain  commands  to  designate  the
              region  as  active.  When the region is active, readline highlights the text in the
              region using the value of the  active-region-start-color,  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.
       enable-bracketed-paste (On)
              When  set  to  On,  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.
       enable-keypad (Off)
              Cuando se pone a On, readline intentará  activar  el  teclado  auxiliar  cuando  se
              llame.  Algunos  sistemas  necesitan  esto  para  activar  las teclas de flechas de
              cursor.
       enable-meta-key (On)
              Cuando se pone a On, 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.
       expand-tilde (Off)
              Si se pone a On, la expansión de  tilde  se  realiza  cuando  readline  intenta  la
              terminación de palabras.
       history-preserve-point (Off)
              If set to On, the history code attempts to place point at the same location on each
              history line retrieved with previous-history or next-history.
       history-size (unset)
              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 HISTSIZE shell
              variable.  If an attempt is made to set history-size to a  non-numeric  value,  the
              maximum number of history entries will be set to 500.
       horizontal-scroll-mode (Off)
              When  set  to On, 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.
       input-meta (Off)
              Si se pone a On, 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 meta-flag es un sinónimo para esta variable. Por defecto,  su
              valor  es off aunque readline lo pondrá a On si la localización contiene caracteres
              de 8 bits. Esta variable depende de LC_TYPE pudiendo variar según  la  localización
              empleada.
       isearch-terminators (“C-[C-J”)
              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 ESC and C-J will terminate an incremental search.
       keymap (emacs)
              Establece  el mapa de teclado actual para readline. El conjunto de nombres de mapas
              de  teclado  válidos  es  emacs,  emacs-standard,   emacs-meta,   emacs-ctlx,   vi,
              vi-command,  y  vi-insert.   vi es equivalente a vi-command; emacs es equivalente a
              emacs-standard.  El valor predeterminado es emacs; el valor de editing-mode también
              afecta al mapa de teclado predeterminado.
       keyseq-timeout (500)
              Specifies the duration readline 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, readline will use  the  shorter  but  complete  key
              sequence.   The  value  is specified in milliseconds, so a value of 1000 means that
              readline 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, readline will wait
              until another key is pressed to decide which key sequence to complete.
       mark-directories (On)
              Si se pone a On, los nombres de directorios completados tendrán una barra inclinada
              añadida al final.
       mark-modified-lines (Off)
              Si  se pone a On, las líneas de historia que hayan sido modificadas se muestran con
              un asterisco precediéndolas (*).
       mark-symlinked-directories (Off)
              If set to On, completed names which are symbolic links to directories have a  slash
              appended (subject to the value of mark-directories).
       match-hidden-files (On)
              This  variable,  when  set  to On, causes readline to match files whose names begin
              with a `.' (hidden files) when performing filename completion.  If set to Off,  the
              leading `.' must be supplied by the user in the filename to be completed.
       menu-complete-display-prefix (Off)
              If  set  to  On, menu completion displays the common prefix of the list of possible
              completions (which may be empty) before cycling through the list.
       output-meta (Off)
              If set to On, readline will display characters with the  eighth  bit  set  directly
              rather  than  as a meta-prefixed escape sequence.  The default is Off, but readline
              will set it to On if the locale contains eight-bit characters.   This  variable  is
              dependent on the LC_CTYPE locale category, and may change if the locale is changed.
       page-completions (On)
              Si está a On, readline emplea un paginador interno, similar a more, para mostrar en
              la pantalla todas las posibilidades autocompletado al mismo tiempo.
       print-completions-horizontally (Off)
              Si se pone a On, readline mostrará  terminaciones  con  concordancias  clasificadas
              horizontalmente en orden alfabético, en vez de verticalmente.
       revert-all-at-newline (Off)
              If set to On, readline will undo all changes to history lines before returning when
              accept-line is executed.  By default, history lines  may  be  modified  and  retain
              individual undo lists across calls to readline.
       show-all-if-ambiguous (Off)
              Esto altera el comportamiento predeterminado de las funciones de terminación. Si se
              pone a On, 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.
       show-all-if-unmodified (Off)
              This  alters  the default behavior of the completion functions in a fashion similar
              to show-all-if-ambiguous.  If set to On, 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.
       show-mode-in-prompt (Off)
              If  set  to  On, 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., emacs-mode-string).
       skip-completed-text (Off)
              If  set  to On, 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.
       vi-cmd-mode-string ((orden))
              If   the   show-mode-in-prompt  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  \1 and \2 escapes to begin and end sequences of non-printing
              characters, which can be used to embed a terminal control sequence  into  the  mode
              string.
       vi-ins-mode-string ((ins))
              If   the   show-mode-in-prompt  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  \1 and \2 escapes to begin and end sequences of non-printing
              characters, which can be used to embed a terminal control sequence  into  the  mode
              string.
       visible-stats (Off)
              Si  se  pone  a On, se añade un carácter que represente un tipo de fichero según lo
              que devuelve stat(2) cuando se listan las terminaciones posibles.

   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.

       $if    The  $if  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.

              mode   La forma mode= de la directiva $if se usa para ver si readline está en  modo
                     emacs  o  vi.   Esto se puede emplear en conjunción con la orden set keymap,
                     por ejemplo, para poner el teclado en los mapas emacs-standard y  emacs-ctlx
                     solo si readline está arrancando en modo emacs.

              term   La   forma  term=  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 = se prueba contra el nombre completo de la terminal  y
                     contra la porción del nombre de la terminal antes del primer -. Esto permite
                     que sun concuerde con sun y con sun-cmd, por ejemplo.

              version
                     The version test  may  be  used  to  perform  comparisons  against  specific
                     readline  versions.   The  version  expands to the current readline version.
                     The set of comparison operators includes =, (and ==), !=, <=, >=, <, and  >.
                     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., 7.1). If the minor version is omitted, it is assumed to be 0.
                     The operator may be separated from the string version and from  the  version
                     number argument by whitespace.

              application
                     La  construcción application se emplea para incluir definiciones específicas
                     de la aplicación. Cada programa que usa la  biblioteca  readline  define  el
                     nombre  de  la  aplicación,  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 bash:

                     $if Bash
                     # Entrecomilla la palabra actual o previa
                     "\C-xq": "\eb\"\ef\""
                     $endif

              variable
                     The variable construct provides simple equality tests for readline variables
                     and values.  The permitted comparison operators are  =,  ==,  and  !=.   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 on and off.

       $endif Esta orden, como se ha visto en el ejemplo precedente, termina una orden $if.

       $else  Las órdenes en esta rama de la directiva $if se ejecutan si la comprobación falla.

       $include
              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
              /etc/inputrc:

              $include  /etc/inputrc

   Búsquedas
       Readline proporciona órdenes para buscar a través del historial de órdenes (vea  HISTORIAL
       más  adelante)  líneas  que contengan una cadena especificada.  Hay dos modos de búsqueda:
       incremental y no incremental.

       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  isearch-terminators  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.

       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 newline will
       terminate the search and accept the line, thereby executing the command from  the  history
       list.

       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.

       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.

   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, punto  se  refiere  a  la
       posición  actual  del  cursor y marca se refiere a una posición guardada mediante la orden
       set-mark. El texto en dicho punto y la marca es lo que se conoce como region.

   Órdenes para el Movimiento
       beginning-of-line (C-a)
              Mover al principio de la línea en curso.
       end-of-line (C-e)
              Mover al final de la línea.
       forward-char (C-f)
              Mover un carácter hacia adelante.
       backward-char (C-b)
              Mover un carácter hacia atrás.
       forward-word (M-f)
              Mover adelante hasta el final de la siguiente palabra. Las palabras se componen  de
              caracteres alfanuméricos (letras y dígitos).
       backward-word (M-b)
              Mover  atrás  hasta  el  principio  de esta palabra o la anterior.  Las palabras se
              componen de caracteres alfanuméricos (letras y dígitos).
       shell-forward-word
              Mover adelante  hasta  el  final  de  la  siguiente  palabra.  Las  palabras  están
              delmitadas por metacaracteres de la shell no entrecomillados.
       shell-backward-word
              Mover  atrás  hasta  el  principio  de esta palabra o la anterior.  Las palabras se
              delimitan por metacaracteres de la shell no entrecomillados.
       previous-screen-line
              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.
       next-screen-line
              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.
       clear-display (M-C-l)
              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.
       clear-screen (C-l)
              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.
       redraw-current-line
              Refrescar la línea en curso.

   Órdenes para Manipular el Historial
       accept-line (Nueva-línea, Intro)
              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 HISTCONTROL.   Si  la
              línea  es  una de las de la historia, modificada, entonces restaurar el historial a
              su estado original.
       previous-history (C-p)
              Obtener la orden anterior del historial, moviéndose hacia atrás en la misma.
       next-history (C-n)
              Obtener la orden siguiente del historial, moviéndose hacia delante en el mismo.
       beginning-of-history (M-<)
              Mover a la primera línea del historial.
       end-of-history (M->)
              Mover al final de la historia de  entrada;  esto  es,  la  línea  que  está  siendo
              introducida en la actualidad.
       operate-and-get-next (C-o)
              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.
       fetch-history
              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.
       reverse-search-history (C-r)
              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.
       forward-search-history (C-s)
              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.
       non-incremental-reverse-search-history (M-p)
              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.
       non-incremental-forward-search-history (M-n)
              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.
       history-search-forward
              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.
       history-search-backward
              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.
       history-substring-search-backward
              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.
       history-substring-search-forward
              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.
       yank-nth-arg (M-C-y)
              Insertar el primer argumento de la orden anterior (normalmente la  segunda  palabra
              de  la  línea anterior) en el punto. Con un argumento n, insertar la n-sima palabra
              de la orden anterior (las palabras en la orden anterior empiezan con la palabra 0).
              Un  argumento  negativo  inserta  la  n-sima  palabra  desde  el  final de la orden
              anterior.Una vez que se computa el argumento n, se extraerá como  si  se  definiese
              esta exapnsión del historial: "!n"
       yank-last-arg (M-., M-_)
              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
              yank-nth-arg. Invocando varias veces yank-last-arg, 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 "!$".
       shell-expand-line (M-C-e)
              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  EXPANSIÓN
              DEL HISTORIAL más adelante para una descripción de la expansión de historia.
       history-expand-line (M-^)
              Realizar  la  expansión  de  historia  en  la  línea  en  curso.  Vea EXPANSIÓN DEL
              HISTORIAL más adelante para una descripción de la expansión de historia.
       magic-space
              Efectuar la expansión de historia en la línea en curso e insertar un espacio.   Vea
              EXPANSIÓN  DEL  HISTORIAL  más  adelante  para  una  descripción de la expansión de
              historia.
       alias-expand-line
              Realizar la expansión de alias en la línea en curso.  Vea  ALIAS  arriba  para  una
              descripción de la expansión de alias.
       history-and-alias-expand-line
              Realizar la expansión de historia y alias en la línea en curso.
       insert-last-argument (M-., M-_)
              Un sinónimo para yank-last-arg.
       edit-and-execute-command (C-x C-e)
              Invoca  un  editor  en  la  línea  de órdenes actual ejecutándose el resultado como
              órdenes de la shell. bash intenta invocas $VISUAL, $EDITOR y emacs en ese orden.

   Órdenes para Cambiar el Texto
       end-of-file (generalmente C-d)
              El caracter  que  determina  el  fin-de-archivo  se  define  por  ejemplo  mediante
              ``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 EOF.
       delete-char (C-d)
              Eliminar  el  carácter  en  el  punto.  Si  esta función está asociada con el mismo
              carácter que que tenga el tty para EOF, como suele serlo C-d, vea anteriormente los
              efectos.
       backward-delete-char (Borrar)
              Borrar  el  carácter tras el cursor. Cuando se da un argumento numérico, guardar el
              texto borrado en el anillo de corte.
       forward-backward-delete-char
              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.
       quoted-insert (C-q, C-v)
              Añadir  el  siguiente  carácter tecleado a la línea tal cual. Así es como se pueden
              insertar caracteres como C-q, por ejemplo.
       tab-insert (C-v TAB)
              Insertar un carácter de tabulación.
       self-insert (a, b, A, 1, !, ...)
              Insertar el carácter tecleado.
       transpose-chars (C-t)
              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.
       transpose-words (M-t)
              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.
       upcase-word (M-u)
              Poner  en  mayúsculas  la  palabra  en  curso  (o  la  siguiente). Con un argumento
              negativo, pone la anterior, pero no mueve el punto.
       downcase-word (M-l)
              Poner en minúsculas la palabra  en  curso  (o  la  siguiente).   Con  un  argumento
              negativo, pone la anterior, pero no mueve el punto.
       capitalize-word (M-c)
              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.
       overwrite-mode
              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 emacs mode; vi mode  does  overwrite  differently.
              Each call to readline() starts in insert mode.  In overwrite mode, characters bound
              to self-insert replace the text at point rather than pushing the text to the right.
              Characters  bound to backward-delete-char replace the character before point with a
              space.  By default, this command is unbound.

   Cortar y Pegar
       kill-line (C-k)
              Cortar el texto desde la posición actual del cursor hasta el final de la línea.
       backward-kill-line (C-x Borrar)
              Cortar hacia atrás hasta el principio de la línea.
       unix-line-discard (C-u)
              Cortar hacia atrás desde el punto hasta el principio de la línea. El texto  cortado
              se guarda en el anillo de corte.
       kill-whole-line
              Cortar todos los caracteres de la línea en curso, sin importar dónde esté el punto.
       kill-word (M-d)
              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 forward-word.
       backward-kill-word (M-supr)
              Cortar  la  palabra  tras el punto. Los extremos de las palabras son los mismos que
              los empleados por backward-word.
       shell-kill-word
              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 shell-forward-word.
       shell-backward-kill-word
              Cortar la palabra tras el punto. Los extremos de las palabras son  los  mismos  que
              los empleados por shell-backward-word.
       unix-word-rubout (C-w)
              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.
       unix-filename-rubout
              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.
       delete-horizontal-space (M-\)
              Borrar todos los espacios y tabuladores alrededor del punto.
       kill-region
              Cortar el texto en la región actual.
       copy-region-as-kill
              Copiar el texto de la región al anillo de corte.
       copy-backward-word
              Copiar  la palabra antes del punto al búfer de corte.  Los extremos de palabras son
              los mismos que con backward-word.
       copy-forward-word
              Copiar la palabra que sigue al punto al búfer de corte.  Los  extremos  de  palabra
              son los mismos que con forward-word.
       yank (C-y)
              Pegar la cima del anillo de corte en el búfer en el punto.
       yank-pop (M-y)
              Rotar  en  el  anillo de corte, y pegar la nueva cima. Solo funciona tras un yank o
              yank-pop.

   Argumentos Numéricos
       digit-argument (M-0, M-1, ..., M--)
              Añadir este dígito al argumento, acumulándolo, o comenzar con un  nuevo  argumento.
              M-- empieza un argumento negativo.
       universal-argument
              É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 universal-argument
              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.

   Terminación
       complete (TAB)
              Intentar  realizar  una  terminación  del  texto  antes del punto.  Bash intenta la
              terminación tratando al texto como una variable (si el texto comienza con $),  como
              un  nombre  de  usuario  (si  el  texto  empieza  con  ~), como un nombre de equipo
              anfitrión (si el texto comienza con @),  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.
       possible-completions (M-?)
              Listar las terminaciones posibles del texto antes del punto.
       insert-completions (M-*)
              Insertar todas las terminaciones  del  texto  antes  del  punto  que  habrían  sido
              generadas por possible-completions.
       menu-complete
              Similar to complete, but replaces the word to be completed with a single match from
              the list of  possible  completions.   Repeated  execution  of  menu-complete  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 bell-style)
              and  the  original text is restored.  An argument of n moves n 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 TAB, but is unbound by default.
       menu-complete-backward
              Identical  to  menu-complete,  but  moves  backward  through  the  list of possible
              completions, as if menu-complete had been given a negative argument.  This  command
              is unbound by default.
       delete-char-or-list
              Deletes  the  character under the cursor if not at the beginning or end of the line
              (like  delete-char).   If  at  the  end  of  the  line,  behaves   identically   to
              possible-completions.  This command is unbound by default.
       complete-filename (M-/)
              Intentar la terminación de un nombre de fichero en el texto antes del punto.
       possible-filename-completions (C-x /)
              Listar  las  posibles  terminaciones  del texto antes del punto, tratándolo como un
              nombre de fichero.
       complete-username (M-~)
              Intentar la terminación del texto antes del punto, tratándolo  como  un  nombre  de
              usuario.
       possible-username-completions (C-x ~)
              Listar  las  posibles  terminaciones  del texto antes del punto, tratándolo como un
              nombre de usuario.
       complete-variable (M-$)
              Intentar la terminación del texto antes del punto, tratándolo como una variable  de
              la shell.
       possible-variable-completions (C-x $)
              Listar  las  posibles  terminaciones del texto antes del punto, tratándolo como una
              variable de la shell.
       complete-hostname (M-@)
              Intentar la terminación del texto antes del punto, tratándolo  como  un  nombre  de
              equipo anfitrión.
       possible-hostname-completions (C-x @)
              Listar  las  posibles  terminaciones  del texto antes del punto, tratándolo como un
              nombre de equipo anfitrión.
       complete-command (M-!)
              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.
       possible-command-completions (C-x !)
              Listar  las  posibles  terminaciones  del texto antes del punto, tratándolo como un
              nombre de orden.
       dynamic-complete-history (M-TAB)
              Intentar la terminación del texto antes del punto, comparando el texto  con  líneas
              del historial buscando concordancias para la terminación.
       dabbrev-expand
              Intentar  completar  el  menu  en el texto antes del punto, comparando el texto con
              líneas del historial buscando concordancias para la terminación.
       complete-into-braces (M-{)
              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 Expansión de llaves arriba).

   Macros de Teclado
       start-kbd-macro (C-x ()
              Empezar a grabar los caracteres tecleados, en la macro de teclado en curso.
       end-kbd-macro (C-x ))
              Parar de grabar los caracteres tecleados  en  la  macro  de  teclado  en  curso,  y
              almacenar la definición.
       call-last-kbd-macro (C-x e)
              Reejecutar  la  última macro de teclado definida, haciendo que los caracteres en la
              macro aparezcan como si se hubieran pulsado en el teclado.
       print-last-kbd-macro ()
              Muestra la última macro de teclado definida en un formato adecuado para su  uso  en
              el archivo inputrc.

   Varios
       re-read-init-file (C-x C-r)
              Leer  los  contenidos  del  archivo  inputrc,  e incorporar cualquier definición de
              teclas o asignaciones de variables que se hubieran encontrado en él.
       abort (C-g)
              Terminar abruptamente la orden de edición en curso y tocar el pito de  la  terminal
              (según el establecimiento de bell-style).
       do-lowercase-version (M-A, M-B, M-x, ...)
              If  the  metafied  character  x  is uppercase, run the command that is bound to the
              corresponding metafied lowercase character.  The behavior  is  undefined  if  x  is
              already lowercase.
       prefix-meta (ESC)
              Convertir en meta el siguiente carácter tecleado.  ESC f es equivalente a Meta-f.
       undo (C-_, C-x C-u)
              Deshacer de forma incremental, recordado separadamente para cada línea.
       revert-line (M-r)
              Deshacer todos los cambios hechos a esta línea. Esto es como ejecutar la orden undo
              las veces suficientes como para devolver la línea a su estado inicial.
       tilde-expand (M-&)
              Efectuar la expansión de tilde en la palabra en curso.
       set-mark (C-@, M-<espacio>)
              Establecer la marca en el punto. Si se  da  un  argumento  numérico,  la  marca  se
              establece en esa posición.
       exchange-point-and-mark (C-x C-x)
              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.
       character-search (C-])
              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.
       character-search-backward (M-C-])
              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.
       skip-csi-sequence
              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 "\[", 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-[.
       insert-comment (M-#)
              Without a numeric argument, the value of the  readline  comment-begin  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  comment-begin,  the  value  is  inserted, otherwise the
              characters in comment-begin 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
              comment-begin 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.
       spell-correct-word (C-x s)
              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 cdspell.Los
              extremos de las palabras son los mismos que los empleados por shell-forward-word.
       glob-complete-word (M-g)
              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.
       glob-expand-word (C-x *)
              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.
       glob-list-expansions (C-x g)
              Mostrar  la  lista de expansiones que habrían sido generadas por glob-expand-word 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
       dump-functions
              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 inputrc.
       dump-variables
              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 inputrc.
       dump-macros
              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 inputrc.
       display-shell-version (C-x C-v)
              Mostrar información de versión acerca de la instancia actual de bash.

   Autocompletado Programable
       When  word  completion  is  attempted  for an argument to a command for which a completion
       specification (a compspec) has been defined using the complete builtin (see SHELL  BUILTIN
       COMMANDS below), the programmable completion facilities are invoked.

       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 -E
       option to complete 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 -D option to complete is used as the default.  If  there  is  no  default
       compspec,  bash  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.

       Once a compspec has been found, it is used to generate the list of matching words.   If  a
       compspec  is not found, the default bash completion as described above under Completing is
       performed.

       First, the actions specified by the compspec are used.  Only matches which are prefixed by
       the  word  being completed are returned.  When the -f or -d option is used for filename or
       directory name completion, the shell variable FIGNORE is used to filter the matches.

       Any completions specified by a pathname expansion pattern to the -G option  are  generated
       next.   The  words  generated by the pattern need not match the word being completed.  The
       GLOBIGNORE shell variable is not used to filter the matches, but the FIGNORE  variable  is
       used.

       Next,  the string specified as the argument to the -W option is considered.  The string is
       first split using the characters in the IFS 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  EXPANSION.   The  results  are  split  using  the  rules described above under Word
       Splitting.  The results of  the  expansion  are  prefix-matched  against  the  word  being
       completed, and the matching words become the possible completions.

       After  these matches have been generated, any shell function or command specified with the
       -F and -C options is invoked.  When the command or function  is  invoked,  the  COMP_LINE,
       COMP_POINT, COMP_KEY, and COMP_TYPE variables are assigned values as described above under
       Shell Variables.  If a shell function is being  invoked,  the  COMP_WORDS  and  COMP_CWORD
       variables  are also set.  When the function or command is invoked, the first argument ($1)
       is the name of the command whose arguments are being completed, the second  argument  ($2)
       is  the  word  being completed, and the third argument ($3) 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.

       Any function specified with -F is invoked first.  The function may use any  of  the  shell
       facilities,  including  the  compgen builtin described below, to generate the matches.  It
       must put the possible completions in the COMPREPLY array variable, one per array element.

       Next, any command specified with the -C 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.

       After all of the possible completions are generated, any  filter  specified  with  the  -X
       option  is applied to the list.  The filter is a pattern as used for pathname expansion; a
       & in the pattern is replaced with the text of the word being completed.  A literal  &  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  !  negates
       the pattern; in this case any completion not matching the pattern will be removed.  If the
       nocasematch shell option is enabled, the match is performed without regard to the case  of
       alphabetic characters.

       Finally,  any  prefix  and  suffix  specified with the -P and -S 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.

       If  the previously-applied actions do not generate any matches, and the -o dirnames option
       was supplied to complete when the compspec  was  defined,  directory  name  completion  is
       attempted.

       If  the  -o  plusdirs  option  was  supplied  to  complete  when the compspec was defined,
       directory name completion is attempted and any matches are added to  the  results  of  the
       other actions.

       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  bash  completions  are  not
       attempted,  and  the  readline  default  of  filename  completion  is disabled.  If the -o
       bashdefault option was supplied to complete  when  the  compspec  was  defined,  the  bash
       default completions are attempted if the compspec generates no matches.  If the -o default
       option was supplied  to  complete  when  the  compspec  was  defined,  readline's  default
       completion  will  be  performed  if  the  compspec  (and,  if  attempted, the default bash
       completions)  generate no matches.

       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  mark-directories  readline
       variable, regardless of the setting of the mark-symlinked-directories readline variable.

       There  is  some  support  for dynamically modifying completions.  This is most useful when
       used in combination with a default completion specified with complete -D.   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.

       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:

       _completion_loader()
       {
            . "/etc/bash_completion.d/$1.sh" >/dev/null 2>&1 && return 124
       }
       complete -D -F _completion_loader -o bashdefault -o default

HISTORIAL

       When the -o history option to the set builtin is enabled, the shell provides access to the
       command history, the list of  commands  previously  typed.   The  value  of  the  HISTSIZE
       variable  is  used  as  the number of commands to save in a history list.  The text of the
       last HISTSIZE commands (default 500) is saved.  The  shell  stores  each  command  in  the
       history  list  prior  to  parameter and variable expansion (see EXPANSION above) but after
       history expansion is performed, subject to the values of the  shell  variables  HISTIGNORE
       and HISTCONTROL.

       On  startup,  the  history  is  initialized  from  the file named by the variable HISTFILE
       (default ~/.bash_history).  The file named by the  value  of  HISTFILE  is  truncated,  if
       necessary,  to  contain  no  more  than  the  number  of  lines  specified by the value of
       HISTFILESIZE.  If HISTFILESIZE 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  HISTTIMEFORMAT  variable.   When  a  shell  with
       history  enabled  exits,  the  last  $HISTSIZE  lines  are copied from the history list to
       $HISTFILE.  If the histappend shell option is enabled (see the description of shopt  under
       SHELL  BUILTIN  COMMANDS below), the lines are appended to the history file, otherwise the
       history file is overwritten.  If HISTFILE is unset, or if the history file is  unwritable,
       the  history is not saved.  If the HISTTIMEFORMAT 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  HISTFILESIZE  lines.  If HISTFILESIZE is unset, or set to null, a
       non-numeric value, or a numeric value less than zero, the history file is not truncated.

       La orden interna fc (vea ÓRDENES NATIVAS DE LA SHELL más adelante)  puede  emplearse  para
       listar  o  editar  y  re-ejecutar  una  porción de la lista de historia.  La orden interna
       history 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.

       la shell permite el control sobre qué órdenes se guarden en el  historial.  Las  variables
       HISTCONTROL  y  HISTIGNORE  se  pueden  definir  de forma que la shell guarde solamente un
       subconjunto de las  órdenes  introducidas.   La  opción  de  la  shell  cmdhist,  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 lithist 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  shopt  más  adelante  en  ÓRDENES NATIVAS DE LA SHELL para información sobre cómo
       establecer y anular opciones de la shell.

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  csh.   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 +H de la orden interna set (vea
       ÓRDENES NATIVAS DE LA SHELL más adelante). Los  shells  no  interactivos  no  realizan  la
       expansión de la historia de forma predeterminada.

       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.

       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 evento, y la porción de esa línea sobre la que
       se actúa son palabras.  Se dispone de varios modificadores  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 meta-caracteres 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 !.  Solo  las  barras
       inversas  (\)  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.

       Several  characters  inhibit  history expansion if found immediately following the history
       expansion character, even if it is unquoted: space, tab, newline, carriage return, and  =.
       If the extglob shell option is enabled, ( will also inhibit expansion.

       Se pueden emplear ciertas opciones que se ponen con la orden interna shopt para cambiar el
       comportamiento de la expansión de historia.  Si la opción  de  la  shell  histverify  está
       activa  (vea  la  descripción  de  la orden interna shopt), y se está usando readline, 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 readline para una
       modificación posterior.  Si se está usando readline y la opción  de  la  shell  histreedit
       está  activada,  una  sustitución  de  historia fallida se volverá a cargar en el búfer de
       edición de readline para su corrección.  La opción -p de la orden interna history se puede
       emplear  para  ver qué hará una expansión de historia antes de usarse.  La opción -s de la
       orden interna history se puede emplear para añadir órdenes  al  final  del  historial  sin
       ejecutarlas realmente, de modo que estén disponibles para rellamadas posteriores.

       la  shell  permite  el  control  de  los diversos caracteres empleados por el mecanismo de
       expansión de historia (vea la descripción de histchars arriba en Variables de  la  shell).
       La  shell  marcará  como  un  comentario  las  marcas  de  tiempo  durante el registro del
       historial.

   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.

       !      Comenzar una sustitución de historia, excepto cuando le siga un  blanco,  salto  de
              línea,  retorno  de  carro, = o (. (cuando la opción extglob está activada mediante
              shopt).
       !n     Referirse a la línea de órdenes número n.
       !-n    Referirse a la orden en curso menos n.
       !!     Referirse a la orden anterior. Esto es lo mismo que `!-1'.
       !cadena
              Referirse a la orden más reciente del historial que precede a la actual y  comienza
              con cadena.
       !?cadena[?]
              Referirse  a  la  orden  más  reciente  del historial que precede a la actual y que
              contenga cadena. El ? del final puede omitirse si a cadena le sigue  inmediatamente
              un  salto  de línea. Si no se indica ninguna string, se usará la cadena empleada en
              la última búsqueda, emitiendo un mensaje de error  si  no  hay  ninguna  cadena  de
              búsquedas anteriores.
       ^cadena1^cadena2^
              Sustitución  rápida.  Repetir  la orden anterior, reemplazando cadena1 con cadena2.
              Equivale a “!!:s^cadena1^cadena2^” (vea Modificadores a continuación).
       !#     La línea de orden entera tecleada hasta ahora.

   Designadores de Palabras
       Los designadores de palabras se emplean para seleccionar las palabras que  se  deseen  del
       evento.   Un  :  separa  la  especificación  de  evento  del designador de palabra.  Puede
       omitirse si el designador de palabra comienza con un ^, $, *, -, o  %.   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.

       0 (cero)
              La palabra número 0. Para la shell, ésta es la palabra de la orden.
       n      La n-sima palabra.
       ^      El primer argumento. Esto es, la palabra número 1.
       $      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.
       %      La  palabra  que  concuerda  con  la  búsqueda más reciente de '?cadena?', si dicha
              cadena comienza con un caracter que forma parte de una palabra.
       x-y    Un intervalo de palabras; `-y' abrevia `0-y'.
       *      Todas las palabras menos la número cero. Esto es un sinónimo de `1-$'.   No  es  un
              error  emplear  * si solo hay una palabra en el evento; en este caso se devuelve la
              cadena vacía.
       x*     Abreviatura de x-$.
       x-     Abrevia x-$ como x*, pero omite la última palabra. Si no se indica x, se  usará  el
              valor 0 por defecto.

       Si  se  suministra  un  designador  de palabra sin una especificación de evento, se usa la
       orden anterior como el evento.

   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.

       h      Quitar un componente final de nombre de fichero, dejando solo la parte izquierda.
       t      Quitar todos los primeros componentes de un nombre de fichero,  dejando  la  última
              parte.
       r      Quitar un sufijo final de la forma .xxx, dejando el nombre base.
       e      Quitar todo salvo el sufijo final.
       p      Mostrar la nueva orden pero no ejecutarla.
       q      Entrecomillar las palabras sustituidas, escapando de posteriores sustituciones.
       x      Entrecomillar  las  palabras sustituidas como con q, pero separae entre palabras en
              los blancos y saltos de línea. Los modificadores q y x son mutuamente  excluyentes,
              usándose el que aparezca de último.
       s/viejo/nuevo/
              Sustituir  nuevo por la primera ocurrencia de viejo 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
              viejo y nuevo con una sola barra inclinada inversa.  Si  &  aparece  en  nuevo,  se
              reemplaza  por  viejo.  Una sola barra inversa protegerá el &. Si viejo está vacío,
              se pone al último viejo sustituido, o, si no  tuvo  lugar  ninguna  sustitución  de
              historia previa, a la última cadena en una búsqueda del tipo !?cadena[?].. Si no se
              indica nuevo se borrarán todas las ocurrencias de viejo.
       &      Repetir la sustitución anterior.
       g      Hace que los cambios se apliquen sobre la línea entera de evento. Esto se emplea en
              conjunción  con  `:s'  (p.ej.,  `:gs/viejo/nuevo/')  o  `:&'.   Si se usa con `:s',
              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 a como
              sinónimo de g.
       G      Aplica los modificadores 's' o '&' una vez a cada  palabra  en  la  correspondiente
              línea del evento.

ÓRDENES NATIVAS DE LA SHELL

       Unless  otherwise  noted,  each  builtin  command  documented in this section as accepting
       options preceded by - accepts -- to signify the end of the options.  The :,  true,  false,
       and  test/[  builtins  do  not  accept  options  and do not treat -- specially.  The exit,
       logout, return, break, continue, let, and shift  builtins  accept  and  process  arguments
       beginning  with  - without requiring --.  Other builtins that accept arguments but are not
       specified as accepting options interpret arguments beginning with - as invalid options and
       require -- to prevent this interpretation.
       : [argumentos]
              Sin  efecto; la orden no hace nada más que expandir argumentos y realizar cualquier
              redirección que se haya especificado. El estado de salida es 0.

        .  nombre-archivo [argumentos]
       source nombre-archivo [argumentos]
              Read and execute commands from filename in the current shell environment and return
              the  exit  status of the last command executed from filename.  If filename does not
              contain a slash, filenames in PATH  are  used  to  find  the  directory  containing
              filename,  but  filename  does not need to be executable.  The file searched for in
              PATH need not be executable.  When bash is not  in  posix  mode,  it  searches  the
              current  directory  if  no  file is found in PATH.  If the sourcepath option to the
              shopt builtin command is turned off, the PATH is not searched.   If  any  arguments
              are  supplied,  they  become  the  positional parameters when filename is executed.
              Otherwise the positional parameters are unchanged.  If the -T option is enabled,  .
              inherits  any  trap  on  DEBUG;  if  it  is not, any DEBUG trap string is saved and
              restored around the call to ., and . unsets the DEBUG trap while it  executes.   If
              -T  is  not  set,  and  the  sourced  file changes the DEBUG trap, the new value is
              retained when . completes.  The return status is the status  of  the  last  command
              exited  within the script (0 if no commands are executed), and false if filename is
              not found or cannot be read.

       alias [-p] [nombre[=valor] ...]
              Alias sin argumentos o con la opción -p muestra la lista de alias en la forma alias
              nombre=valor  en  la salida estándar.  Cuando se dan argumentos, se define un alias
              para cada nombre cuyo valor se da.  Un espacio extra tras  valor  hace  que  en  la
              siguiente  palabra  se  realice la sustitución de alias cuando el alias se expande.
              Para cada nombre en la lista de argumentos para el que no se suministre  un  valor,
              se muestran el nombre y el valor del alias.  Alias devuelve `verdad' a menos que se
              dé un nombre para el que no se haya definido un alias.

       bg [espectrab ...]
              Reanuda la tarea suspendida espectrab en segundo plano, como si se hubiera iniciado
              con  &.  Si  espectrab no está presente, se emplea la noción que tiene la shell del
              trabajo en curso.  bg espectrab 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 espectrab no se encontró, o cuando se inició sin control de tareas.

       bind [-m mapatecl] [-lpsvPSVX]
       bind [-m mapatecl] [-q función] [-u función] [-r sectecl]
       bind [-m mapatecl] -f nombre-archivo
       bind [-m keymap] -x keyseq:orden-shell
       bind [-m mapatecl] sectecl:nombre-función
       bind [-m keymap] keyseq:orden-readline
       bind, readline-command-line
              Muestra las asociaciones actuales de teclas y funciones  en  readline,  asocia  una
              secuencia de teclas a una función o macro, o define una variable de readline. Todos
              los argumentos que no sean opciones son órdenes tal como  figurarían  en  .inputrc,
              pero  cada  asociación debe pasarse como un argumento separado; p.ej., '"\C-x\C-r":
              re-read-init-file'.  Las opciones, si se dan, tienen los siguientes significados:
              -m mapatecl
                     Use keymap as  the  keymap  to  be  affected  by  the  subsequent  bindings.
                     Acceptable  keymap  names are emacs, emacs-standard, emacs-meta, emacs-ctlx,
                     vi, vi-move, vi-command, and vi-insert.   vi  is  equivalent  to  vi-command
                     (vi-move is also a synonym); emacs is equivalent to emacs-standard.
              -l     Lista los nombres de todas las funciones de readline.
              -p     Muestra  los nombres de funciones de readline de tal forma que puedan volver
                     a ser leídas.
              -P     Lista los nombres de funciones de readline actuales y las asociaciones.
              -s     Muestra las secuencias de teclas  de  readline  asociadas  a  macros  y  las
                     cadenas correspondientes de tal manera que puedan ser leídas de nuevo.
              -S     Muestra  las  secuencias  de  teclas  de  readline  asociadas a macros y las
                     cadenas de caracteres correspondientes.
              -v     Muestra los nombres de variables de readline y los valores de tal manera que
                     puedan volver a ser leídas.
              -V     Lista los nombres de variables de readline actuales y los valores.
              -f nombre-archivo
                     Lee las asociaciones de teclas desde nombre-archivo.
              -q función
                     Pregunta qué teclas llaman a la función especificada.
              -u función
                     Desenlaza todas las teclas asociadas a la función nombrada.
              -r sectecl
                     Borra cualquier asociación actual de sectecl.
              -x keyseq:orden-shell
                     Cause  shell-command  to  be  executed  whenever  keyseq  is  entered.  When
                     shell-command is executed, the shell sets the READLINE_LINE variable to  the
                     contents   of   the   readline   line  buffer  and  the  READLINE_POINT  and
                     READLINE_MARK 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  READLINE_ARGUMENT  variable.   If
                     there  was  no  argument, that variable is not set.  If the executed command
                     changes the value of any of READLINE_LINE, READLINE_POINT, or READLINE_MARK,
                     those new values will be reflected in the editing state.
              -X     List  all  key sequences bound to shell commands and the associated commands
                     in a format that can be reused as input.

              El valor devuelto es 0 a menos que se dé una opción no reconocida o que  ocurra  un
              error.

       break [n]
              Exit  from  within a for, while, until, or select loop.  If n is specified, break n
              levels.  n must be ≥ 1.  If n is greater than the number of  enclosing  loops,  all
              enclosing  loops are exited.  The return value is 0 unless n is not greater than or
              equal to 1.

       builtin orden-interna [argumentos]
              Ejecuta la orden interna de la shell  especificada,  pasándole  los  argumentos,  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 cd se
              puede redefinir normalmente de esta manera.  El estado  de  salida  es  `falso'  si
              orden-interna no es una orden incorporada de la shell.

       caller [expr]
              Returns  the  context  of  any active subroutine call (a shell function or a script
              executed with the . or source builtins).  Without expr, caller  displays  the  line
              number  and  source  filename  of  the  current subroutine call.  If a non-negative
              integer is supplied as expr, caller 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 expr does not correspond to  a  valid  position  in  the  call
              stack.

       cd [-L|[-P [-e]] [-@]] [dir]
              Change the current directory to dir.  if dir is not supplied, the value of the HOME
              shell variable is the default.  The variable CDPATH defines the search path for the
              directory  containing  dir:  each  directory  name  in  CDPATH is searched for dir.
              Alternative directory names in CDPATH  are  separated  by  a  colon  (:).   A  null
              directory  name  in CDPATH is the same as the current directory, i.e., “.”.  If dir
              begins with a slash (/), then CDPATH is not used.  The -P option causes cd  to  use
              the  physical  directory structure by resolving symbolic links while traversing dir
              and before processing instances of .. in dir (see also the -P  option  to  the  set
              builtin  command);  the -L option forces symbolic links to be followed by resolving
              the link after processing instances of .. in dir.  If ..  appears  in  dir,  it  is
              processed by removing the immediately previous pathname component from dir, back to
              a slash or the beginning of dir.  If the -e option is supplied  with  -P,  and  the
              current  working  directory  cannot  be  successfully determined after a successful
              directory change, cd will return an unsuccessful status.  On systems  that  support
              it,  the  -@  option  presents  the extended attributes associated with a file as a
              directory.  An argument of - is converted to $OLDPWD before the directory change is
              attempted.  If a non-empty directory name from CDPATH is used, or if - 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, cd sets the value of the PWD environment variable to the new  directory
              name,  and sets the OLDPWD 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.

       command [-pVv] orden [arg ...]
              Ejecuta  orden con args suprimiendo la búsqueda normal de funciones del shell. Solo
              se ejecutarán órdenes incorporadas en  la  shell  o  programas  encontrados  en  la
              variable  PATH.   Si  se  da  la  opción -p, se busca la orden empleándose un valor
              predeterminado para PATH que garantiza encontrar todas las utilidades estándar  del
              sistema.   Si  se da la opción -V o la -v, se muestra una descripción de orden.  La
              opción -v muestra una sola  palabra  que  indica  la  orden  o  nombre  de  archivo
              ejecutable  empleado  para la llamada a orden; la opción -V produce una descripción
              algo más prolija.  Si se dan las opciones -V o -v, el estado  de  salida  es  0  si
              orden  se encontró, y 1 si no. Si no se da ninguna de las dos opciones y ocurrió un
              error u orden no se encontró, el estado de salida es  127.  Si  no,  el  estado  de
              salida de command es el estado de salida de orden.

       compgen [opción] [palabra]
              Generate  possible  completion matches for word according to the options, which may
              be any option accepted by the complete builtin with the exception of -p and -r, and
              write  the  matches  to  the standard output.  When using the -F or -C options, the
              various shell variables  set  by  the  programmable  completion  facilities,  while
              available, will not have useful values.

              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  word  is  specified,  only  those  completions  matching  word will be
              displayed.

              El valor de retorno es veradero a menos que se dé una opción inválida o que  no  se
              creen concordancias.

       complete [-abcdefgjksuv] [-o comp-option] [-DEI] [-A action] [-G globpat] [-W wordlist]
              [-F function] [-C command] [-X filterpat] [-P prefix] [-S suffix] name [name ...]
       complete -pr [-DEI] [nombre ...]
              Specify  how  arguments  to  each  name  should  be completed.  If the -p 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 -r option removes a
              completion specification  for  each  name,  or,  if  no  names  are  supplied,  all
              completion specifications.  The -D option indicates that other supplied options and
              actions should apply to the  “default”  command  completion;  that  is,  completion
              attempted on a command for which no completion has previously been defined.  The -E
              option indicates that other supplied options and actions should  apply  to  “empty”
              command  completion;  that is, completion attempted on a blank line.  The -I 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 ; or
              |, which is usually command name completion.  If multiple options are supplied, the
              -D  option  takes  precedence over -E, and both take precedence over -I.  If any of
              -D, -E, or -I are supplied, any other name arguments are ignored; these completions
              only apply to the case specified by the option.

              El proceso para aplicar estas especificaciones de autocompletado sobre las palabras
              se describe en above under Programmable Completion.

              Other options, if specified, have the following meanings.  The arguments to the -G,
              -W,  and -X options (and, if necessary, the -P and -S options)  should be quoted to
              protect them from expansion before the complete builtin is invoked.
              -o comp-opction
                      The comp-option controls several aspects of the compspec's behavior  beyond
                      the simple generation of completions.  comp-option may be one of:
                      bashdefault
                              Perform  the  rest  of the default bash completions if the compspec
                              generates no matches.
                      default Use  readline's  default  filename  completion  if   the   compspec
                              generates no matches.
                      dirnames
                              Perform  directory  name  completion  if  the compspec generates no
                              matches.
                      filenames
                              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.
                      noquote Tell  readline  not  to  quote  the  completed  words  if  they are
                              filenames (quoting filenames is the default).
                      nosort  Indica a  readline  que  no  ordene  alfabéticamente  la  lista  de
                              autocompletado.
                      nospace Indica  a  readline que no se añada un espacio al final de la linea
                              (por defecto se hace) a las palabras completadas.
                      plusdirs
                              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.
              -A acción
                      La acción para crear una lista de autocompletados  podrá  ser  una  de  las
                      siguientes:
                      alias   Nombres de alias. También puede definirse como -a.
                      arrayvar
                              Nombres de varibales vectoriales.
                      binding Definiciones de teclas de Readline.
                      builtin Nombres   de   órdenes  nativas  de  la  shell.  También  se  puede
                              especificar mediante -b.
                      command Nombres de órdenes. También se puede definir con -c.
                      directory
                              Nombres de directorios. También se puede definir mediante -d.
                      disabled
                              Nombres  de órdenes nativas de la shell deshabilitadas.
                      enabled Nombres de órdenes nativas de la shell habilitadas.
                      export  Nombres de variables de  la  shell  exportadas.  También  se  puede
                              definir mediante -e.
                      file    File names.  May also be specified as -f.
                      function
                              Names of shell functions.
                      group   Group names.  May also be specified as -g.
                      helptopic
                              Help topics as accepted by the help builtin.
                      hostname
                              Hostnames,  as  taken from the file specified by the HOSTFILE shell
                              variable.
                      job     Job names, if job control is active.  May also be specified as -j.
                      keyword Shell reserved words.  May also be specified as -k.
                      running Names of running jobs, if job control is active.
                      service Service names.  May also be specified as -s.
                      setopt  Valid arguments for the -o option to the set builtin.
                      shopt   Shell option names as accepted by the shopt builtin.
                      signal  Nombres de las señales.
                      stopped Nombre de las tareas detenidas, siempre que esté activo el  control
                              de tareas.
                      user    Nombres de usuario. También se puede utilizar -u
                      variable
                              Nombre de las variables de la shell. También se puede utilizar -v.
              -C orden
                      orden  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
                      -F.
              -F función
                      The  shell  function function is executed in the current shell environment.
                      When the function is executed, the first argument ($1) is the name  of  the
                      command  whose  arguments  are being completed, the second argument ($2) is
                      the word being completed, and the third argument ($3) 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  COMPREPLY
                      array variable.
              -G globpat
                      The pathname expansion pattern globpat is expanded to generate the possible
                      completions.
              -P prefijo
                      prefix is added at the beginning of  each  possible  completion  after  all
                      other options have been applied.
              -S sufijo
                      suffix is appended to each possible completion after all other options have
                      been applied.
              -W lista_palabras
                      The wordlist is split using the characters in the IFS special  variable  as
                      delimiters,  and each resultant word is expanded.  Shell quoting is honored
                      within wordlist, in order to provide a mechanism for the words  to  contain
                      shell  metacharacters  or  characters  in  the  value of IFS.  The possible
                      completions are the members of the resultant  list  which  match  the  word
                      being completed.
              -X filtro_ruta
                      filterpat  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 filterpat is removed from the list.
                      A leading ! in filterpat negates the pattern; in this case, any  completion
                      not matching filterpat is removed.

              The return value is true unless an invalid option is supplied, an option other than
              -p or -r is supplied without a name argument,  an  attempt  is  made  to  remove  a
              completion  specification for a name for which no specification exists, or an error
              occurs adding a completion specification.

       compopt [-o opción] [-DEI] [+o opción] [nombre]
              Modify completion options for each name  according  to  the  options,  or  for  the
              currently-executing  completion if no names are supplied.  If no options are given,
              display the completion options for  each  name  or  the  current  completion.   The
              possible values of option are those valid for the complete builtin described above.
              The -D option indicates that other supplied options should apply to  the  “default”
              command  completion;  that  is,  completion  attempted  on  a  command for which no
              completion has previously  been  defined.   The  -E  option  indicates  that  other
              supplied  options  should  apply to “empty” command completion; that is, completion
              attempted on a blank line.  The -I 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 ; or |, which is usually command name completion.

              The return value is true unless an invalid option is supplied, an attempt  is  made
              to  modify  the options for a name for which no completion specification exists, or
              an output error occurs.

       continue [n]
              Resume the next iteration of the enclosing for, while, until, or select loop.  If n
              is  specified,  resume  at the nth enclosing loop.  n must be ≥ 1.  If n is greater
              than the number of enclosing loops, the last enclosing loop (the “top-level”  loop)
              is resumed.  The return value is 0 unless n is not greater than or equal to 1.

       declare [-aAfFgiIlnrtux] [-p] [nombre[=valor] ...]
       typeset [-aAfFgiIlnrtux] [-p] [nombre[=valor] ...]
              Declare  variables and/or give them attributes.  If no names are given then display
              the values of variables.  The -p option will display the attributes and  values  of
              each  name.  When -p is used with name arguments, additional options, other than -f
              and -F, are ignored.  When -p is supplied without name 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 -p, declare will display
              the  attributes and values of all shell variables.  The -f option will restrict the
              display to shell functions.   The  -F  option  inhibits  the  display  of  function
              definitions;  only  the  function name and attributes are printed.  If the extdebug
              shell option is enabled using shopt, the source file name  and  line  number  where
              each  name  is  defined  are  displayed as well.  The -F option implies -f.  The -g
              option forces variables to be created or modified at the global  scope,  even  when
              declare is executed in a shell function.  It is ignored in all other cases.  The -I
              option causes local  variables  to  inherit  the  attributes  (except  the  nameref
              attribute)   and value of any existing variable with the same name 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:
              -a     Cada nombre es una variable de un vector  indexado  (consulte  Vectores  más
                     atrás).  above).
              -A     Cada  nombre  es una variable de un vector asociativo (consulte Vectores más
                     atrás).  above).
              -f     Usar solamente nombres de funciones.
              -i     La variable se trata  como  un  número  entero;  se  realiza  la  evaluación
                     aritmética  (consulte  EVALUACIÓN  ARITMÉTICA).  above) se ejecuta cuando se
                     asigna un valor a la variable.
              -l     Cuando se le asigne  un  valor  a  la  variable,  todas  las  mayúsculas  se
                     convierten en minúsculas. El atributo mayúsculas está desactivado.
              -n     Give  each name the nameref attribute, making it a name reference to another
                     variable.  That other variable  is  defined  by  the  value  of  name.   All
                     references,  assignments,  and attribute modifications to name, except those
                     using or changing the -n attribute itself, are  performed  on  the  variable
                     referenced  by  name's  value.   The  nameref attribute cannot be applied to
                     array variables.
              -r     Hace que nombres 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 unset.
              -t     Give each name the trace attribute.  Traced functions inherit the DEBUG  and
                     RETURN  traps  from  the  calling shell.  The trace attribute has no special
                     meaning for variables.
              -u     When the variable  is  assigned  a  value,  all  lower-case  characters  are
                     converted to upper-case.  The lower-case attribute is disabled.
              -x     Marca  nombres  para  la  exportación  a  órdenes  subsecuentes a través del
                     entorno.

              Using `+' instead of `-' turns off the attribute instead, with the exceptions  that
              +a  and  +A  may  not be used to destroy array variables and +r will not remove the
              readonly attribute.  When used in a function, declare and typeset  make  each  name
              local,  as with the local command, unless the -g option is supplied.  If a variable
              name is followed by =value, the value of the variable is set to value.  When  using
              -a  or  -A 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 ``-f foo=bar'', 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 Arrays above), one of the  names  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 -f.

       dirs [-clpv] [+n] [-n]
              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 pushd; la orden popd los quita de la pila. El directorio actual es siempre el
              primero en la pila.
              -c     Limpia la pila de directorios borrando todas las entradas.
              -l     Crea  un  listado  empleando  los nombres de ruta completos; por defecto, el
                     directorio home se designa utilizando una tilde.
              -p     Muestra la pila de directorios con una entrada por cada línea.
              -v     Muestra la pila de directorios con una entrada por  línea,  prefijando  cada
                     entrada con su índice en la pila.
              +n     Muestra  la  n-sima entrada contando desde la izquierda de la lista mostrada
                     por dirs cuando se llama sin opciones, empezando por cero.
              -n     Muestra la n-sima entrada contando desde la derecha de la lista mostrada por
                     dirs cuando se llama sin opciones, empezando por cero.

              El  valor  de retorno es 0 a menos que se dé una opción inválida o que n indexe más
              allá del final de la pila de directorios.

       disown [-ar] [-h] [espectrab ... | pid ... ]
              Without options, remove each jobspec from the table of active jobs.  If jobspec  is
              not  present,  and neither the -a nor the -r option is supplied, the current job is
              used.  If the -h option is given, each jobspec is not removed from the  table,  but
              is marked so that SIGHUP is not sent to the job if the shell receives a SIGHUP.  If
              no jobspec is supplied, the -a option means to remove or  mark  all  jobs;  the  -r
              option  without a jobspec argument restricts operation to running jobs.  The return
              value is 0 unless a jobspec does not specify a valid job.

       echo [-neE] [arg ...]
              Output the args, separated by spaces, followed by a newline.  The return status  is
              0  unless  a  write  error  occurs.   If  -n  is specified, the trailing newline is
              suppressed.   If  the  -e  option  is  given,  interpretation  of   the   following
              backslash-escaped characters is enabled.  The -E option disables the interpretation
              of these escape characters, even on systems where they are interpreted by  default.
              The  xpg_echo shell option may be used to dynamically determine whether or not echo
              expands these escape characters by default.  echo does not interpret -- to mean the
              end of options.  echo interprets the following escape sequences:
              \a     alerta (pitido)
              \b     espacio-atrás
              \c     suppress further output
              \e
              \E     un carácter de escape (ESC)
              \f     nueva página
              \n     nueva linea
              \r     retorno de carro
              \t     tabulación horizontal
              \v     tabulación vertical
              \\     barra invertida
              \0nnn  the  eight-bit  character  whose value is the octal value nnn (zero to three
                     octal digits)
              \xHH   el carácter de 8-bits cuyo código es el valor  hexadecimal  HH  (uno  o  dos
                     dígitos hexadecimales)
              \uHHHH caŕácter  Unicode  (ISO/IEC  10646) cuyo valor hexadecimal es HHHH (de uno a
                     cuatro caracteres hexadecimales)
              \UHHHHHHHH
                     caŕácter Unicode (ISO/IEC 10646) cuyo valor hexadecimal es HHHHHHHH (de  uno
                     a ocho caracteres hexadecimales)

       enable [-a] [-dnps] [-f nombre-archivo] [nombre ...]
              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 -n is used, each name is disabled; otherwise,  names  are
              enabled.   For  example,  to  use the test binary found via the PATH instead of the
              shell builtin version, run ``enable -n test''.  The -f option means to load the new
              builtin  command  name from shared object filename, on systems that support dynamic
              loading.  Bash will  use  the  value  of  the  BASH_LOADABLES_PATH  variable  as  a
              colon-separated  list  of directories in which to search for filename.  The default
              is system-dependent.  The -d option will delete a builtin  previously  loaded  with
              -f.   If  no  name  arguments are given, or if the -p option is supplied, a list of
              shell builtins is printed.  With no other option arguments, the  list  consists  of
              all enabled shell builtins.  If -n is supplied, only disabled builtins are printed.
              If -a is supplied, the list printed includes all builtins, with  an  indication  of
              whether or not each is enabled.  If -s is supplied, the output is restricted to the
              POSIX special builtins.  If no options are supplied and  a  name  is  not  a  shell
              builtin,  enable  will  attempt to load name from a shared object named name, as if
              the command were ``enable -f name name .  El valor devuelto es 0 salvo  que  nombre
              no  sea  una  orden  nativa  de la shell o que osurriese un error al cargarlo de un
              objeto compartido.

       eval [arg ...]
              Los args 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 eval.
              Si no hay args, o solamente argumentos vacíos, eval devuelve 0.

       exec [-cl] [-a nombre] [orden [argumentos]]
              Si se especifica orden, reemplaza a la shell.  No se crea ningún proceso nuevo sino
              que  los argumentos pasan a ser los argumentos de orden.  Si se da la opción -l, la
              shell pone un guión en el argumento número cero pasado a orden.   Esto  es  lo  que
              hace  login(1).  La opción -c hace que orden se ejecute con un entorno vacío. Si se
              da -a, la shell pasa nombre como el argumento número cero de la orden ejecutada. Si
              orden  no puede ejecutarse por alguna razón, una shell no interactiva finalizará, a
              menos que se haya activado la opción de la shell execfail, en  cuyo  caso  devuelve
              `fallo'.  Una  subshell  finalizará  siempre  su ejecución si falla exec. Una shell
              interactiva devuelve `fallo' si el archivo no puede ejecutarse.   Si  orden  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.

       exit [n]
              Hace que la shell acabe con un estado de valor n. Si n se omite, el valor de salida
              es  el de la última orden ejecutada.  Se ejecuta una trampa puesta en EXIT antes de
              que la shell termine.

       export [-fn] [nombre[=palabra]] ...
       export -p
              The  supplied  names  are  marked  for  automatic  export  to  the  environment  of
              subsequently  executed  commands.   If  the  -f option is given, the names refer to
              functions.  If no names are given, or if the -p option is supplied, a list of names
              of  all exported variables is printed.  The -n option causes the export property to
              be removed from each name.  If a variable name is followed by =word, the  value  of
              the  variable is set to word.  export returns an exit status of 0 unless an invalid
              option is encountered, one of the names is not a valid shell variable name,  or  -f
              is supplied with a name that is not a function.

       fc [-e editor] [-lnr] [primero] [último]
       fc -s [pat=rep] [ord]
              The first form selects a range of commands from first to last from the history list
              and displays or edits and re-executes them.  First and last 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 first or last of 0 is equivalent to -1
              and -0 is equivalent to the current command (usually the fc command);  otherwise  0
              is  equivalent to -1 and -0 is invalid.  If last is not specified, it is set to the
              current command for listing (so that ``fc -l -10'' prints the last 10 commands) and
              to  first  otherwise.  If first is not specified, it is set to the previous command
              for editing and -16 for listing.

              La opción -n suprime los números de orden en un listado. La opción -r  invierte  el
              orden  de  los mandatos. Si se da la opción -l , las órdenes se listan en la salida
              estándar. Si no, se llama al editor dado por editor en un archivo conteniendo  esas
              órdenes.   Si no se da editor, se emplea el valor de la variable FCEDIT, o el valor
              de EDITOR si FCEDIT no está definido. Si no está definida ni una variable ni  otra,
              vi  vi  es  el  editor  que  se empleará. Cuando la edición se haya completado, las
              órdenes editadas se muestran y ejecutan.

              En la segunda forma, orden  se  re-ejecuta  tras  que  cada  instancia  de  pat  se
              reemplace   por   rep.   orden  se  interpreta  igual  que  se  hacía  con  primero
              anteriormente. Un alias de utilidad para emplear con esto es ``r="fc -s"'', de  tal
              modo  que  al teclear ``r cc'' se ejecute la última orden que empezara con ``cc'' y
              que al teclear ``r'' se re-ejecute la última orden.

              Si se usa la primera forma, el valor de retorno es 0 a menos que se  encuentre  una
              opción  inválida  o  que  primero o último especifiquen líneas de historia fuera de
              intervalo.  Si se suministra la opción -e, 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 ord no especifique una línea válida de historia, en cuyo caso fc devuelve
              `fallo'.

       fg [espectrab]
              Reanuda espectrab en primer plano, y lo hace ser el trabajo en curso.  Si espectrab
              no  está  presente,  se  usa  la noción que tiene la shell del trabajo en curso. El
              valor de retorno es el de la orden puesta en primer plano, o `fallo' si se  ejecuta
              fg  cuando  el  control  de  trabajos  está desactivado o, cuando se ejecuta con el
              control de trabajos activado, si  espectrab  no  especifica  un  trabajo  válido  o
              espectrab se refiere a una trabajo que se arrancó sin control de trabajos.

       getopts cadenaopcs nombre [arg ...]
              getopts  is  used  by  shell  procedures to parse positional parameters.  optstring
              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, getopts places the next option in the
              shell variable name, initializing name if it does not exist, and the index  of  the
              next argument to be processed into the variable OPTIND.  OPTIND is initialized to 1
              each time the shell or a shell script is  invoked.   When  an  option  requires  an
              argument,  getopts  places  that argument into the variable OPTARG.  The shell does
              not reset OPTIND automatically; it must be manually reset between multiple calls to
              getopts within the same shell invocation if a new set of parameters is to be used.

              Cuando  se  encuentra  el fin de las opciones, getopts sale con un valor de retorno
              mayor que cero.  OPTIND se pone al índice  del  primer  argumento  que  no  es  una
              opción, y nombre se pone a "?".

              getopts  normally  parses  the  positional  parameters,  but  if more arguments are
              supplied as arg values, getopts parses those instead.

              getopts puede informar de  errores  de  dos  maneras.  Si  el  primer  carácter  de
              optstring  es  dos  puntos,  se  emplea un informe de error silencioso.  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 OPTERR se pone a 0, no se mostrará ningún mensaje de error, incluso si  el
              primer carácter de optstring no es dos puntos.

              Si  se ve una opción inválida, getopts pone ? en nombre y, si no estamos en el modo
              silencioso, se muestra un mensaje de error  y  se  anula  OPTARG.   Si  getopts  es
              silencioso,  el  carácter  de  opción  encontrado se pone en OPTARG y no se muestra
              ningún mensaje de diagnóstico.

              Si no se encuentra un argumento necesario, y getopts no es silencioso, se  pone  un
              signo  de  cierre  de interrogación (?) en nombre, OPTARG se anula, y se muestra un
              mensaje de diagnóstico.  Si getopts es silencioso, entonces se pone un signo de dos
              puntos (:) en nombre y OPTARG toma el valor del carácter de opción encontrado.

              getopts 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.

       hash [-lr] [-p nombre-archivo] [-dt] [nombre]
              Each time hash is invoked, the full pathname of the command name is  determined  by
              searching  the  directories  in  $PATH  and  remembered.  Any previously-remembered
              pathname is discarded.  If the -p option is supplied, no path search is  performed,
              and filename is used as the full filename of the command.  The -r option causes the
              shell to forget all remembered locations.  The -d option causes the shell to forget
              the  remembered  location  of  each  name.   If the -t option is supplied, the full
              pathname to which each name corresponds is printed.  If multiple name arguments are
              supplied  with  -t,  the  name  is printed before the hashed full pathname.  The -l
              option causes output to be displayed in a format that may be reused as  input.   If
              no  arguments  are  given,  or if only -l is supplied, information about remembered
              commands is printed.  The return status is true unless a name is not  found  or  an
              invalid option is supplied.

       help [-dms] [patrón]
              Muestra  información  de ayuda sobre las órdenes internas. Si se especifica patrón,
              help da ayuda detallada sobre todas las órdenes que concuerden con patrón;  si  no,
              se  muestra  ayuda  para  todas las órdenes internas y estructuras de control de la
              shell.
              -d     Display a short description of each pattern
              -m     Display the description of each pattern in a manpage-like format
              -s     Display only a short usage synopsis for each pattern

              The return status is 0 unless no command matches pattern.

       history [n]
       history -c
       history -d offset
       history -d start-end
       history -anrw [nombre-archivo]
       history -p arg [arg ...]
       history -s arg [arg ...]
              Sin opciones, muestra el historial de órdenes con su números de línea.  Las  líneas
              marcadas  con  un  *  han  sido  modificadas. Un argumento de n lista solamente las
              últimas  n  líneas.  Si  está  definida  (y  no  es  nula)  la  variable  de  shell
              HISTTIMEFORMAT se usará para formatear la salida de strftime(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 nombre_archivo para
              definir el nombre del archivo de historial,sino se indica  se  usará  el  valor  de
              HISTFILE. Si se dan opciones, tendrán el siguiente significado:
              -c     Limpia el historial borrando todas las entradas.
              -d posición
                     Borra  la  posición  posición  del historial. Si se define un valor negativo
                     para posición, 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 history -d.
              -d inicio-fin
                     Borra  las  entradas  del  historial entre las posiciones inicio y fin ambas
                     inclusive. Los valores  positivos  y  negativos  para  estas  posiciones  se
                     interpretan tal como se describió anteriormente.
              -a     Añade nuevas líneas (las introducidas desde el inicio de la actual sesión de
                     bash) al historial.
              -n     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 bash actual.
              -r     Lee el contenido del historial y lo añade a la lista actual.curso.
              -w     Escribe la historia en curso en el historial, sobreescribiendo su contenido.
              -p     Realiza la sustitución de historia de  los  siguientes  args  y  muestra  el
                     resultado  en  la salida estándar.  No almacena los resultados en el archivo
                     de historia.  Cada arg debe protegerse para  deshabilitar  la  expansión  de
                     historia normal.
              -s     Almacena los args en el historial como una sola entrada. La última orden del
                     hisotrial se elimina antes de que se añadan los args.

              If the HISTTIMEFORMAT 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
              offset or range is supplied as an argument to -d, or the history expansion supplied
              as an argument to -p fails.

       jobs [-lnprs] [ espectrab ... ]
       jobs -x orden [ args ... ]
              La  primera  forma lista los trabajos activos. Las opciones tienen los significados
              siguientes:
              -l     Lista PIDs además de la información normal.
              -n     Muestra información solamente sobre trabajos  que  han  cambiado  de  estado
                     desde que se notificó al usuario por última vez de su estado.
              -p     Lista solamente el PID del líder del grupo de proceso del trabajo.
              -r     Muestra únicamente trabajos en ejecución.
              -s     Muestra únicamente trabajos detenidos.

              Si  se da espectrab, 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 espectrab inválido.

              Si  se  da  la  opción -x, jobs reemplaza cualquier espectrab encontrado en orden o
              args con el ID de grupo de proceso correspondiente, y ejecuta orden pasándole args,
              devolviendo su estado de salida.

       kill [-s nombre-señal | -n numseñal | -nombre-señal] [pid | espectrab] ...
       kill -l|-L [nombre-señal | status_salida]
              Send  the  signal  named  by  sigspec  or  signum  to the processes named by pid or
              jobspec.  sigspec is either a case-insensitive signal name such as SIGKILL (with or
              without  the SIG prefix) or a signal number; signum is a signal number.  If sigspec
              is not present, then SIGTERM is assumed.  An argument of -l lists the signal names.
              If  any  arguments  are  supplied  when  -l  is  given,  the  names  of the signals
              corresponding to the arguments are  listed,  and  the  return  status  is  0.   The
              exit_status  argument  to  -l  is a number specifying either a signal number or the
              exit status of a process terminated by a signal.  The -L option  is  equivalent  to
              -l.  kill returns true if at least one signal was successfully sent, or false if an
              error occurs or an invalid option is encountered.

       let arg [arg ...]
              Cada arg es una expresión aritmética a ser  evaluada  (vea  EVALUACIÓN  ARITMÉTICA)
              above).  Si el último arg se evalúa a 0, let devuelve 1; si no, devuelve 0.

       local [opción] [nombre[=valor] ... | - ]
              For each argument, a local variable named name is created, and assigned value.  The
              option can be any of the options accepted by declare.  When local is used within  a
              function,  it  causes  the variable name to have a visible scope restricted to that
              function and its children.  If name is -, the set of shell options is made local to
              the function in which local is invoked: shell options changed using the set builtin
              inside the function are  restored  to  their  original  values  when  the  function
              returns.   The  restore is effected as if a series of set commands were executed to
              restore the values that were in place before the function.  With no operands, local
              writes  a  list  of  local variables to the standard output.  It is an error to use
              local when not within a function.  The return status is  0  unless  local  is  used
              outside a function, an invalid name is supplied, or name is a readonly variable.

       logout Sale de la shell.

       mapfile  [-d  delim]  [-n  count]  [-O  origin]  [-s count] [-t] [-u fd] [-C callback] [-c
       quantum] [array]
       readarray [-d delim] [-n count] [-O origin] [-s count] [-t]  [-u  fd]  [-C  callback]  [-c
       quantum] [array]
              Read  lines  from the standard input into the indexed array variable array, or from
              file descriptor fd if the -u option is  supplied.   The  variable  MAPFILE  is  the
              default array.  Options, if supplied, have the following meanings:
              -d     The  first  character  of delim is used to terminate each input line, rather
                     than newline.  If delim is the empty string, mapfile will terminate  a  line
                     when it reads a NUL character.
              -n     Copy at most count lines.  If count is 0, all lines are copied.
              -O     Begin assigning to array at index origin.  The default index is 0.
              -s     Elimina las primeras numero líneas leidas.
              -t     Remove a trailing delim (default newline) from each line read.
              -u     Read lines from file descriptor fd instead of the standard input.
              -C     Evaluate callback each time quantum lines are read.  The -c option specifies
                     quantum.
              -c     Specify the number of lines read between each call to callback.

              If -C is specified without -c, the default  quantum  is  5000.   When  callback  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.   callback  is
              evaluated after the line is read but before the array element is assigned.

              If  not supplied with an explicit origin, mapfile will clear array before assigning
              to it.

              mapfile returns successfully  unless  an  invalid  option  or  option  argument  is
              supplied, array is invalid or unassignable, or if array is not an indexed array.

       popd [-n] [+n] [-n]
              Quita entradas de la pila de directorios. Los elementos se numeran empezando por el
              cero a partir del primer directorio listado  por  dirs.  Si  no  se  indica  ningún
              argumento,  popd  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:
              -n     Suprime  el  normal cambio de directorio cuando se desapilan directorios, de
                     forma que solamente la pila se manipula.
              +n     Elimina la n-ésima entrada de la pila comenzando por la parte  izquierda  de
                     la  lista  mostrada  por  dirs, empezando por cero. Por ejemplo: ``popd +0''
                     elimina el primer directorio, ``popd +1'' el segundo.
              -n     Elimina la n-sima entrada (contando desde la derecha de  la  lista  mostrada
                     por  dirs,  empezando  por  cero. Por ejemplo: ``popd -0'' Elimina el último
                     directorio, ``popd -1'' el siguiente al último.

              If the top element of the directory stack is modified, and the -n  option  was  not
              supplied,  popd  uses  the  cd builtin to change to the directory at the top of the
              stack.  If the cd fails, popd returns a non-zero value.

              De lo contrario, popd 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.

              Si la orden popd tiene éxito, bash ejecuta dirs para mostra el último contenido  de
              la pila de directorios, siendo el valor de salida cero.

       printf [-v var] formato [argumentos]
              Escribe  los argumentos formateados por la salida estándar bajo control de formato.
              La opción -v hace que la salida se asigne a la variable var en lugar  de  mostrarse
              por la salida estándar.

              formato  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 argumentos. Además de las especificaciones
              del  formato  estándar  de  printf(1),  printf  también  interpreta  las siguientes
              extensiones:
              %b     hace que printf expanda la barra invertida en el  correspondiente  argumento
                     como lo haría echo -e.
              %q     causes  printf  to output the corresponding argument in a format that can be
                     reused as shell input.
              %Q     Igual que %q salvo que aplica la precisión definida en el argumento antes de
                     entrecomillarlo.
              %(datefmt)T
                     causes printf to output the date-time string resulting from using datefmt as
                     a format string for strftime(3).  The corresponding argument 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 printf behavior.

              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.

              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.

              El  formato  se  reutiliza  tanto  como  sea  necesario  para  consumir  todos  los
              argumentos.  Si el formato requiere más argumentos 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.

       pushd [-n] [+n] [-n]
       pushd [-n] [dir]
              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
              pushd  intercambia  los  dos  elementos  superiores de la pila de directorio. Si se
              aportan argumentos, tendrán los siguientes significados:
              -n     Suprime el cambio normal de directorio cuando se rotan o añaden  directorios
                     a la pila, de forma que solamente se manipula la pila.
              +n     Rota  la pila de forma que el n-simo directorio (contando desde la izquierda
                     de la lista mostrada por dirs, empezando por cero)  esté en la cima.
              -n     Rota la pila de forma que el n-simo directorio (contando desde la derecha de
                     la lista mostrada por dirs, empezando por cero)  esté en la cima.
              dir    Añade dirs al comienzo de la pila de directorios

              After  the  stack  has been modified, if the -n option was not supplied, pushd uses
              the cd builtin to change to the directory at the top  of  the  stack.   If  the  cd
              fails, pushd returns a non-zero value.

              Otherwise, if no arguments are supplied, pushd returns 0 unless the directory stack
              is empty.  When rotating the directory stack, pushd returns 0 unless the  directory
              stack is empty or a non-existent directory stack element is specified.

              Si  la  orden  pushd  se  ejecuta  sin  problema, bash ejecuta dirs para mostrar el
              contenido final de la pila de directorios.

       pwd [-LP]
              Print the absolute pathname of the current working directory.  The pathname printed
              contains  no  symbolic links if the -P option is supplied or the -o physical option
              to the set builtin command is enabled.  If the -L  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.

       read [-ers] [-a aname] [-d delim] [-i text]  [-n  nchars]  [-N  nchars]  [-p  prompt]  [-t
       timeout] [-u fd] [nombre ...]
              One  line  is read from the standard input, or from the file descriptor fd supplied
              as an argument to the -u option, split into words as  described  above  under  Word
              Splitting, and the first word is assigned to the first name, the second word to the
              second name, and so on.  If there are more words than names,  the  remaining  words
              and their intervening delimiters are assigned to the last name.  If there are fewer
              words read from the input stream than names, the remaining names are assigned empty
              values.  The characters in IFS are used to split the line into words using the same
              rules the shell uses for expansion (described above  under  Word  Splitting).   The
              backslash  character  (\)  may  be  used to remove any special meaning for the next
              character read and for line continuation.  Options, if supplied, have the following
              meanings:
              -a array
                     Las  palabras  se  asignan  secuencialmente  a  los elementos de la variable
                     vector array, empezando por 0.  Se anula la  posible  previa  definición  de
                     array antes de que se asignen nuevos valores.  Otros argumentos nombre no se
                     tienen en consideración.
              -d delim
                     The first character of delim is used to terminate  the  input  line,  rather
                     than newline.  If delim is the empty string, read will terminate a line when
                     it reads a NUL character.
              -e     If the standard input is coming from  a  terminal,  readline  (see  READLINE
                     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.
              -i text
                     If  readline is being used to read the line, text is placed into the editing
                     buffer before editing begins.
              -n nchars
                     read returns after reading nchars  characters  rather  than  waiting  for  a
                     complete  line  of  input,  but  honors  a  delimiter  if  fewer than nchars
                     characters are read before the delimiter.
              -N nchars
                     read returns after reading exactly nchars characters rather than waiting for
                     a  complete  line  of  input,  unless  EOF is encountered or read times out.
                     Delimiter characters encountered in the input are not treated specially  and
                     do not cause read to return until nchars characters are read.  The result is
                     not split on the characters in IFS; the  intent  is  that  the  variable  is
                     assigned  exactly  the characters read (with the exception of backslash; see
                     the -r option below).
              -p prompt
                     Display prompt  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.
              -r     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.
              -s     Silent mode.  If input is coming from a terminal, characters are not echoed.
              -t timeout
                     Cause read to time out and return failure if a complete line of input (or  a
                     specified  number  of  characters)   is  not  read  within  timeout seconds.
                     timeout may be a decimal number with  a  fractional  portion  following  the
                     decimal  point.  This option is only effective if read is reading input from
                     a terminal, pipe, or other special file; it has no effect when reading  from
                     regular  files.   If  read times out, read saves any partial input read into
                     the specified variable name.  If timeout is  0,  read  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.
              -u fd  Read input from file descriptor fd.

              If no names are supplied, the line read, without the ending delimiter but otherwise
              unmodified, is assigned to the variable REPLY.  The exit  status  is  zero,  unless
              end-of-file  is  encountered,  read  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 -u.

       readonly [-aAf] [-p] [nombre[=palabra] ...]
              The  given  names are marked readonly; the values of these names may not be changed
              by  subsequent  assignment.   If  the  -f  option  is   supplied,   the   functions
              corresponding to the names are so marked.  The -a option restricts the variables to
              indexed arrays; the -A option restricts the variables to  associative  arrays.   If
              both options are supplied, -A takes precedence.  If no name arguments are given, or
              if the -p 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 -p option causes output to be displayed in a format that may be  reused
              as  input.   If  a variable name is followed by =word, the value of the variable is
              set to word.  The return status is 0 unless an invalid option is  encountered,  one
              of the names is not a valid shell variable name, or -f is supplied with a name that
              is not a function.

       return [n]
              Causes a function to stop executing and return the value  specified  by  n  to  its
              caller.  If n is omitted, the return status is that of the last command executed in
              the function body.  If return is executed by a trap handler, the last command  used
              to  determine  the status is the last command executed before the trap handler.  If
              return is executed during a DEBUG trap, the last  command  used  to  determine  the
              status  is the last command executed by the trap handler before return was invoked.
              If return is used outside a function, but during execution of a  script  by  the  .
              (source)  command,  it  causes  the  shell to stop executing that script and return
              either n or the exit status of the last command executed within the script  as  the
              exit  status  of  the  script.   If  n  is  supplied, the return value is its least
              significant 8 bits.  The  return  status  is  non-zero  if  return  is  supplied  a
              non-numeric  argument,  or is used outside a function and not during execution of a
              script by . or source.  Any command associated with the  RETURN  trap  is  executed
              before execution resumes after the function or script.

       set [-abefhkmnptuvxBCEHPT] [-o nombre-opción] [--] [-] [arg ...]
       set [+abefhkmnptuvxBCEHPT] [+o nombre-opción] [--] [-] [arg ...]
              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  posix mode, 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 $1, $2, ... $n.  Options, if specified, have the following
              meanings:
              -a      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.
              -b      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.
              -e      Exit  immediately  if  a  pipeline  (which  may  consist of a single simple
                      command), a list, or a compound command (see SHELL  GRAMMAR  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 while or until keyword,
                      part  of  the  test  following  the  if or elif reserved words, part of any
                      command executed in a && or || list except the command following the  final
                      &&  or  ||,  any  command  in  a pipeline but the last, or if the command's
                      return value is being inverted with !.  If a compound command other than  a
                      subshell  returns  a  non-zero status because a command failed while -e was
                      being ignored, the shell does not exit.  A trap on ERR, if set, is executed
                      before  the  shell exits.  This option applies to the shell environment and
                      each subshell environment separately  (see  COMMAND  EXECUTION  ENVIRONMENT
                      above),  podrá provocar que las subshells finalizen antes de ejecutar todas
                      las órdenes en la subshell.

                      If a compound command or shell function executes in a context where  -e  is
                      being ignored, none of the commands executed within the compound command or
                      function body will be affected by the -e setting, even if -e is set  and  a
                      command  returns a failure status.  If a compound command or shell function
                      sets -e while executing in a context where -e is ignored, that setting will
                      not  have  any  effect until the compound command or the command containing
                      the function call completes.
              -f      Deshabilita la expansión de nombres de rutas.
              -h      Recuerda la localización de órdenes una  vez  que  se  buscan  para  la  1ª
                      ejecución. Esto está habilitado de forma predeterminada.
              -k      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.
              -m      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 CONTROL DE TAREAS anteriormente).  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.
              -n      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.
              -o nombre-opción
                      El nombre-opción puede ser uno de los siguientes:
                      allexport
                              Lo miso que -a.
                      braceexpand
                              Lo miso que -B.
                      emacs   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 --noediting option.  This also affects the editing
                              interface used for read -e.
                      errexit Lo mismo que -e.
                      errtrace
                              Lo mismo que -E.
                      functrace
                              Lo mismo que -T.
                      hashall Lo mismo que -h.
                      histexpand
                              Lo mismo que -H.
                      history Activa el histórico de órdenes, tal como se describe en above en el
                              apartado  HISTORIAL.   Esta  opción  está habilitada por omisión en
                              shells interactivos.
                      ignoreeof
                              The effect is as if the shell command ``IGNOREEOF=10''  se  hubiera
                              ejecutado la orden de la shell (vea Variables de la shell) above).
                      keyword Lo mismo que -k.
                      monitor Lo mismo que -m.
                      noclobber
                              Lo mismo que -C.
                      noexec  Lo mismo que -n.
                      noglob  Lo mismo que -f.
                      nolog   Currently ignored.
                      notify  Lo mismo que -b.
                      nounset Lo mismo que -u.
                      onecmd  Lo mismo que -t.
                      physical
                              Lo mismo que -P.
                      pipefail
                              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.
                      posix   Cambia el comportamiento de bash cuando el  funcionamiento  difiera
                              del  estándar  POSIX,  de forma que concuerde con éste(posix mode).
                              Consulte  VEASE  TAMBIÉN  below  más  delante  si  quiere  leer  un
                              documento  donde  se  detalla la influencia del modo posix sobre el
                              funcionamiento de bash.
                      privileged
                              Lo mismo que -p.
                      verbose Lo mismo que -v.
                      vi      Use a vi-style command line editing interface.  This  also  affects
                              the editing interface used for read -e.
                      xtrace  Lo mismo que -x.
                      Si  se  da  -o  sin  ningún  nombre-opción,  se muestran los valores de las
                      opciones activas.  Si se da +o sin ningún nombre-opción, se muestra  en  la
                      salida  estándar  una  serie de órdenes set para recrear las opciones según
                      están puestas o no actualmente.
              -p      Turn on privileged mode.  In this mode, the $ENV and  $BASH_ENV  files  are
                      not  processed, shell functions are not inherited from the environment, and
                      the SHELLOPTS, BASHOPTS, CDPATH, and GLOBIGNORE 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 -p
                      option  is  not supplied, these actions are taken and the effective user id
                      is set to the real user id.  If the -p 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.
              -r      Activa el modo restringido de la shell. Una vez que se activa, esta  opción
                      no puede desactivarse.
              -t      Sale tras leer y ejecutar una sola orden.
              -u      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.
              -v      Repite en la salida las líneas de entrada de la shell tras leerlas.
              -x      After expanding each simple command,  for  command,  case  command,  select
                      command,  or  arithmetic  for  command,  display the expanded value of PS4,
                      followed by the command and its expanded arguments or associated word list.
              -B      la shell realiza la expansión de llaves (vea Expansión de  llaves  arriba).
                      above).  Está activado por defecto.
              -C      Si  está  activo,  bash  no  sobreescribe  un  archivo  existente  con  los
                      operadores de redirección >, >&, ni <>.  Esto  puede  cambiarse  cuando  se
                      crean archivos de salida mediante el empleo del operador >| en vez de >.
              -E      Si  está  definida, cualquier trampa en ERR será heredada por las funciones
                      de la shell, las sustituciones de  órdenes  y  las  órdenes  ejecutadas  en
                      subshells. En general, la trampa ERR no se hereda en estos casos.
              -H      Permite  la  sustitución de historia mediante !.  Esta opción está activada
                      por omisión cuando la shell es interactivo.
              -P      If set, the shell does not resolve symbolic links when  executing  commands
                      such as cd that change the current working directory.  It uses the physical
                      directory structure instead.  By default, bash follows the logical chain of
                      directories when performing commands which change the current directory.
              -T      Si  está definida, cualquier trampa en DEBUG O RETURN será heredada por las
                      funciones  de  la  shell,  las  sustituciones  de  órdenes  y  las  órdenes
                      ejecutadas  en  subshells.  En  general,  las  trampas DEBUG y RETURN no se
                      heredan en estos casos.
              --      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 args, incluso si alguno de ellos comienza con un -.
              -       Señala el final de las opciones, haciendo que el resto de args se asignen a
                      los parámetros posicionales. Las opciones -x y -v se desactivan.  Si no hay
                      más args, los parámetros posicionales permanecen sin cambios.

              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 $-.  El estado de retorno es siempre `verdad' a menos
              que se encuentre una opción inválida.

       shift [n]
              Los parámetros posicionales desde n+1 ... se renombran  a  $1  ...  Los  parámetros
              representados  por  los  números  desde  $#  hasta $#-n+1 se anulan.  n debe ser un
              número no negativo menor o igual a $#.  Si n es 0, no se cambia  ningún  parámetro.
              Si  n  no se da, se supone 1.  Si n es mayor que $#, los parámetros posicionales no
              se cambian.  El estado de retorno es mayor que cero si n es mayor que  $#  o  menor
              que cero; en otro caso es cero.

       shopt [-pqsu] [-o] [nombreopc ...]
              Toggle  the  values  of settings controlling optional shell behavior.  The settings
              can be either those listed below, or, if the -o option  is  used,  those  available
              with  the  -o  option  to the set builtin command.  With no options, or with the -p
              option, a list of all settable options is displayed, with an indication of  whether
              or  not  each  is  set; if optnames are supplied, the output is restricted to those
              options.  The -p option causes output to be displayed in a form that may be  reused
              as input.  Other options have the following meanings:
              -s     Activa (set) cada nombreopc.
              -u     Desactiva (unset) cada nombreopc.
              -q     Suprime la salida normal (modo silencioso); el estado de salida indica si el
                     nombreopc está activado o no.  Si se dan varios argumentos nombreopc con -q,
                     el  estado  de  salida  es  cero  si  todos  los nombreopcs están activados;
                     distinto de cero en otro caso.
              -o     Restringe los valores de nombreopc a aquéllos definidos para la opción -o de
                     la orden interna set.

              If  either  -s  or  -u  is  used  with no optname arguments, shopt shows only those
              options which are set or unset, respectively.  Unless otherwise  noted,  the  shopt
              options are disabled (unset)  by default.

              El  estado  de  retorno  cuando  se listan opciones es cero si todos los nombreopcs
              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 nombreopc no sea una opción de
              la shell válida.

              La lista de las opciones de shopt es:

              assoc_expand_once
                      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.
              autocd  If set, a command name that is the name of a directory is executed as if it
                      were the argument  to  the  cd  command.   This  option  is  only  used  by
                      interactive shells.
              cdable_vars
                      Si  está  activa,  un  argumento  de  la  orden  interna  cd  que no sea un
                      directorio, se supone el nombre de una variable cuyo valor es el directorio
                      al que hay que cambiarse.
              cdspell Si  está activa, se corregirán pequeños errores que hubiera en la escritura
                      de un componente directorio de una orden cd.  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.
              checkhash
                      Si está activa, bash 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.
              checkjobs
                      If set, bash 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 JOB CONTROL above).  La shell siempre pospone su finalización
                      si alguna tarea está detenida.
              checkwinsize
                      Si está activa, bash comprueba el tamaño de ventana  tras  cada  orden  (no
                      nativa)  y,  si  necesario, actualiza los valores de LINES y COLUMNS.Activa
                      por defecto.
              cmdhist Si está activa, bash 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
                      above en el apartado HISTÓRICO.
              compat31
              compat32
              compat40
              compat41
              compat42
              compat43
              compat44
              compat50
                      Controla ciertos ascpetos del modo de compatibilidad de la shell.  Consulte
                      MODO DE COMPATIBILIDAD DE LA SHELL más adelante.  below).

              complete_fullquote
                      If  set,  bash  quotes  all shell metacharacters in filenames and directory
                      names when performing completion.  If not set, bash 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.

              direxpand
                      If set, bash 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, bash attempts to  preserve  what  the
                      user typed.

              dirspell
                      Si está definido, bash intentará corregir los nombres de los directorios al
                      autocompletar  siempre  que  el  nombre  dado  no  corresponda   a   ningún
                      directorio.

              dotglob Si  está  activa, bash incluye los nombres de archivos que comiencen con un
                      `.' en los resultados de la expansión de nombres de ruta.  Los  nombres  de
                      archivo  “.”  y  “..” siempre deben concordarse expresamente aunque dotglob
                      esté activa.

              execfail
                      Si está activa, una shell no interactiva no acabará si no puede ejecutar el
                      archivo especificado como un argumento de la orden interna exec.  Una shell
                      interactiva no finaliza si exec falla.

              expand_aliases
                      Si está definido, los aliases se expanden tal como  se  describe  en  above
                      ALIAS.  Esta  opción  está  habilitada  de forma predeterminada para shells
                      interactivos.

              extdebug
                      If set at shell invocation, or in a shell startup file, arrange to  execute
                      the  debugger  profile before the shell starts, identical to the --debugger
                      option.  If set after invocation, behavior intended for use by debuggers is
                      enabled:

                      1.     The  -F  option to the declare builtin displays the source file name
                             and line number corresponding to each function name supplied  as  an
                             argument.

                      2.     If  the  command run by the DEBUG trap returns a non-zero value, the
                             next command is skipped and not executed.

                      3.     If the command run by the DEBUG trap returns a value of 2,  and  the
                             shell  is  executing  in  a  subroutine (a shell function or a shell
                             script executed by the . or source builtins), the shell simulates  a
                             call to return.

                      4.     BASH_ARGC y BASH_ARGV se actualizan tal como se describe en above).

                      5.     Function  tracing is enabled: command substitution, shell functions,
                             and subshells invoked with ( command ) inherit the DEBUG and  RETURN
                             traps.

                      6.     Error tracing is enabled: command substitution, shell functions, and
                             subshells invoked with ( command ) inherit the ERR trap.

              extglob Si está  activa,  se  habilitan  las  características  de  concordancia  de
                      patrones  extendidas  descritas  above  bajo  Expansión  de Nombres de Ruta
                      activadas

              extquote
                      If set, $'string' and $"string" quoting is  performed  within  ${parameter}
                      expansions enclosed in double quotes.  This option is enabled by default.

              failglob
                      If  set,  patterns  which fail to match filenames during pathname expansion
                      result in an expansion error.

              force_fignore
                      If set, the suffixes specified by the FIGNORE shell variable cause words to
                      be  ignored  when  performing word completion even if the ignored words are
                      the only possible completions.  See SHELL  VARIABLES  above  para  ver  una
                      descripción   de   FIGNORE.   Esta   opción   está   habilitada   de  forma
                      predeterminada.

              globasciiranges
                      If set, range expressions used in pattern matching bracket expressions (see
                      Pattern  Matching  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  b will not collate between A and B, and
                      upper-case and lower-case ASCII characters will collate together.

              globskipdots
                      If set, pathname expansion will never match the  filenames  “.”  and  “..”,
                      even if the pattern begins with a “.”.  This option is enabled by default.

              globstar
                      If  set, the pattern ** used in a pathname expansion context will match all
                      files and zero or more directories and subdirectories.  If the  pattern  is
                      followed by a /, only directories and subdirectories match.

              gnu_errfmt
                      If  set, shell error messages are written in the standard GNU error message
                      format.

              histappend
                      Si está activo el historial se añade al archivo nombrado según el valor  de
                      la  variable  HISTFILE  cuando  la  shell acaba, en vez de sobreescribir el
                      archivo.

              histreedit
                      Si está activa, y readline se está utilizando,  se  le  da  al  usuario  la
                      oportunidad de re-editar la sustitución de historia fallida.

              histverify
                      Si  está  activa,  y  readline  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 readline, permitiendo así una modificación posterior.

              hostcomplete
                      Si está activa, y readline se está utilizando, bash intentará  terminar  de
                      escribir  un  nombre  de  equipo  anfitrión  cuando se esté completando una
                      palabra  que  contenga  una   @   (consulte   Terminación   bajo   READLINE
                      anteriormente).  above).  Esto está activado por defecto.

              huponexit
                      Si  está  activa, bash enviará una señal SIGHUP a todos los trabajos cuando
                      una shell de entrada interactiva finalice.

              inherit_errexit
                      If set, command substitution inherits the  value  of  the  errexit  option,
                      instead  of  unsetting  it  in  the  subshell  environment.  This option is
                      enabled when posix mode is enabled.

              interactive_comments
                      Si está activa, permite a una palabra que  empiece  por  #  hacer  que  esa
                      palabra  y  todos  los caracteres restantes de esa línea no sean tenidos en
                      cuenta en  una  shell  interactiva  (consulte  COMENTARIOS  anteriormente).
                      above).  Esta opción está activada por defecto.

              lastpipe
                      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.

              lithist Si  está  activa,  y  la  opción  cmdhist  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.

              localvar_inherit
                      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.

              localvar_unset
                      If set, calling unset 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.

              login_shell
                      La  shell  define  esta opción si se ha iniciado como una shell de entrada.
                      Consulte  LLAMADA  más  adelante.   above).   Este  valor  no  debería  ser
                      modificado.

              mailwarn
                      Si  está activa, y a un archivo donde bash está buscando correo nuevo se ha
                      accedido desde la última vez que se buscó, se muestra el mensaje “The  mail
                      in  mailfile  has  been  read”, o su equivalente en el idioma local, que en
                      español sería “El correo en buzón ha sido leído”.

              no_empty_cmd_completion
                      Si está activa, y readline se está utilizando, bash no intentará buscar  en
                      PATH  posibles  cadenas  para  completar si se intenta autocompletar en una
                      línea en blanco.

              nocaseglob
                      Si está activa,  bash  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 Expansión de nombres de ruta).  above).

              nocasematch
                      Si  está  definida,  bash  buscará  concordancias  sin   distinción   entre
                      mayúsculas  y minúsculas ya sea ejecutando las órdenes condicionales case o
                      [[, expansiones de palabra en patrones de sustitución o durante el filtrado
                      de posibles cadenas en autocompletados programables.

              noexpand_translation
                      If  set,  bash  encloses the translated results of $"..." quoting in single
                      quotes instead of double quotes.  If the string is not translated, this has
                      no effect.

              nullglob
                      Si  está activa, bash permite que los patrones que no concuerden con ningún
                      archivo (vea Expansión de nombres de ruta arriba) above) se expandan a  una
                      cadena vacía en lugar de hacerlo a si mismos.

              patsub_replacement
                      If  set, bash expands occurrences of & in the replacement string of pattern
                      substitution to the  text  matched  by  the  pattern,  as  described  under
                      Parameter Expansion above.  Esta opción está activada por defecto.

              progcomp
                      Si  está  definida,  las utilidades de autocompletado programable (consulte
                      Autocompletado Programable anteriormente).  above)  están  activada.  Estas
                      opciones están activadas por defecto.

              progcomp_alias
                      If  set, and programmable completion is enabled, bash treats a command name
                      that doesn't have any completions as a possible alias  and  attempts  alias
                      expansion.  If it has an alias, bash attempts programmable completion using
                      the command word resulting from the expanded alias.

              promptvars
                      If set, prompt strings undergo parameter expansion,  command  substitution,
                      arithmetic  expansion,  and quote removal after being expanded as described
                      in PROMPTING above.  Esta opción está activada por defecto.

              restricted_shell
                      la shell activa esta opción si se  inicia  en  modo  restringido  (consulte
                      SHELL  RESTRINGIDA  más  adelante).  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.

              shift_verbose
                      Si  está  activa, la orden interna shift muestra un mensaje de error cuando
                      el número de shift excede al de parámetros posicionales.

              sourcepath
                      If set, the . (source) builtin uses the value of PATH to find the directory
                      containing  the  file  supplied  as an argument.  This option is enabled by
                      default.

              varredir_close
                      If set, the shell automatically closes file descriptors assigned using  the
                      {varname}  redirection  syntax  (see  REDIRECTION above) instead of leaving
                      them open when the command completes.

              xpg_echo
                      If set, the echo builtin expands backslash-escape sequences by default.

       suspend [-f]
              Suspend the execution of this shell until it receives a SIGCONT  signal.   A  login
              shell,  or  a shell without job control enabled, cannot be suspended; the -f 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 -f is not
              supplied.

       test expr
       [ expr ]
              Return a status of 0 (true) or  1  (false)  depending  on  the  evaluation  of  the
              conditional  expression  expr.   Each  operator  and  operand  must  be  a separate
              argument.   Expressions  are  composed  of  the  primaries  described  above  under
              CONDITIONAL  EXPRESSIONS.  test does not accept any options, nor does it accept and
              ignore an argument of -- as signifying the end of options.

              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.
              ! expr Verdad si expr es falsa.
              ( expr )
                     Devuelve el valor de expr.  Esto puede emplearse para cambiar la precedencia
                     normal de los operadores.
              expr1 -a expr2
                     Verdad si tanto expr1 como expr2 son verdad.
              expr1 -o expr2
                     Verdad si uno al menos de expr1 o expr2 es verdad.

              test  y  [ evalúan expresiones condicionales según un conjunto de reglas basadas en
              el número de argumentos.

              0 argumentos
                     La expresión es falsa.
              1 argumento
                     La expresión es verdad si y solo si el argumento no está vacío.
              2 argumentos
                     If the first argument is !, the expression is true if and only if the second
                     argument  is  null.   If  the first argument is one of the unary conditional
                     operators listed above under CONDITIONAL EXPRESSIONS, the expression is true
                     if  the  unary  test  is  true.   If the first argument is not a valid unary
                     conditional operator, the expression is false.
              3 argumentos
                     The following conditions are applied in the order  listed.   If  the  second
                     argument  is  one  of  the  binary  conditional operators listed above under
                     CONDITIONAL EXPRESSIONS, the result of the expression is the result  of  the
                     binary  test using the first and third arguments as operands.  The -a and -o
                     operators are considered binary operators when there  are  three  arguments.
                     If  the  first  argument is !, the value is the negation of the two-argument
                     test using the second and third arguments.  If the first argument is exactly
                     (  and  the third argument is exactly ), the result is the one-argument test
                     of the second argument.  Otherwise, the expression is false.
              4 argumentos
                     The following conditions are applied in the  order  listed.   If  the  first
                     argument  is  !, 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 ( and the fourth
                     argument is exactly ), 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.
              5 ó más argumentos
                     La expresión se analiza y evalúa de acuerdo con la  precedencia  usando  las
                     reglas mencionadas arriba.

              When  used with test or [, the < and > operators sort lexicographically using ASCII
              ordering.

       times  Muestra los tiempos acumulados de usuario y sistema para la shell y  para  procesos
              ejecutados desde él. El estado de retorno es 0.

       trap [-lp] [[arg] nombre-señal ...]
              The  command  arg  is  to  be  read  and executed when the shell receives signal(s)
              sigspec.  If arg is absent (and there is a single sigspec)  or  -,  each  specified
              signal  is reset to its original disposition (the value it had upon entrance to the
              shell).  If arg is the null string the signal specified by each sigspec is  ignored
              by the shell and by the commands it invokes.  If arg is not present and -p has been
              supplied, then the trap commands associated with each sigspec are displayed.  If no
              arguments  are  supplied  or  if only -p is given, trap prints the list of commands
              associated with each signal.  The -l option causes the shell to  print  a  list  of
              signal names and their corresponding numbers.  Each sigspec is either a signal name
              defined in <signal.h>, or a signal number.  Signal names are case  insensitive  and
              the SIG prefix is optional.

              If  a sigspec is EXIT (0) the command arg is executed on exit from the shell.  If a
              sigspec is DEBUG, the command arg is executed  before  every  simple  command,  for
              command, case command, select command, every arithmetic for command, and before the
              first command executes in a shell function (see SHELL GRAMMAR above).  Refer to the
              description  of  the extdebug option to the shopt builtin for details of its effect
              on the DEBUG trap.  If a sigspec is RETURN, the command arg is executed each time a
              shell  function  or  a  script  executed  with  the  .  or source builtins finishes
              executing.

              If a sigspec is ERR, the command arg 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  ERR  trap  is  not
              executed  if the failed command is part of the command list immediately following a
              while or until keyword, part of the test in an if  statement,  part  of  a  command
              executed  in  a  && or || list except the command following the final && or ||, any
              command in a pipeline but the last, or if  the  command's  return  value  is  being
              inverted using !.  These are the same conditions obeyed by the errexit (-e) option.

              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
              sigspec is invalid; otherwise trap returns true.

       type [-aftpP] nombre [nombre ...]
              Sin opciones, indica cómo será interpretado cada nombre si se usa como un nombre de
              orden.   Si  se  emplea la opción -t, type muestra una de las siguientes cadenas de
              caracteres: alias, keyword, function, builtin, o file si nombre 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  nombre  no  se
              encuentra, no se muestra nada, y se devuelve un estado de salida de `falso'.  Si se
              emplea la opción -p, type devuelve o bien el nombre del archivo  de  disco  que  se
              ejecutaría si se especificara nombre como un nombre de orden, o bien nada si ``type
              -t name'' No devolvería archivo. La opción -P obliga a RUTA a  buscar  cada  nombre
              aunque  ``type  -t name'' would not return file.  If a command is hashed, -p and -P
              print the hashed value, which is not necessarily the file  that  appears  first  in
              PATH.   If  the  -a  option  is used, type prints all of the places that contain an
              executable named name.  This includes aliases and functions, if and only if the  -p
              option  is not also used.  The table of hashed commands is not consulted when using
              -a.  The -f option suppresses shell function lookup, as with the  command  builtin.
              type returns true if all of the arguments are found, false if any are not found.

       ulimit [-HS] -a
       ulimit [-HS] [-bcdefiklmnpqrstuvxPRT [límite]]
              Provides control over the resources available to the shell and to processes started
              by it, on systems that allow such control.  The -H and -S 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 -H nor -S is specified, both the soft and hard limits
              are set.  The value of limit can be a number in the unit specified for the resource
              or  one of the special values hard, soft, or unlimited, which stand for the current
              hard limit, the current soft limit,  and  no  limit,  respectively.   If  limit  is
              omitted, the current value of the soft limit of the resource is printed, unless the
              -H 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:
              -a     Se informa de todos los límites actuales; no se configura ninguno
              -b     El tamaño máximo de buffer del conector
              -c     El tamaño máximo de archivo de volcados de memoria (core)
              -d     El tamaño máximo del segmento de datos de un proceso
              -e     La máxima prioridad de ejecución ("nice")
              -f     El tamaño máximo de los archivos creados por la shell y sus descendientes
              -i     El número máximo de señales pendientes
              -k     El número máxima de kqueues que se pueden acomodar
              -l     El tamaño máximo que puede ser bloqueado en memoria
              -m     El tamaño máximo de memoria residente (la mayoría de sistemas  no  tiene  en
                     cuenta este valor)
              -n     EL  número  máximo  de  descriptores  de  archivos  abiertos  (la mayoría de
                     sistemas no permiten establecer este valor)
              -p     El tamaño de  una  tubería  en  bloques  de  512  B  (esto  puede  no  estar
                     establecido)
              -q     El número máximo de bytes en la cola de mensajes POSIX
              -r     La máxima prioridad de ejeución en tiempo real.
              -s     El tamaño máximo de pila
              -t     La máxima cantidad de tiempo de CPU en segundos
              -u     El número máximo de procesos disponibles para un solo usuario
              -v     La máxima cantidad de memoria virtual disponible para la shell y, en algunos
                     sistemas, para sus descendientes.
              -x     La cantidad máxima de bloqueos de archivo
              -P     The maximum number of pseudoterminals
              -R     El tiempo máximo, en microsegundos,  que  puede  ejecutarse  un  proceso  en
                     tiempo real antes de bloquearse.
              -T     La cantidad máxima de hilos

              If  limit  is  given,  and the -a option is not used, limit is the new value of the
              specified resource.  If no option is given, then -f  is  assumed.   Values  are  in
              1024-byte  increments,  except  for  -t,  which  is  in  seconds;  -R,  which is in
              microseconds; -p, which is in units of 512-byte blocks; -P, -T, -b, -k, -n, and -u,
              which  are  unscaled  values;  and,  when  in  posix  mode, -c and -f, 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.

       umask [-p] [-S] [modo]
              La  máscara  de  creación  de  archivos  del  usuario se establece a modo.  Si modo
              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 chmod(1).  Si modo se omite, se
              muestra el valor actual de la máscara.  La opción -S 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 -p y modo 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 modo, y `falso' en otra circunstancia.

       unalias [-a] [nombre ...]
              Quita cada nombre de la lista de alias definidos. Si se da la opción -a, se  quitan
              todas  las  definiciones  de  alias. El estado de salida es `verdad' a menos que un
              nombre dado no sea un alias definido.

       unset [-fv] [-n] [nombre ...]
              For each name, remove the corresponding variable or function.  If the -v option  is
              given,  each  name  refers  to  a  shell  variable,  and  that variable is removed.
              Read-only variables may not be unset.  If -f is specified, each name  refers  to  a
              shell  function,  and  the  function  definition  is  removed.  If the -n option is
              supplied, and name is a variable with the nameref attribute,  name  will  be  unset
              rather  than  the  variable  it  references.   -n has no effect if the -f option is
              supplied.  If no options are supplied, each name 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  BASH_ALIASES,  BASH_ARGV0,  BASH_CMDS,  BASH_COMMAND,  BASH_SUBSHELL,
              BASHPID, COMP_WORDBREAKS, DIRSTACK, EPOCHREALTIME, EPOCHSECONDS, FUNCNAME,  GROUPS,
              HISTCMD,  LINENO,  RANDOM,  SECONDS,  or SRANDOM are unset, they lose their special
              properties, even if they are subsequently reset.  The exit status is true unless  a
              name is readonly or may not be unset.

       wait [-fn] [-p nombrevariable] [id ...]
              Wait  for  each specified child process and return its termination status.  Each id
              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 id is not given, wait waits for all
              running background jobs and the last-executed process substitution, if its  process
              id is the same as $!, and the return status is zero.  If the -n option is supplied,
              wait waits for a single job from the list of ids or, if no ids  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 -p option is supplied, the
              process or job identifier of the job for which  the  exit  status  is  returned  is
              assigned  to  the variable varname named by the option argument.  The variable will
              be unset initially, before any assignment.  This is useful only when the -n  option
              is  supplied.  Supplying the -f option, when job control is enabled, forces wait to
              wait for id to terminate before returning its status, instead of returning when  it
              changes  status.   If id specifies a non-existent process or job, the return status
              is 127.  If wait is interrupted by a signal, the return status will be greater than
              128,  as  described  under SIGNALS above.  Otherwise, the return status is the exit
              status of the last process or job waited for.

MODO DE COMPATIBILIDAD DE LA SHELL

       Bash-4.0 introduced the concept of a shell compatibility level,  specified  as  a  set  of
       options  to the shopt builtin ( compat31, compat32, compat40, compat41, and so on).  There
       is only one current compatibility  level  --  each  option  is  mutually  exclusive.   The
       compatibility  level  is intended to allow users to select behavior from previous versions
       that is incompatible with newer  versions  while  they  migrate  scripts  to  use  current
       features and behavior. It's intended to be a temporary solution.

       This  section  does  not mention behavior that is standard for a particular version (e.g.,
       setting compat32 means that quoting the rhs of the regexp matching operator quotes special
       regexp  characters  in  the  word,  which  is  default behavior in bash-3.2 and subsequent
       versions).

       If a user enables, say, compat32, 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 bash, but that behavior  may  have
       been  present  in  earlier  versions.   For  instance,  the  change  to  use  locale-based
       comparisons with the [[ command came in bash-4.1, and earlier  versions  used  ASCII-based
       comparisons,  so  enabling  compat32  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.

       En Bash-4.3 se introdujo una nueva variable de la shell: BASH_COMPAT. El valor asignado  a
       esta  variable  (un  número  decimal  como  4.2 o un entero que correspondería a la opción
       compatNN como por ejemplo: 42) determinará el nivel de compatibilidad.

       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 BASH_COMPAT en su lugar.

       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 BASH_COMPAT.

       The following table describes the behavior changes controlled by each compatibility  level
       setting.   The compatNN tag is used as shorthand for setting the compatibility level to NN
       using one of the following mechanisms.  For versions prior to bash-5.0, the  compatibility
       level  may  be  set using the corresponding compatNN shopt option.  For bash-4.3 and later
       versions, the BASH_COMPAT variable is preferred, and it is required for bash-5.1 and later
       versions.

       compat31
              •      quoting  the  rhs  of the [[ command's regexp matching operator (=~)  has no
                     special effect

       compat32
              •      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)

       compat40
              •      the  <  and > operators to the [[ 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  strcmp(3);  bash-4.1 and later use the
                     current locale's collation sequence and strcoll(3).

       compat41
              •      in posix mode, time may be followed by options and still be recognized as  a
                     reserved word (this is POSIX interpretation 267)
              •      in  posix  mode,  the  parser  requires that an even number of single quotes
                     occur in the word 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)

       compat42
              •      the replacement  string  in  double-quoted  pattern  substitution  does  not
                     undergo quote removal, as it does in versions after bash-4.2
              •      in  posix mode, single quotes are considered special when expanding the word
                     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

       compat43
              •      the  shell  does  not print a warning message if an attempt is made to use a
                     quoted compound assignment as an  argument  to  declare  (e.g.,  declare  -a
                     foo='(1 2)'). Later versions warn that this usage is deprecated
              •      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).
              •      when  executing  a shell function, the loop state (while/until/etc.)  is not
                     reset, so break or continue in that function will break or continue loops in
                     the calling context. Bash-4.4 and later reset the loop state to prevent this

       compat44
              •      la  shell  define  los  valores  de  BASH_ARGV  y  BASH_ARGC para que puedan
                     expandirse en los parámetros posicionales aunque  no  esté  activo  el  modo
                     ampliado de depuración.
              •      una  subshell  hereda  los  bucles del contexto de su antecesor, así break o
                     continue hacen terminar su ejecución. En la versión 5.0  y  posteriores,  se
                     reinicia el estado del bucle para evitarlo.
              •      las  asignaciones  de  variables que precenden órdenes nativas como export y
                     readonly 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.

       compat50
              •      Bash-5.1 changed the way $RANDOM 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 RANDOM will produce the same
                     sequence as in bash-5.0
              •      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 -l  option  is
                     supplied.

       compat51
              •      The  unset  builtin  treats  attempts  to  unset  array  subscripts  @ and *
                     differently depending on whether the array is indexed  or  associative,  and
                     differently than in previous versions.

SHELL RESTRINGIDA

       Si  bash  se  arranca con el nombre rbash, o se da la opción -r 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 bash
       con la excepción de que lo siguiente no está permitido o no se realiza:

       •      cambiar de directorio con cd

       •      define o elimina los valores de SHELL, PATH, HISTFILE, ENV, o BASH_ENV

       •      especificar nombres de órdenes que contengan /

       •      especificar un nombre de archivo que contenga al menos una / como un  argumento  de
              la orden interna . (source)

       •      especificar  un nombre de archivo que contenga al menos una barra como argumento de
              la orden interna history

       •      especificar un nombre de archivo que contenga al menos una barra como argumento  de
              la orden interna hash

       •      importar definiciones de funciones desde el entorno de la shell en el arranque

       •      analizar el valor de SHELLOPTS desde el entorno de la shell en el arranque

       •      redirigir la salida usando los operadores de redirección >, >|, <>, >&, &>, y >>

       •      utiliza la orden nativa exec para reemplazar la shell por otro programa

       •      añadir o eliminar órdenes incorporadas con las opciones -f o -d de la orden interna
              enable.

       •      utilizar la orden  interna  enable  para  activar  órdenes  internas  de  la  shell
              inactivas.

       •      dar la opción -p a la orden interna command.

       •      desactivar el modo restringido con set +r o shopt -u restricted_shell.

       Estas  restricciones  entran  en vigor después de que se lean los archivos de arranque que
       hubiera.

       When a command that is found to be a shell  script  is  executed  (see  COMMAND  EXECUTION
       above),  rbash  desactiva  todas  las  restricciones  en la shell lanzado para ejecutar el
       guión.

VÉASE TAMBIÉN

       Bash Reference Manual, Brian Fox y Chet Ramey
       The Gnu Readline Library (La Biblioteca Readline de GNU), Brian Fox & Chet Ramey
       The Gnu History Library (La Biblioteca de Historia de GNU), Brian Fox & Chet Ramey
       Portable Operating System Interface (POSIX) Part 2: Shell  and  Utilities  (Interfaz  para
       Sistemas Operativos Portables (POSIX) Parte 2: Shell y Utilidades), IEEE --
              http://pubs.opengroup.org/onlinepubs/9699919799/
       http://tiswww.case.edu/~chet/bash/POSIX -- descripción del modo posix
       sh(1), ksh(1), csh(1)
       emacs(1), vi(1)
       readline(3)

ARCHIVOS

       /bin/bash
              La imagen ejecutable de bash
       /etc/profile
              El archivo de inicio general, leído en shells de inicio
       /etc/bash.bashrc
              Archivo global de inicio para shells interactivos
       /etc/bash.bash.logout
              El archivo global que se ejecuta cuando se sale de la shell
       ~/.bash_profile
              El archivo de inicio personal, leído en shells de inicio
       ~/.bashrc
              El archivo individual de inicio para shells interactivos
       ~/.bash_logout
              El archivo de limpieza de inicio personal, ejecutado cada vez que termina una shell
              de inicio
       ~/.bash_history
              Valor por defecto de HISTFILE, el archivo donde bash guarda el historial de órdenes
       ~/.inputrc
              El archivo de inicio individual de readline

AUTORES

       Brian Fox, Free Software Foundation
       bfox@gnu.org

       Chet Ramey, Case Western Reserve University
       chet.ramey@case.edu

INFORMES DE FALLOS

       Si Ud. encuentra un fallo  en  bash,  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
       bash. Dicha versión  siempre  está  disponible  en  ftp://ftp.gnu.org/pub/gnu/bash/  y  en
       http://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-master.tar.gz.

       Una  vez  que  Ud.  ha determinado que realmente existe un fallo, utilice la orden bashbug
       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  bug-bash@gnu.org  o  se  pueden
       publicar en el grupo de discusiones de Usenet gnu.bash.bug.

       TODOS los informes de fallos deben incluir:

       El número de versión de bash
       El tipo de equipo (hardware) y el sistema operativo
       El compilador que se empleó para compilarlo
       Una descripción del comportamiento del fallo
       Un breve script o 'receta' para reproducir el fallo

       bashbug  inserta  automáticamente los tres primeros puntos en la plantilla que proporciona
       para escribir el informe del fallo.

       Los comentarios e informes de  fallos  que  conciernan  a  esta  página  de  manual  deben
       dirigirse a chet.ramey@case.edu.

ERRORES

       Es demasiado grande y demasiado lento.

       Hay  algunas  sutiles diferencias entre bash y versiones tradicionales del shell de Bourne
       sh, mayormente debidas a la especificación POSIX.

       Los alias son confusos en algunos casos.

       Las órdenes nativas de la shell y las funciones no son interrumpibles/reiniciables.

       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.

       Las variables de tipo vector no pueden (de momento) exportarse.

       Solo puede haber un coproceso activo a la vez.

TRADUCCIÓN

       La traducción al español de esta página del  manual  fue  creada  por  Gerardo  Aburruzaga
       García <gerardo.aburruzaga@uca.es> y Marcos Fouces <marcos@debian.org>

       Esta  traducción  es  documentación  libre;  lea  la  GNU General Public License Version 3
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ o posterior con respecto a las condiciones  de
       copyright.  No existe NINGUNA RESPONSABILIDAD.

       Si  encuentra  algún  error  en  la  traducción de esta página del manual, envíe un correo
       electrónico a ⟨debian-l10n-spanish@lists.debian.org⟩.