Provided by: manpages-es_4.13-4_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-2020 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 (vea
                 LLAMADA más abajo).
       -r        Si la opción -r está presente, entonces la  shell  se  vuelve  restringido  (vea
                 SHELL RESTRINGIDO más abajo).
       -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 modo de empleo en la salida estándar y acaba con éxito.
       --init-file fichero
       --rcfile fichero
              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 (vea SHELL RESTRINGIDA más abajo).

       --verbose
              Equivale a -v.

       --version
              Muestra información en la salida estándar sobre la versión de esta instanciación de
              bash y acaba con éxito.

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 determina isatty(3)), o uno iniciado con la opción -i.  Se define PS1  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  ficheros  de  arranque.   Si
       cualquiera  de  los  ficheros  existe pero no puede leerse, bash informa de un error.  Las
       tildes de la ñ se expanden en nombres de ficheros como se describe más abajo 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 en remoto, usualmente mediante rshd o sshd. Si bash determina que
       está siendo ejecutado de este modo, lee y ejecuta órdenes desde  ~/.bashrc,  si  existe  y
       tiene  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

   Ó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]] [ ! ] orden [ [||&] orden2 ... ]

       La salida estándar de orden 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 orden
       (consulte REDIRECCIÓN más adelante). Si se emplea |& la salida de error estándar de  orden
       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 por la orden.

       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.

   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 un subshell (vea 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  internas  que afectaran al entorno de la shell no permanecen. 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  abajo  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.  Esto  es  equivalente
              exactamente a let "expresión".

       [[ expresión ]]
              Devuelve  un  estado  de  0  ó  1  dependiendo  de  la  evaluación  de la expresión
              condicional expresión.  Las expresiones se  componen  de  las  primarias  descritas
              adelante  bajo  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.  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.  Puede  entrecomillarse una parte del patrón para forzar que la
       parte entrecomillada concuerda como una cadena. Debe tenerse especial cuidado con  el  uso
       de  corchetes ya que las comillas normales pierden su especial significado entre ellos. Si
       el patrón es una variable de la shell, al entrecomillar la expansión de esta  variable  se
       fuerza a que la totalidad del patrón concuerde como una cadena.

       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 enésima subexpresión entre paréntesis.

       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 (vea
              PARÁMETROS más abajo).  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  (vea  PARÁMETROS  más  abajo).   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 se completa. Cualquier otro valor
              leída hace que nombre se ponga a 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, susotució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  y  sustitución  de  procesos.  Si  está  activa la opción
              nocasematch, se buscará la concordancia se buscará 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 salidaserá cero si ningún 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.

       El formato general de un coproceso es el siguiente:

              coproc [NOMBRE] orden [redirecciones]

       Esto creará un coproceso llamado NOMBRE. Si no se indica ningún NOMBRE, se asignará COPROC
       por  defecto. No debe darse este NOMBRE si la orden es una orden simple (vea más adelante)
       sino se interpretará como la primera parte de esa  orden  simple.  Cuando  se  ejecuta  el
       coproceso,  la  shell crea una variable vectorial (conculte Vectores más adelante) llamada
       NOMBRE en el contexto de la shell que la ejecuta.  La  salida  estándar  de  la  orden  se
       conecta  mediante  una tubería a un descriptor de archivo de la shell que la ejecuta. Este
       descriptor se asigna a NAME[1]. Esta tubería se  define  antes  de  cualquier  redirección
       definida  por  la orden (consulte REDIRECCIONES más adelante). Los descriptores de archivo
       pueden emplearse como argumentos en las órdenes de la shell y  en  redirecciones  mediante
       expansiones  de  palabra. En las subshells solo estarán disponible descriptores de archivo
       que fueron creados para ejecutar órdenes y sustituciones de procesos. El ID del proceso de
       la  shell  creada  para ejecutar el coproceso es el valor de la variable NOMBRE_PID. Puede
       emplearse la orden interna wait para esperar a que el coproceso finalice.

       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 necesarias 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  interna  shopt está activa (vea ÓRDENES NATIVAS DE LA SHELL más abajo), 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óstrofos 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 (vea PARÁMETROS más abajo).

       Las  palabras  de  la forma $'cadena' se tratan de forma especial. La palabra se expanda a
       cadena, con los caracteres protegidos par barra invertida reemplazados según especifica el
       estándar  ANSI/ISO 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 ($"string") hará que la
       cadena se traduzca según la localización actual. La infraestructura de gettext  buscar  su
       traducción  en  el  catñalogo de mensajes mediante las variables de la shell LC_MESSAGES y
       TEXTDOMAIN. Si la localización actual es C o POSIX, el signo  de  dólar  no  se  tiene  en
       cuenta.   Si  la  cadena se traduce y reemplaza, el reemplazo se entrecomilla con comillas
       dobles.

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 interna unset (vea Ó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  (vea  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 $((...))  (vea  Expansión  aritmética  más
       adelante).   No  se  realiza  la  división  de  palabras, con la excepción de "$@" como se
       explica más adelante bajo el epígrafe Parámetros especiales.  La expansión de  nombres  de
       ruta  tampoco  se  efectúa. 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.

       In the context where an assignment statement is assigning a value to a shell  variable  or
       array  index,  the  += operator can be used to append to or add to the variable's previous
       value.  This includes arguments to builtin commands such as declare that accept assignment
       statements (declaration commands).  When += is applied to a variable for which the integer
       attribute has been set, value is evaluated as an arithmetic expression and  added  to  the
       variable's  current  value,  which  is  also  evaluated.   When  += is applied to an array
       variable using compound assignment (see Arrays below), the variable's value is  not  unset
       (as it is when using =), and new values are appended to the array beginning at one greater
       than the array's maximum index (for indexed arrays) or added as additional key-value pairs
       in  an associative array.  When applied to a string-valued variable, value is expanded and
       appended to the variable's value.

       A variable can be assigned the nameref attribute using the -n option  to  the  declare  or
       local  builtin  commands  (see  the  descriptions of declare and local below)  to create a
       nameref, or a reference to another variable.  This  allows  variables  to  be  manipulated
       indirectly.   Whenever  the nameref variable is referenced, assigned to, unset, or has its
       attributes modified (other than using or  changing  the  nameref  attribute  itself),  the
       operation is actually performed on the variable specified by the nameref variable's value.
       A nameref is commonly used within shell functions to refer to a  variable  whose  name  is
       passed  as  an  argument to the function.  For instance, if a variable name is passed to a
       shell function as its first argument, running
              declare -n ref=$1
       inside the function creates a nameref variable ref whose value is the variable name passed
       as  the first argument.  References and assignments to ref, and changes to its attributes,
       are treated as references, assignments, and attribute modifications to the variable  whose
       name  was  passed as $1.  If the control variable in a for loop has the nameref attribute,
       the list of words can be a  list  of  shell  variables,  and  a  name  reference  will  be
       established  for  each  word  in  the  list,  in  turn,  when the loop is executed.  Array
       variables cannot be given the nameref attribute.  However, nameref variables can reference
       array  variables  and  subscripted  array  variables.   Namerefs can be unset using the -n
       option to the unset builtin.  Otherwise, if unset is executed with the name of  a  nameref
       variable as an argument, the variable referenced by the nameref variable will be unset.

   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 interna 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 (vea FUNCIONES abajo).

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

   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.
       @      Expands to the positional parameters, starting from one.  In  contexts  where  word
              splitting  is performed, this expands each positional parameter to a separate word;
              if not within double quotes,  these  words  are  subject  to  word  splitting.   In
              contexts  where word splitting is not performed, this expands to a single word with
              each positional parameter separated by a space.  When the expansion  occurs  within
              double  quotes,  each  parameter  expands  to  a  separate  word.  That is, "$@" is
              equivalent to "$1" "$2" ...  If the double-quoted expansion occurs within  a  word,
              the  expansion  of  the  first  parameter  is joined with the beginning part of the
              original word, and the expansion of the last parameter is joined with the last part
              of  the original word.  When there are no positional parameters, "$@" and $@ expand
              to nothing (i.e., they are removed).
       #      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 interna set, o las que haya puesto el
              mismo shell (como la opción -i).
       $      Se  expande  al  PID  de la shell. En un 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
              interna shopt (vea ÓRDENES NATIVAS DE LA SHELL abajo). Las opciones que aparecen en
              BASHOPTS  son  aquéllas que aparecen como on en shopt.  Si esta variable está en el
              ambiente cuando bash empieza, cada opción de la shell en la lista se activará antes
              de leer cualquier fichero de inicio.  Esta variable es de lectura exclusiva.
       BASHPID
              Se  exanpde  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
              An associative array variable whose members correspond  to  the  internal  list  of
              aliases as maintained by the alias builtin.  Elements added to this array appear in
              the alias list; however, unsetting array elements currently does not cause  aliases
              to  be removed from the alias list.  If BASH_ALIASES is unset, it loses its special
              properties, even if it is subsequently reset.
       BASH_ARGC
              An array variable whose values are the number of parameters in each  frame  of  the
              current  bash  execution  call  stack.   The  number  of  parameters to the current
              subroutine (shell function or script executed with . or source) is at  the  top  of
              the  stack.   When  a  subroutine  is  executed, the number of parameters passed is
              pushed onto BASH_ARGC.  The shell sets BASH_ARGC only when  in  extended  debugging
              mode  (see  the  description  of  the  extdebug option to the shopt builtin below).
              Setting extdebug after the shell has started to execute a  script,  or  referencing
              this variable when extdebug is not set, may result in inconsistent values.
       BASH_ARGV
              An  array  variable  containing all of the parameters in the current bash execution
              call stack.  The final parameter of the last subroutine call is at the top  of  the
              stack; the first parameter of the initial call is at the bottom.  When a subroutine
              is executed, the parameters supplied are pushed onto  BASH_ARGV.   The  shell  sets
              BASH_ARGV only when in extended debugging mode (see the description of the extdebug
              option to the shopt builtin below).  Setting extdebug after the shell  has  started
              to  execute  a  script,  or referencing this variable when extdebug is not set, may
              result in inconsistent values.
       BASH_ARGV0
              When referenced, this variable expands to the name of the  shell  or  shell  script
              (identical to $0; see the description of special parameter 0 above).  Assignment to
              BASH_ARGV0 causes the value assigned to also be assigned to $0.  If  BASH_ARGV0  is
              unset, it loses its special properties, even if it is subsequently reset.
       BASH_CMDS
              An  associative  array variable whose members correspond to the internal hash table
              of commands as maintained by the hash builtin.  Elements added to this array appear
              in  the  hash  table;  however,  unsetting  array elements currently does not cause
              command names to be removed from the hash table.  If BASH_CMDS is unset,  it  loses
              its special properties, even if it is subsequently reset.
       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
              An array variable whose members are the line numbers in  source  files  where  each
              corresponding  member  of  FUNCNAME  was  invoked.   ${BASH_LINENO[$i]} is the line
              number in the source file (${BASH_SOURCE[$i+1]}) where ${FUNCNAME[$i]}  was  called
              (or  ${BASH_LINENO[$i-1]} if referenced within another shell function).  Use LINENO
              to obtain the current line number.
       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
              An  array  variable  whose members are assigned by the =~ binary operator to the [[
              conditional command.  The element with  index  0  is  the  portion  of  the  string
              matching the entire regular expression.  The element with index n is the portion of
              the string matching the nth parenthesized subexpression.
       BASH_SOURCE
              An array variable whose members are the source filenames  where  the  corresponding
              shell  function  names  in  the  FUNCNAME  array  variable  are defined.  The shell
              function ${FUNCNAME[$i]} is defined in the file ${BASH_SOURCE[$i]} and called  from
              ${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 construcció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 calve (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
              The  index  of the current cursor position relative to the beginning of the current
              command.  If the current cursor position is at the end of the current command,  the
              value  of this variable is equal to ${#COMP_LINE}.  This variable is available only
              in shell functions and external commands invoked  by  the  programmable  completion
              facilities (see Programmable Completion below).
       COMP_TYPE
              Set  to  an  integer  value  corresponding to the type of completion attempted that
              caused a completion function to be called:  TAB,  for  normal  completion,  ?,  for
              listing  completions  after successive tabs, !, for listing alternatives on partial
              word completion, @, to list completions if the word is not unmodified,  or  %,  for
              menu  completion.   This variable is available only in shell functions and external
              commands invoked  by  the  programmable  completion  facilities  (see  Programmable
              Completion below).
       COMP_WORDBREAKS
              The  set  of  characters  that  the readline library treats as word separators when
              performing word completion.  If COMP_WORDBREAKS is  unset,  it  loses  its  special
              properties, even if it is subsequently reset.
       COMP_WORDS
              An  array  variable  (see  Arrays  below) consisting of the individual words in the
              current command line.  The line is split into words as  readline  would  split  it,
              using COMP_WORDBREAKS as described above.  This variable is available only in shell
              functions invoked by  the  programmable  completion  facilities  (see  Programmable
              Completion below).
       COPROC An  array  variable  (see  Arrays  below)  created to hold the file descriptors for
              output from and input to an unnamed coprocess (see Coprocesses above).
       DIRSTACK
              Una variable vector (vea Vectores más abajo) 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 interna 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  internas  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  interna
              getopts (vea ÓRDENES NATIVAS DE LA SHELL más abajo).
       OPTIND El índice del siguiente argumento a ser procesado por la orden interna getopts (vea
              ÓRDENES NATIVAS DE LA SHELL más abajo).
       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 (vea Vectores más abajo) 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_LINE
              Contenido del buffer de línea de readline, para emplear con "bind -x" (vea  ÓRDENES
              NATIVAS DE LA SHELL a continuación).
       READLINE_MARK
              The  position  of the mark (saved insertion point) in the readline line buffer, for
              use with "bind -x" (see SHELL BUILTIN COMMANDS below).  The characters between  the
              insertion point and the mark are often called the region.
       READLINE_POINT
              The position of the insertion point in the readline line buffer, for use with "bind
              -x" (vea ÓRDENES NATIVAS DE LA SHELL a continuación).
       REPLY  La línea de entrada leída por la orden interna read cuando no se le dan argumentos.
       SECONDS
              Each time  this  parameter  is  referenced,  the  number  of  seconds  since  shell
              invocation is returned.  If a value is assigned to SECONDS, the value returned upon
              subsequent references is the number of seconds since the assignment plus the  value
              assigned.  The number of seconds at shell invocation and the current time is always
              determined by querying the system clock.  If SECONDS is unset, it loses its special
              properties, even if it is subsequently reset.
       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
              interna  set  (vea ÓRDENES NATIVAS DE LA SHELL abajo). Las opciones que aparecen en
              SHELLOPTS son aquéllas que aparecen como on en set -o.  Si esta variable está en el
              ambiente cuando bash empieza, cada opción de la shell en la lista se activará antes
              de leer cualquier fichero 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
              The  value is used to set the shell's compatibility level.  See SHELL COMPATIBILITY
              MODE below for a description of the various compatibility levels and their effects.
              The  value  may  be  a  decimal  number  (e.g.,  4.2)  or  an  integer  (e.g.,  42)
              corresponding to the desired compatibility level.  If BASH_COMPAT is unset  or  set
              to  the empty string, the compatibility level is set to the default for the current
              version.  If BASH_COMPAT  is  set  to  a  value  that  is  not  one  of  the  valid
              compatibility  levels, the shell prints an error message and sets the compatibility
              level to the default for the current version.  The valid values correspond  to  the
              compatibility  levels  described below under BSHELLCOMPATIBILITYMODE.  For example,
              4.2 and 42 are valid values that correspond to the compat42 shopt  option  and  set
              the compatibility level to 42.  The current version is also a valid value.
       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
              Set the number of exited child status values for the shell to remember.  Bash  will
              not allow this value to be decreased below a POSIX-mandated minimum, and there is a
              maximum value (currently 8192) that this may not  exceed.   The  minimum  value  is
              system-dependent.
       COLUMNS
              Used  by  the select compound command to determine the terminal width when printing
              selection lists.  Automatically set if the checkwinsize option is enabled or in  an
              interactive shell upon receipt of a SIGWINCH.
       COMPREPLY
              An  array  variable  from  which bash reads the possible completions generated by a
              shell function invoked by the programmable completion  facility  (see  Programmable
              Completion below).  Each array element contains one possible completion.
       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 interna 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 (vea READLINE abajo).  Un  nombre
              de  fichero  cuyo sufijo concuerde con una de las entradas en FIGNORE se excluye de
              la lista de nombres de ficheros 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
              A  colon-separated list of values controlling how commands are saved on the history
              list.  If the list of values includes ignorespace, lines which begin with  a  space
              character  are  not  saved in the history list.  A value of ignoredups causes lines
              matching the previous history entry to not be saved.   A  value  of  ignoreboth  is
              shorthand for ignorespace and ignoredups.  A value of erasedups causes all previous
              lines matching the current line to be removed from the  history  list  before  that
              line  is  saved.   Any  value  not in the above list is ignored.  If HISTCONTROL is
              unset, or does not include a valid value, all lines read by the  shell  parser  are
              saved  on  the  history  list,  subject to the value of HISTIGNORE.  The second and
              subsequent lines of a multi-line compound command are not tested, and are added  to
              the history regardless of the value of HISTCONTROL.
       HISTFILE
              El  nombre  del  fichero en el que se guarda el historial de órdenes (vea HISTORIAL
              abajo).  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  interna  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 interna  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 (vea READLINE abajo).
       INSIDE_EMACS
              If  this  variable  appears  in the environment when the shell starts, bash assumes
              that it is running inside an Emacs shell  buffer  and  may  disable  line  editing,
              depending on the value of 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  Used by the select compound command to determine the  column  length  for  printing
              selection  lists.  Automatically set if the checkwinsize option is enabled or in an
              interactive shell upon receipt of a SIGWINCH.
       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
              interna getopts (vea ÓRDENES NATIVAS DE LA SHELL abajo).  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
              If  set  to a number greater than zero, the value is used as the number of trailing
              directory components to retain when expanding the \w and \W prompt  string  escapes
              (see PROMPTING below).  Characters removed are replaced with an ellipsis.
       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 (vea INDICADORES abajo) 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 (vea
              GRAMÁTICA  de la shell más arriba).
       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  This variable expands to the full pathname to the shell.  If it is not set when the
              shell starts, bash assigns to it the full pathname  of  the  current  user's  login
              shell.
       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  If set to a value greater than zero, TMOUT is treated as the  default  timeout  for
              the  read  builtin.   The  select command terminates if input does not arrive after
              TMOUT seconds when input is coming from a terminal.  In an interactive  shell,  the
              value  is  interpreted  as  the number of seconds to wait for a line of input after
              issuing the primary prompt.  Bash terminates  after  waiting  for  that  number  of
              seconds if a complete line of input does not arrive.
       TMPDIR If  set,  bash  uses  its  value  as  the name of a directory in which bash creates
              temporary files for the shell's use.
       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 %?  (vea  CONTROL  DE  TAREAS  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 (vea 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
       (vea ÓRDENES NATIVAS DE LA SHELL abajo).  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.

       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  @  (vea  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.

       The  unset  builtin  is  used to destroy arrays.  unset name[subscript] destroys the array
       element at index subscript, for both indexed and associative arrays.  Negative  subscripts
       to  indexed  arrays  are interpreted as described above.  Unsetting the last element of an
       array variable does not unset the variable.  unset name, where name is an array, or  unset
       name[subscript], where subscript is * or @, removes the entire array.

       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  internas  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
       interna read acepta una -a para asignar una lista de  palabras  leídas  desde  la  entrada
       estándar  a un vector. Las órdenes internas 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.

       After  these  expansions  are performed, quote characters present in the original word are
       removed unless they have been quoted themselves (quote removal).

       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
       (vea 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 characters, 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 characters  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.   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 interna set (vea ÓRDENES NATIVAS DE LA SHELL abajo).

   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 interna 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 @, 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 @, 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}
              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.   The  match  is  performed  using  the  rules
              described  under  Pattern Matching below.  If pattern begins with /, all matches of
              pattern are replaced with string.  Normally only the first match is  replaced.   If
              pattern  begins  with  #,  it  must match at the beginning of the expanded value of
              parameter.  If pattern begins with %, it must match at  the  end  of  the  expanded
              value  of  parameter.   If string is null, matches of pattern are deleted and the /
              following pattern may be omitted.  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.

              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  dentro  de los paréntesis no se considera un carácter especial. 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 considera la expansión aritmética
       para evaluar, dichas expansiones pueden anidarse.

       La evaluación se realiza de  acuerdo  a  las  reglas  listadas  más  abajo  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.  The filenames “.” and “..” must always be matched
       explicitly,  even  if  dotglob  is  set.  In other cases, 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, 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 is 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 usando la orden  interna  shopt,  se  reconocen
       algunos  operadores  de patrones extendidos. En la siguiente descripción, una lista-patrón
       es una lista de uno o  más  patrones  separados  por  un  |.  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

       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

       Antes  de  que se ejecute una orden, su entrada y salida pueden ser redirigidas usando una
       notación especial.  La redirección también se puede emplear para duplicar, abrir y  cerrar
       archivos,  hacer  que  se  refieran  a  distintos  archivos,  y hacer que las orden lean o
       escriban en otros archivos diferentes.Los operadores de redirección también  puede  usarse
       para  para  modificar  la  gestión de los archivos en la shell en ejecución.Los siguientes
       operadores de redirección pueden preceder o aparecer  en  cualquier  sitio  de  una  orden
       simple  o  pueden ir detrás de una orden.  Las redirecciones se procesan en el orden en el
       que aparecen, de izquierda a derecha.

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

       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 interna 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 interna set no está activada, la redirección se intenta
       incluso si el fichero 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

       (vea Duplicación de descriptores de fichero abajo).

   Documentos Internos
       Este tipo de redirección instruye al shell a leer la entrada  desde  la  fuente  en  curso
       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 mejor  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 (vea la descripción de shopt bajo ÓRDENES NATIVAS  DE
       LA SHELL abajo).

       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.
       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).  Local variables "shadow" variables
       with the same name declared at previous scopes.  For instance, a local  variable  declared
       in  a  function hides a global variable of the same name: references and assignments refer
       to the local variable, leaving the global variable unmodified.  When the function returns,
       the global variable is once again 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 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.

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

       Functions may be recursive.  The FUNCNEST variable may be used to limit the depth  of  the
       function call stack and restrict the number of function invocations.  By default, no limit
       is imposed on the number of recursive calls.

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-increment and post-decrement
       - +    menos y más unarios
       ++id --id
              variable pre-increment and pre-decrement
       ! ~    negación lógica y de bits
       **     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.

       Unless  otherwise  specified,  primaries  that  operate on files follow symbolic links and
       operate on the target of the link, rather than the link itself.

       When used with [[, the < and > operators sort lexicographically using the current  locale.
       The test command sorts using ASCII ordering.

       -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 fichero existe y es un enlace simbólico o blando.
       -k fichero
              Verdad si fichero 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 fichero
              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 fichero 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 fichero
              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 abajo.
       -v nombre-variable
              True if the shell variable varname is set (has been assigned a value).
       -R nombre-variable
              True if the shell variable varname is set and is a name reference.
       -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.

       Si  no  resulta  ningún  nombre de orden, las asignaciones de variables afectan al entorno
       actual de la shell. De otro modo, las variables se añaden al entorno de la orden ejecutada
       y  no  afectan al entorno de la shell en curso.  Si cualquiera de las asignaciones intenta
       dar un valor a una variable de lectura exclusiva, se produce un error, y  la  orden  acaba
       con un estado distinto de cero.

       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 el fichero
       no fuera un directorio, se supone que es un script de la shell, un  fichero  que  contiene
       órdenes  de la shell. Se crea un subshell para ejecutarlo.  Este subshell se reinicia a sí
       mismo, así que el efecto es el mismo que si  se  hubiera  llamado  una  nueva  shell  para
       manejar  el  script, con la excepción de que el hijo retiene las localizaciones de órdenes
       recordadas por el padre (vea hash abajo 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.

       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  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.  Vea
       también la orden interna exit abajo.

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.

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     directorio de trabajo actual, $HOME se abreviará con una  tilde  (emplea  el
                     valor de la variable PROMPT_DIRTRIM)
              \W     el  nombre  base  del directorio de trabajo actual, $HOME se abrevia 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 (vea HISTORIAL más abajo), 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 abajo).

   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 al orden nativa bind (vea ÓRDENES NATIVAS DE LA SHELL más abajo).

       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:

       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.
       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)
              This  determines  when  the  user  is  queried about viewing the number of possible
              completions generated by the possible-completions command.  It may be  set  to  any
              integer value greater than or equal to zero.  If the number of possible completions
              is greater than or equal to the value of this variable, readline will  ask  whether
              or  not  the  user  wishes  to  view  them; otherwise they are simply listed on the
              terminal.
       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.
       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-bracketed-paste (On)
              When set to On, readline will configure the terminal in a way that will  enable  it
              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
              can prevent pasted characters from being interpreted as editing commands.
       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)
              If  set to On, readline will enable eight-bit input (that is, it will not strip the
              eighth bit from the characters it reads), regardless of what the terminal claims it
              can  support.   The  name meta-flag is a synonym for this variable.  The default is
              Off, but readline will set it to On if the locale contains eight-bit characters.
       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.
       page-completions (On)
              If  set  to On, readline uses an internal more-like pager to display a screenful of
              possible completions at a time.
       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 de la historia de órdenes (vea HISTORIAL
       abajo)  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.
       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. Vea EXPANSIÓN DEL
              HISTORIAL abajo 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 abajo 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 abajo 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.
       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.
       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
              argumento 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.
       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 abajo) 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 abajo 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 abajo). 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-fichero [argumentos]
       source nombre-fichero [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.   The file searched for in PATH need not be executable.  When bash is not
              in posix mode, the current directory is searched 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, source inherits any trap on DEBUG;  if  it  is  not,  any
              DEBUG  trap  string  is  saved  and  restored around the call to source, and source
              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 source 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-fichero
       bind [-m keymap] -x keyseq:orden-shell
       bind [-m mapatecl] sectecl:nombre-función
       bind [-m keymap] keyseq:orden-readline
              Display  current  readline  key  and  function  bindings,  bind a key sequence to a
              readline function or macro, or set a readline variable.  Each  non-option  argument
              is  a  command  as it would appear in .inputrc, but each binding or command must be
              passed as a separate argument; e.g., '"\C-x\C-r": re-read-init-file'.  Options,  if
              supplied, have the following meanings:
              -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-fichero
                     Lee las asociaciones de teclas desde nombre-fichero.
              -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.  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.  Any additional arguments following dir are ignored.
              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.  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 fichero
              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.

              The  return  value is true unless an invalid option is supplied, or no matches were
              generated.

       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 la sección Autocompletado Programable.

              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-option
                      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  Tell  readline  not  to  sort  the  list  of  possible  completions
                              alphabetically.
                      nospace Tell readline  not  to  append  a  space  (the  default)  to  words
                              completed at the end of the line.
                      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 action
                      The  action  may  be  one  of  the following to generate a list of possible
                      completions:
                      alias   Alias names.  May also be specified as -a.
                      arrayvar
                              Array variable names.
                      binding Readline key binding names.
                      builtin Names of shell builtin commands.  May also be specified as -b.
                      command Command names.  May also be specified as -c.
                      directory
                              Directory names.  May also be specified as -d.
                      disabled
                              Names of disabled shell builtins.
                      enabled Names of enabled shell builtins.
                      export  Names of exported shell variables.  May also be specified as -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
                      command is executed in a subshell environment, and its output  is  used  as
                      the possible completions.
              -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     Each name is an indexed array variable (see Arrays above).
              -A     Each name is an associative array variable (see Arrays above).
              -f     Usar solamente nombres de funciones.
              -i     La variable se trata  como  un  número  entero;  se  realiza  la  evaluación
                     aritmética (vea EVALUACIÓN ARITMÉTICA)  cuando a la variable se le asigne un
                     valor.
              -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.  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.  The return value is 0 unless a name is not a  shell  builtin  or
              there is an error loading a new builtin from a shared object.

       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 fichero 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 fichero 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-fichero] [-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-fichero]
       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  fichero
                     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  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     Display only running jobs.
              -s     Display only stopped jobs.

              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 ...]
              Each  arg  is  an  arithmetic expression to be evaluated (see ARITHMETIC EVALUATION
              above).  If the last arg evaluates to 0, let returns 1; 0 is returned otherwise.

       local [option] [name[=value] ... | - ]
              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. Sin argumentos, desapila el directorio de
              la  cima  de  la  pila,  y  realiza  un  cd  al  nuevo  directorio de la pila.  Los
              argumentos, si se suministran, tienen los siguientes significados:
              -n     Suprime el normal cambio de directorio cuando se desapilan  directorios,  de
                     forma que solamente la pila se manipula.
              +n     Removes  the  nth  entry  counting  from the left of the list shown by dirs,
                     starting with zero.  For example: ``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.

              Si  la orden popd es exitosa, también se realiza un dirs, y el estado de retorno es
              0.  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, o falla el cambio de directorio.

       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.
              %(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 directorios de más arriba y devuelve 0, a menos que la
              pila de directorios esté vacía.  Los argumentos,  si  se  suministran,  tienen  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 dir a  la  pila  de  directorios  en  la  cima,  haciéndolo  el  nuevo
                     directorio  de  trabajo  tal  como  si hubiese aportado como argumento de la
                     orden cd.

              Si la orden pushd acaba con éxito, se realiza un dirs  también.  Si  se  emplea  la
              primera  forma, pushd devuelve 0 a menos que falle el cambio a dir.  Con la segunda
              forma, pushd devuelve 0 a menos que la pila  de  directorios  esté  vacía,  que  se
              especifique  un  elemento de la pila de directorios inexistente, o que el cambio de
              directorio falle.

       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, 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 option-name] [arg ...]
       set [+abefhkmnptuvxBCEHPT] [+o option-name] [arg ...]
              Without  options,  the  name  and  value  of each shell variable are displayed 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      Each variable or function that is created or modified is given  the  export
                      attribute and marked for export to the environment of subsequent commands.
              -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), and may cause subshells to exit before executing all  the  commands
                      in the 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 monitor.  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 arriba). Los procesos se ejecutan todos ellos en  un
                      grupo  de  proceso separado. Cuando finaliza una tarea en segundo plano, la
                      shell muestra una línea con 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 Habilita  la  historia  de  órdenes, según se describió arriba bajo
                              HISTORIAL.  Esta opción  está  habilitada  por  omisión  en  shells
                              interactivos.
                      ignoreeof
                              The  effect  is  as  if the shell command ``IGNOREEOF=10'' had been
                              executed (see Shell Variables 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 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.
                      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.
              -t      Sale tras leer y ejecutar una sola orden.
              -u      Trata  las  variables no definidas y los parámetros especiales distintos de
                      "@" y "*" como un error cuando se realiza la expansión de parámetros. Si la
                      expansión se intenta hacer sobre una variable no definida, la shell muestra
                      un mensaje de error y, si no es interactivo, sale 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).
                      Esto está activado de forma predeterminada.
              -C      Si  está  activo,  bash  no  sobreescribe  un  fichero  existente  con  los
                      operadores  de  redirección  >,  >&, ni <>.  Esto puede cambiarse cuando se
                      crean ficheros 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 fichero
                      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).  The shell always postpones exiting if any
                      jobs are stopped.
              checkwinsize
                      If  set,  bash  checks  the  window  size after each external (non-builtin)
                      command and, if necessary, updates the values of LINES and  COLUMNS.   This
                      option is enabled by default.
              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
                      HISTORIAL.
              compat31
              compat32
              compat40
              compat41
              compat42
              compat43
              compat44
                      Controla  ciertos  ascpetos delmodo de compatibilidad de la shell. Consulte
                      MODO DE COMPATIBILIDAD DE LA SHELL más adelante.

              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
                      If set, bash attempts spelling correction on directory  names  during  word
                      completion if the directory name initially supplied does not exist.

              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
                      fichero especificado como un argumento de la orden interna exec.  Una shell
                      interactiva no finaliza si exec falla.

              expand_aliases
                      Si está activa, los alias se expanden como se describió arriba bajo  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   and   BASH_ARGV   are  updated  as  described  in  their
                             descriptions 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 más arriba en Expansión de nombres de ruta.

              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 for a description
                      of FIGNORE.  This option is enabled by default.

              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.

              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 computador anfitrión cuando se esté completando una
                      palabra que contenga una @ (vea Terminación bajo  READLINE  arriba).   Esto
                      está activado de forma predeterminada.

              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 (vea COMENTARIOS arriba). Esta opción  está
                      habilitada por omisión.

              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
                      The  shell  sets  this  option  if  it  is  started  as  a login shell (see
                      INVOCATION above).  The value may not be changed.

              mailwarn
                      Si está activa, y a un fichero 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 ficheros sin
                      importar mayúsculas o minúsculas cuando realice la expansión de nombres  de
                      ruta (vea Expansión de nombres de ruta arriba).

              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.

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

              progcomp
                      Si está definida, se activan las utilidades de autocompletado  programables
                      (consultes  Autocompletado  Programable  anteriormente).  Esta  opción está
                      activa 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.  This option is enabled by default.

              restricted_shell
                      The  shell  sets  this  option  if  it  is  started in restricted mode (see
                      RESTRICTED SHELL 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
                      Si  está  activa,  la orden interna source (.) emplea el valor de PATH para
                      buscar el directorio que contenga al fichero suministrado  como  argumento.
                      Esta opción está activa por omisión.

              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 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 and -f is not
              supplied, or if job control is not enabled.

       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
                     Si el primer argumento es !, la expresión es verdad si y solo si el  segundo
                     argumento  es  nulo.   Si  el  primer  argumento  es  uno  de los operadores
                     condicionales monarios listados  arriba  en  EXPRESIONES  CONDICIONALES,  la
                     expresión es verdad si el test monario es verdad.  Si el primer argumento no
                     es un operador condicional monario válido, la expresión es falsa.
              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
                     Si el primer argumento es !, el resultado es la negación de la expresión  de
                     tres  argumentos  compuesta por los argumentos restantes.  De otra forma, la
                     expresión se analiza y evalúa de acuerdo con la precedencia  utilizando  las
                     reglas listadas arriba.
              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 ficheros 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.

       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.  Otherwise, the return status is the exit status of the last process or job
              waited for.

MODO DE COMPATIBILIDAD DE LA SHELL

       En Bash-4.0 se introdujo el concepto de 'nivel de compatibilidad  de  la  shell'  definido
       como  una  serie  de  opciones  de  la  orden  nativa shopt (compat31, compat32, compat40,
       compat41 y así sucesivamente). Estas opciones son mutuamente excluyentes ya que sólo puede
       haber  un  nivel  de  compatibilidad  a la vez. Este nivel de compatibilidad permite a los
       usuarios seleccionar la forma de actuar de alguna versión anterior  -incompatible  con  la
       actual-  mientras adapta los scripts para que puedan ejecutarse en la versión actual. Sólo
       pretende ser una solución temporal.

       En esta sección no se mencionan funciones  estándares  en  una  determinada  versión.  Por
       ejemplo:  al  indicar  compat32  provocará que al entrecomillar el rhs del operador de una
       expresión regular también entrecomilla caracteres especiales de expresión  regular  en  la
       palabra, siendo éste el comportamiento por defecto de las versiones 3.2 y superiores.

       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.

       Bash-4.3  introduced  a  new  shell  variable:  BASH_COMPAT.   The  value assigned to this
       variable (a decimal version number like 4.2, or an integer corresponding to  the  compatNN
       option, like 42) determines the compatibility level.

       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 is the final version for which there will be an individual shopt option  for  the
       previous version. Users should use BASH_COMPAT on bash-5.0 and later versions.

       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
              •      no  emite  un  mensaje  de  advertencia  si  se  intenta  emplear  un  grupo
                     entrecomillado  como  argumento  de  'declare' (declare -a foo='(1 2)'). Las
                     versiones posteriores emiten dicho mensaje advirtiendo que está en desuso.
              •      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.

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 ambiente 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 fichero que contenga al menos una / como un argumento de
              la orden interna . (source)

       •      especificar un nombre de fichero 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 set +o restricted.

       Estas restricciones entran en vigor después de que se lean los ficheros  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 Transportables (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 fichero de inicio personal, leído en shells de inicio
       ~/.bashrc
              El fichero individual de arranque para shells interactivos
       ~/.bash_logout
              El archivo de limpieza de inicio personal, ejecutado cada vez que termina una shell
              de inicio
       ~/.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/.

       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 (aún) 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 ⟨⟩.