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

NOMBRE

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

SINOPSIS

       bash [opciones] [orden | achivo]

COPYRIGHT

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

DESCRIPCIÓN

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

       Bash  está  pensado  para  ser  una  implementación  conforme  con  la  especificación  POSIX  de Shell y
       Herramientas, de la IEEE (Grupo de Trabajo 1003.2 de la IEEE). Bash puede configurarse para ser  conforme
       a POSIX por defecto.

OPCIONES

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

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

       Bash  también  interpreta  una  variedad de opciones multi-carácter.  Estas opciones deben aparecer en la
       línea de órdenes antes de las opciones monocarácter para que puedan ser reconocidas.

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

       --login
              Equivale a -l.

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

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

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

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

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

       --verbose
              Equivale a -v.

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

ARGUMENTOS

       Si  quedan  argumentos  tras  el procesado de las opciones, y no se han dado ni la opción -c ni la -s, se
       supondrá que el primer argumento es el nombre de un archivo que contiene órdenes de la shell.  Si bash se
       llama de esta manera, $0 se define con el nombre del archivo, y los parámetros  posicionales  se  definen
       con  los restantes argumentos.  Bash lee y ejecuta órdenes de este archivo y después finaliza.  El estado
       de salida de bash es el de la última orden ejecutada en el script.  Si no se ejecuta  ninguna  orden,  el
       estado  de  salida  es 0. Primero se intenta abrir el archivo en el directorio actual, si no se encunetra
       ninguno entonces se buscará en los directorios definidos en el PATH para el script.

LLAMADA

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

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

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

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

       Cuando una shell de entrada termina o una shell de entrada no interactiva ejecuta la orden  nativa  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 interactiva
       ejecutada con el nombre sh no intenta leer ningún archivo de inicio.  Cuando se  ejecuta  como  sh,  bash
       entra en modo posix después de leer los ficheros de inicio.

       Cuando  bash  se  inicia  en  modo posix, como ocurre cuando se da la opción de línea de órdenes --posix,
       sigue el estándar POSIX para los ficheros de arranque.  En este modo, los shells interactivos expanden la
       variable ENV y se leen y ejecutan órdenes desde el fichero cuyo nombre es el  valor  expandido  de  dicha
       variable.  No se lee ningún otro fichero de arranque.

       Bash  intenta determinar cuándo se está ejecutando con su entrada estándar conectada a una red como si se
       ejecutase con el antiguo demonio remoto de la shell, generalmente rshd o sshd. Si bash determina que está
       siendo ejecutado de este modo, lee y ejecuta órdenes desde /etc/bash.bashrc y  ~/.bashrc,  si  existen  y
       tienen  permiso  de  lectura.  Esto no lo hará si se ejecuta mediante la orden sh. La opción --norc puede
       emplearse para inhibir este comportamiento, y la opción --rcfile puede utilizarse para forzar la  lectura
       de otro archivo, pero ni rshd, ni sshd suelen invocar la shell con estas opciones ni permitir su uso.

       Si se inicia la shell con un id de usuario (o grupo) efectivo distinto del id de usuario (o grupo) real y
       no  se  indica  la  opción  -p, no se leerá ningún archivo de inicio, no se heredarán las funciones de la
       shell del entorno, si están presentes en el entorno  se  ignorarán  las  variables  SHELLOPTS,  BASHOPTS,
       CDPATH  y  GLOBIGNORE  y el id de usuario efectivo será el mismo del usuario real. Si se indica la opción
       -p, se hará lo mismo salvo que el id de usuario efectivo no se cambia.

DEFINICIONES

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

PALABRAS RESERVADAS

       Las Palabras reservadas son palabras que tienen un significado especial para  la  shell.  Las  siguientes
       palabras  se  reconocen  como  reservadas cuando no van entrecomilladas y/o son la primera palabra de una
       orden simple (vea GRAMÁTICA DE LA SHELL a continuación) o la tercera palabra de una orden case  o  select
       (solo sería válido in) o de la orden for (solo in y do serían válidos):

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

GRAMÁTICA DE LA SHELL

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

   Órdenes simples
       Una  orden simple es una secuencia de asignaciones opcionales de variables seguida por palabras separadas
       por blancos y redirecciones, y terminadas por un operador de control. La primera  palabra  especifica  la
       orden  a ser ejecutada, se pasa como argumento cero. Las palabras restantes se pasan como argumentos a la
       orden invocada.

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

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

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

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

       El estado de salida de una tubería será el de la última orden salvo que la opción pipefail esté activada,
       en  cuyo  caso el estado de salida será el de la última (más a la derecha) orden que conforme la tubería.
       Si se precede la tubería de la palabra reservada !, su estado de  salida  será  la  negación  lógica  del
       estado  de  salida  descrito para los casos anteriores. La shell esperará que finalice la ejecución de la
       última orden para devolver un estado de salida.

       Si la palabra reservada time precede una tubería, se informa del tiempo transcurrido,  así  como  del  de
       usuario  y sistema, consumido en la ejecución de la tubería, cuando ésta termina.  La opción -p cambia el
       formato de salida al especificado por POSIX. Cuando la shell está en modo posix, no  reconoce  time  como
       palabra  reservada  si  el  siguiente conjunto de opciones comienza por "-". La variable TIMEFORMAT puede
       definir la forma en que se muestran las temporizaciones. Consulte TIMEFORMAT en el apartado Variables  de
       la Shell.

       Cuando  la shell está en modo posix, time puede ir seguido de un salto de línea. En cuyo caso, se muestra
       la totalidad del tiempo de usuario y sistema consumido por la shell y sus descendientes. Puede usarse  la
       variable TIMEFORMAT para definir el formato de la información de tiempo.

       Cada  orden  que forme parte de una tubería se ejecuta en un proceso separado, es decir, en una subshell.
       Consulte ENTORNO DE EJECUCIÓN DE ÓRDENES si precisa información acerca del entorno en una subshell. Si la
       opción  lastpipe  está  activada  mediante  la  orden  nativa  shopt  (vea  la  descripción  de  shopt  a
       continuación),  el  último elemento de una tubería puede ser ejecutado por la propia shell cuando no está
       activado el control de tareas.

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

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

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

       Si  una orden se termina mediante el operador de control &, la shell ejecuta la orden en segundo plano en
       una subshell. La shell no espera que la orden acabe, y el estado de salida será 0.  Esto  es  lo  que  se
       denomina  órdenes asíncronas. Las órdenes separadas por un ; se ejecutan secuencialmente; la shell espera
       que cada orden termine, por orden. En este caso,  el  estado  de  salida  será  el  de  la  última  orden
       ejecutada.

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

              orden1 && orden2

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

       Una lista O tiene el siguiente formato

              orden1 || orden2

       orden2  se ejecuta si y solo si orden1 devuelve un estado de salida distinto de cero. El estado de salida
       de las listas Y y O es el de la última orden ejecutada en la lista.

   Órdenes Compuestas
       Una orden compuesta es una de las siguientes. En la mayoría de los casos, una lista en la descripción  de
       una  orden puede ir separada del resto de la orden por uno o más saltos de línea y puede ir seguido de un
       salto de línea en lugar de un punto y coma.

       (lista)
              lista se ejecuta en una subshell (consulte ENTORNO DE EJECUCIÓN DE ÓRDENES más adelante).  Después
              de  que  la  orden  finaliza  su  ejecución,  las  asignaciones  a variables y órdenes nativas que
              afectaran al entorno de la shell no siguen vigentes. El estado de  retorno  es  el  de  salida  de
              lista.

       { lista; }
              lista  se  ejecuta  en  el entorno actual de la shell, deberá finalizar con un salto de línea o un
              punto y coma. Esto se conoce como un grupo de órdenes. El estado de salida es el de lista. Observe
              que a diferencia de los metacaracteres ( y ), los metacaracteres { y } son palabras  reservadas  y
              solo deberían utilizarse donde dichas palabras se reconozcan como tales. Como no pueden causar una
              división  de palabra, deben separarse de la lista mediante espacio o mediante otro metacarácter de
              la shell.

       ((expresión))
              La expresión se evalúa de acuerdo a las reglas descritas más adelante bajo la  sección  EVALUACIÓN
              ARITMÉTICA.  Si  el  valor de la expresión es distinto de cero, el estado de retorno es 0; de otro
              modo el estado de retorno es 1. La expresión está sujeta a la misma expansión que tendria  estnado
              entre comillas dobles, salvo que dichas comillas no seria tratadas como caracteres especiales y se
              eliminarían.

       [[ expresión ]]
              Devuelve  un  estado  de 0 o 1 dependiendo de la evaluación de la expresión condicional expresión.
              Las expresiones se componen de las primarias descritas más adelante  en  el  apartado  EXPRESIONES
              CONDICIONALES.  No  tienen  lugar  división  de  palabras  ni  expansión de nombres de ruta en las
              palabras entre el [[ y el ]]; sí se realizan la expansión de  tilde,  expansión  de  parámetros  y
              variables,  expansión  aritmética,  sustitución  de orden, sustitución de proceso y eliminación de
              comillas en dichas palabras (la expansión que ocurriría si las palabras estuviesen entre  comillas
              dobles).  Deben  eliminarse  las  comillas  de  los operadores condicionales como -f para que sean
              reconocidos como primarios.

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

       Vea la descripción de la orden nativa test en la sección ÓRDENES NATIVAS DE LA SHELL más adelante para la
       gestión de parámetros (es decir, para los parámetros que no se indican).

       Cuando se emplean los operadores == y !=, la cadena a la derecha del operador se considera un patrón y se
       hace  concordar de acuerdo a las reglas descritas más adelante bajo el epígrafe Concordancia de patrones,
       tal como si estuviese activa la opción extglob de la shell. El operador == equivale a =. Si está activada
       la opción nocasematch de la shell,  se  buscará  la  concordancia  sin  diferenciar  entre  mayúsculas  y
       minúsculas.  El  valor  devuelto  es  0  si  la  cadena concuerda (==) o no concuerda (=0 )con el patrón,
       respectivamente, y 1 en otro caso.  Cualquier parte del  patrón  puede  entrecomillarse  para  forzar  la
       concordancia como una cadena de caracteres pura.

       Dispone  de  otro operador binario: =~. Tiene la misma prevalencia que == y !=. Al usarlo, la cadena a la
       derecha se considerará una expresión regular ampliada POSIX  y  concordada  adecuadamente  (mediante  las
       interfaces  POSIX  regcomp  y  regexec generalmente descritas en regex(3). El valor devuelto será 0 si la
       cadena concuerda con el patrón y 1 en caso contrario. Si la expresión regular  contiene  algún  error  de
       sintaxis  se  devolverá  el valor 2. Si la opción nocasematch está activa, se buscará la concordancia sin
       distinguir entre mayúsculas y minúsculas. Si se entrecomilla una parte del patrón, dicha parte concordará
       literalmente. Debe tenerse especial cuidado con el uso de corchetes ya que las comillas normales  pierden
       su especial significado entre ellos.

       El  patrón  concordará  si  lo  hace  cualquier  parte  de  la cadena. Para hacer que concuerde la cadena
       completa, puede rodear el patrón con los operadores de expresiones regulares ^ y $. La variable vectorial
       BASH_REMATCH registra la parte de la cadena que concordó con el patrón. El elemento de  BASH_REMATCH  con
       índice 0 contendrá el fragemento de la cadena que concuerda con toda la expresión regular. Las subcadenas
       que  concuerdan  con  subexpresiones  entre paréntesis se guardan en los índices de BASH_REMATCH donde el
       índice n es la parte de la cadena que concuerda con la nésima subexpresión entre paréntesis. Bash  define
       BASH_REMATCH  con  un  alcance  general,  declararla como una variable local puede dar lugar a resultados
       indeseados.

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

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

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

       for nombre [ [ in palabra ...; ] ] do lista ; done
              La lista de palabras que va detrás de in se expande, generando una lista de elementos. La variable
              nombre se define como cada elemento de la lista en cada iteración, y lista se ejecuta cada vez. Si
              la palabra de in se omite, la orden for ejecuta lista una vez para cada parámetro  posicional  que
              esté  definido  (consulte  PARÁMETROS  más  adelante).  El estado de retorno es el de salida de la
              última orden que se ejecuta.  Si la expansión de los elementos después del in resulta en una lista
              vacía, no se ejecuta ninguna orden y el estado de salida es 0.

       for (( expr1 ; expr2 ; expr3 )) ; do lista ; done
              Primeramente se evaluará la expresión aritmética expr1 en base a las reglas definidas más adelante
              en la sección EVALUACIÓN ARITMÉTICA. Después se evalúa la expresión expr2 repetidamente hasta  que
              el  resultado  sea  cero.  Cada  vez  que  expr2  se  evalúe con un resultado diferente a cero, se
              ejecutará lista y se evaluará expr3. Si se omite alguna de  las  expresiones,  se  considerará  el
              valor  1  como  resultado de su evaluación. El valor retornado es el estado de salida de la última
              orden de lista ejecutada o falso si alguna de las expresiones no es válida.

       select nombre [ in palabra ] ; do lista ; done
              La lista de palabras que sigue a in se expande, generando una lista de elementos. El  conjunto  de
              palabras expandidas se muestra en la salida estándar de errores, cada una precedida por un número.
              Si  la  palabra  del in se omite, se muestran los parámetros posicionales (consulte PARÁMETROS más
              adelante).  Entonces se muestra el indicador PS3 y se lee una línea desde la entrada estándar.  Si
              la línea consiste en un número correspondiente a una de las palabras mostradas, entonces el  valor
              de  nombre  se pone a esa palabra. Si la línea está vacía, las palabras y el indicador se muestran
              de nuevo. Si se lee EOF, la orden select se completa y devuelve 1. Cualquier otro valor leída hace
              que nombre se defina como un valor vacío. La línea leída se guarda en la variable REPLY. La  lista
              se  ejecuta  tras  cada  selección  hasta  que se ejecute una orden break.  El estado de salida de
              select es el de la última orden ejecutada en lista o cero si no se ha ejecutado ninguna orden.

       case palabra in [ [(] patrón [ | patrón ] ... ) lista ;; ] ... esac
              Una orden case expandirá primero palabra y buscará si concuerda con cada uno de  los  patrones  en
              base  a las reglas de concordancia descritas más adelante en Concordancia. La palabra se expandirá
              empleando  expansión  de  tilde,  expansión  de  parámetros  y  variables,  expansión  aritmética,
              sustitución  de  órdenes, sustitución de procesos y eliminación de comillas. Cada patrón examinado
              se  expande  empleando  expansión  de  tilde,  expansión  de  parámetros  y  variables,  expansión
              aritmética,  sustitución  de  órdenes,  sustitución de procesos y eliminación de comillas. Si está
              activa la opción nocasematch, se  buscará  la  concordancia  sin  distinguir  entre  mayúsculas  y
              minúsculas.  Cada vez que se encuentre una concordancia, se ejecutará la correspondiente lista. Si
              se emplea el operador ;;, una vez encontrada una concordancia, no se seguirán buscando más. Si  se
              emplea  ;& en lugar de ;;, la ejecución continuará con la lista asociada con el siguiente conjunto
              de patrones. Si se utiliza ;;& en lugar de ;; hará que la shell pruebe el  siguiente  conjunto  de
              patrones,  si lo hubiese, ejecutando las listas de una concordancia, siguiendo con la ejecución de
              la estructura 'case' como si no hubiese habido concordancia alguna. El valor de salida  será  cero
              si  no  existen  concordancias con ningún patrón. En cualquier otro caso, será el estado de salida
              correspondiente a la última orden ejecutada en lista.

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

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

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

       La sintaxis de un coproceso es la siguiente:

              coproc [NOMBRE] orden [redirecciones]

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

       El formato recomendado de un coproceso es el siguiente:

              coproc NOMBRE { orden [redirecciones]; }

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

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

       Cuando  se  ejecuta  un  coproceso, la shell crea una variable vectorial (consulte vectores más adelante)
       llamada NOMBRE dentro de la shell que lo ejecuta. La salida estándar de orden está unida a un  descriptor
       de  archivo  de  la  shell  mediante una tubería, asignándose éste a NOMBRE[0]. La entrada estándar de la
       orden también está conectada mediante una tubería a otro descriptor de archivo de  la  shell  asignado  a
       NOMBRE[1].  Esta  tubería  se  define  antes  de  cualquier  redirección  definida  en la orden (consulte
       REDIRECCIONES más adelante). Estos descriptores de archivo pueden emplearse como argumentos en órdenes  y
       redirecciones  mediante  epansión de palabra. Salvo aquellos creados durante la ejecución de órdenes y la
       sustitución de procesos, los descriptores de archivo no están disponibles en subshells.

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

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

   Definición de Funciones de la Shell
       Una función de la shell es un objeto que se invoca de  igual  manera  que  las  órdenes  simples  y  pero
       ejecutan una orden compuesta con un conjunto propio de parámetros posicionales. Las funciones de la shell
       se declaran del siguiente modo:

       nombre_función () orden_incluida [redirección]
       function nombrefunción [()] orden-compuesta [redirección]
              Define  una  función  llama nombrefunción. La palabra reservada function es opcional, si se indica
              pueden omitirse los paréntesis. El cuerpo de la función será la orden compuesta (consulte  Órdenes
              Compuestas  más atrás). Esta orden suele consistir en una lista de órdenes entre { y }, pero puede
              ser cualquier orden que figure bajo Órdenes Compuestas con una única excepción: si  se  emplea  la
              palabra  reservada  function  sin  paréntesis,  son  recomendables  las llaves. orden-compuesta se
              ejecutará siempre y cuando nombrefunción se especifique como el nombre de  una  orden  simple.  Si
              estamos  en  modo  posix, nombrefunción deberá ser un nombre de shell válido y no podrá ser una de
              las órdenes nativas de POSIX. En el modo por defecto, podrá  emplearse  cualquier  palabra  de  la
              shell  sin  entrecomillar  como  nombre  de  una  función  (simpre  que  no  contenga $. Cualquier
              redirección que se haga cuando se define una función se  llevará  a  cabo  cuando  se  ejecute  la
              función.  El estado de salida al definir una función será cero salvo que se incurra en un error de
              sintaxis o ya exista una función de sólo-lectura con el mismo nombre. El estado de  salida  de  la
              ejecución  de  una  función viene dado por el de la última orden ejecutada. Consulte FUNCIONES más
              adelante.

COMENTARIOS

       En una shell no interactiva, o en una interactiva en el que la opción interactive_comments  de  la  orden
       nativa shopt está activa (consulte ÓRDENES NATIVAS DE LA SHELL más adelante), una palabra que empiece por
       #  hace  que  esa  palabra  y todos los caracteres que queden en esa línea no sean tenidos en cuenta. Una
       shell interactiva sin la  opción  interactive_comments  habilitada,  no  admite  comentarios.  La  opción
       interactive_comments está activa por defecto en shells interactivas.

ENTRECOMILLADO

       El entrecomillado se emplea para quitar el significado especial para la shell de ciertos metacaracteres o
       palabras.  Puede  emplearse  para  que  no  se  traten  caracteres especiales de forma especial, para que
       palabras reservadas no sean reconocidas como tales, y para evitar la expansión de parámetros.

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

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

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

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

       Encerrar  caracteres  entre apóstrofes preserva el valor literal de cada carácter entre las comillas. Una
       comilla simple no puede estar entre comillas simples, ni siquiera precedida de una barra invertida.

       Encerrar caracteres entre comillas dobles preserva el valor literal de todos los caracteres de dentro  de
       las comillas, con la excepción de $, `, y \, si está activa la expansión del historial, también !. Cuando
       la  shell  está en modo posix, ! no tiene un significado especial si va entre dobles comillas aunque esté
       activa la expansión del historial. Los caracteres $ y ` mantienen sus significados especiales  dentro  de
       comillas  dobles.  La  barra invertida mantiene su significado especial solamente cuando está seguida por
       uno de los  siguientes  caracteres:  $,  `,  "",  \,  o  <nueva-línea>.   Una  comilla  doble  puede  ser
       entrecomillada  entre  otras  comillas  dobles  precediéndola  de una barra invertida. Si está activa, la
       expansión del historial se realizará salvo que un !  entre  comillas  dobles  se  escape  con  una  barra
       invertida. No se elimina la barra invertida si precede a !.

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

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

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

       Una  cadena  entre  comillas  dobles  precedida  por  un signo de dólar ($"cadena") hará que la cadena se
       traduzca según la localización actual.gettext buscará su traducción en el catálogo de  mensajes  mediante
       las  variables  de  la  shell  LC_MESSAGES,  TEXTDOMAINDIR y TEXTDOMAIN. Si la localización actual es C o
       POSIX, la cadena no estuviese traducida o no hubiese ninguna traducción disponible, el signo de dólar  no
       se  tiene  en  cuenta.  Esta  es  una manera de entrecomillado doble ya que la cadena preserva las dobles
       comillas por defecto ya sea traducida o no. Si se activa la opción noexpand_translation mediante la orden
       nativa shopt, las cadenas traducidas tendrán comillas simples en lugar de dobles. Consulte la descripción
       de shopt más adelante en el aprtado ÓRDENES NATIVAS DE LA SHELL.

PARÁMETROS

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

       Un parámetro está definido si se le ha asignado un valor. La cadena vacía es un valor válido. Una vez que
       una  variable  está definida, solo puede quitarse de la lista de variables mediante la orden nativa unset
       (consulte ÓRDENES NATIVAS DE LA SHELL más adelante).

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

              nombre=[valor]

       Si no se da el valor, a la variable se asigna  la  cadena  vacía.  Todos  los  valores  están  sujetos  a
       expansión  de  tilde,  de  parámetros  y  de  variables,  sustitución de órdenes, expansión aritmética, y
       eliminación de comillas (consulte EXPANSIÓN más adelante). Si la  variable  tiene  activado  su  atributo
       integer  entonces  valor  se  evaluará como una expresión aritmética incluso si no se emplea la expansión
       $((...)) (consulte Expansión aritmética más adelante). No se  realiza  la  división  de  palabras  ni  la
       expansión  de  nombres  de  ruta.  Las asignaciones también pueden figurar como argumentos de las órdenes
       nativas alias, declare, typeset, export, readonly y local (órdenes de declaración). En modo  posix  estas
       órdenes nativas puede aparecer en una orden después de una o más instancias de la orden nativa y mantener
       las propiedades de la asignación.

       En  el  contexto  en  el  que  una declaración de asignación asigna un valor a una variable de la shell o
       índice vectorial, el operador += puede emplearse para agregar o  incluir  en  el  valor  anterior  de  la
       variable.  Esto  incluye  argumentos  para  órdenes  nativas  como  declare  que acepten declaraciones de
       asignación (órdenes de declaración). Cuando se aplica += a una  variable  que  se  definido  como  número
       entero  (integer),  su  valor  se  calcula  como una expresión aritmética y se suma al valor actual de la
       variable, que también se calcula. Cuando += se  aplica  a  una  variable  vectorial  mediante  asignación
       compuesta  (consulte Vectores a continuación), el valor de la variable no se anula (como sucede cuando se
       usa =), y los nuevos valores se agregan al vector a partir de uno mayor que el índice  máximo  del  mismo
       (caso  de  vectores indexados) o agregados como pares clave-valor adicionales si es un vector asociativo.
       Cuando se aplica a una variable con valor de cadena, el valor se expande y  se  agrega  al  valor  de  la
       variable.

       A una variable se le puede asignar el atributo nameref ejecutando las órdenes nativas declare o local con
       la  opción -n (consulte las descripciones de declare y local a continuación) para crear un nameref, o una
       referencia a otra variable. Esto permite que las variables sean manipuladas de forma indirecta. Cada  vez
       que se hace referencia a la variable nameref, se asigna, se anula o se modifican sus atributos (no usando
       o cambiando el atributo nameref en sí), la operación se realizará sobre la variable definida por el valor
       de  la variable nameref. Una referencia de nombre (nameref) suele usarse dentro de las funciones de shell
       para referirse a una variable cuyo nombre se pasa como argumento a la función. Por ejemplo, si se pasa un
       nombre de variable a una función de shell como su primer argumento, ejecutando
              declare -n ref=$1
       dentro de la función se creará una variable ref cuyo valor es el nombre de la variable pasado como primer
       argumento. Las referencias y asignaciones a  ref,  y  los  cambios  en  sus  atributos,  se  tratan  como
       referencias,  asignaciones y modificaciones de atributos a la variable cuyo nombre se pasó como $1. Si la
       variable de control en un bucle for tiene el atributo nameref, la lista de palabras puede ser  una  lista
       de  variables de shell, y se establecerá una referencia de nombre para cada palabra en la lista, cada vez
       que se ejecute el ciclo. A las variables vectoriales no se les puede asignar  el  atributo  nameref.  Sin
       embargo,  las  variables  nameref pueden hacer referencia a variables vectoriales y variables vectoriales
       con subíndice. Las referencias de nombre se pueden desactivar mediante la opción -n en  la  orden  nativa
       unset.  De  lo  contrario,  si  se ejecuta unset con el nombre de una variable nameref como argumento, la
       variable a la que hace referencia se desactivará.

   Parámetros Posicionales
       Un parámetro posicional es un parámetro denotado por uno o más  dígitos,  distintos  del  simple  0.  Los
       parámetros  posicionales  se  asignan  a  partir  de los argumentos de la shell cuando éste es llamado, y
       pueden ser reasignados mediante la orden nativa set.  Los parámetros posicionales no pueden ser asignados
       con sentencias de asignación. Los parámetros posicionales se reemplazan temporalmente cuando  se  ejecuta
       una función de la shell (consulte FUNCIONES más adelente).

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

   Parámetros Especiales
       la shell trata de forma especial a ciertos parámetros. Éstos solo pueden  referenciarse;  no  se  permite
       asignarles nada.
       *      Se  expande  a  los  parámetros posicionales, empezando por 1. Cuando la expansión no ocurre entre
              comillas dobles, cada parámetro posicional se expande a una palabra separada. En los contextos  en
              los  que  se  realiza, estas palabras pueden ser objeto de separación y de expansión del nombre de
              ruta. Cuando dicha expansión ocurren dentro de un entrecomillado doble, ésta se expande a una sola
              palabra con el valor de cada parámetro separado por el primer carácter  de  la  variable  especial
              IFS.  Esto  es,  "$*"  es equivalente a "$1c$2c...", donde c es el primer carácter del valor de la
              variable IFS. Si IFS no está definida, los parámetros se separan por espacios. Si IFS es la cadena
              vacía, los parámetros se juntan sin ningún separador.
       @      Se expande a los parámetros posicionales, comenzando desde el uno. En donde se realiza la división
              de  palabras,  se  expande  cada  parámetro  posicional  a  una  palabra  separada;  si  no  están
              entrecomillada con comillas dobles, estas palabras estarán sujetas a división de palabra. Donde no
              se  realiza  la  división  de palabra, se expande a una sola palabra con cada parámetro posicional
              separado por un espacio. Cuando la expansión ocurre  entre  comillas  dobles,  cada  parámetro  se
              expande a una palabra separada. Es decir, "$@" es equivalente a '$1' '$2'... Si la expansión entre
              comillas  dobles  ocurre  dentro  de  una palabra, la expansión del primer parámetro se une con la
              parte inicial de la palabra original y la expansión del último parámetro  se  une  con  la  última
              parte  de  la  palabra  original.  Cuando no hay parámetros posicionales, '$@'y $@ se eliminan (se
              expande a 'nada').
       #      Se expande al número en base 10 de parámetros posicionales.
       ?      Se expande al estado de salida de la tubería más recientemente ejecutada en primer plano.
       -      Se expande a las opciones de la shell activas  actualmente  según  se  hayan  especificado  en  la
              llamada, mediante la orden nativa set, o las que haya puesto el mismo shell (como la opción -i).
       $      Se  expande  al  PID de la shell. En una subshell, se expande al PID de la shell actual, no al del
              subshell.
       !      Se expande al PID del proceso más recientemente ejecutado en segundo plano ya fuese ejecutado como
              una orden asíncrona o mediante la orden nativa bg. Consulte CONTROL DE TAREAS más adelante.
       0      Se expande al nombre de la shell o script de la shell. Este parámetro se pone en el inicio  de  la
              shell. Si bash se llama con un fichero de órdenes, $0 se pone al nombre de ese fichero. Si bash se
              inicia  con  la  opción  -c,  entonces  $0  se pone al primer argumento tras la cadena que se va a
              ejecutar, si hay alguno presente. Si no, se pone al nombre de fichero empleado para llamar a bash,
              como se da en el argumento cero.

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

       _      Al inicio de la shell, adopta el valor de la ruta con la que se inició dicha shell o el script que
              se ejecute tal como se indicó en el entorno en los argumentos. Por lo tanto se expandirá al último
              argumento de la anterior orden ejecutada en primer plano después de la expansión.  También  adopta
              el  valor  de  la  ruta completa empleada para invocar cada orden ejecutada, se pone en el entorno
              exportado para esa orden. En el caso de la lectura de correo electrónico, esta variable adopta  el
              valor del nombre del archivo de correo leído en cada instante.
       BASH   Se expande al nombre completo del fichero empleado para llamar a esta instancia de bash.
       BASHOPTS
              Una lista, de elementos separados por dos puntos, de opciones activas de la shell. Cada palabra en
              la  lista  es  un  argumento  válido  para la opción -s de la orden nativa shopt (consulte ÓRDENES
              NATIVAS DE LA SHELL más adelante). Las opciones que aparecen en BASHOPTS son aquéllas que aparecen
              como on en shopt.  Si esta variable está en el entorno cuando se inicia bash, cada  opción  de  la
              shell  en  la  lista  se activará antes de cargar cualquier archivo de inicio.  Es una variable de
              solo lectura.
       BASHPID
              Se expande al ID del proceso en ejecución de bash. Esto difiere de $$ en ciertos casos,  como  las
              subshells  que  no  requieren  una  reinicialización de bash. No se consideran las asignaciones de
              BASHPID. Si se anula el valor definido a BASHPID, ésta pierde sus propiedades especiales aunque se
              vuelva a definir posteriormente.
       BASH_ALIASES
              Una variable vectorial asociativa cuyos miembros pertenecen a la lista interna de alias  tal  como
              la  gestiona  la orden nativa alias. Los elementos agregados a este vector aparecen en la lista de
              los alias; sin embargo, desactivar elementos del vector no hará que los alias se eliminen de dicha
              lista. Si se desactiva BASH_ALIASES, perderá sus propiedades especiales, incluso  si  se  reactiva
              posteriormente.
       BASH_ARGC
              Una variable vectorial formada por el número de parámetros en cada marco de la pila de llamadas de
              la  actual  ejecución  de  bash.  El número de parámetros de la subrutina actual (función o script
              ejecutado mediante .  o source) se encuentra en la parte superior de la pila.  Cuando  se  ejecuta
              una subrutina, se envian los parámetros a BASH_ARGC. La shell activa BASH_ARGC solo cuando está en
              modo  de  depuración  ampliado  (consulte  más adelante la descripción de la opción extdebug de la
              orden nativa shopt). La activación de extdebug después de iniciar la ejecución  de  un  script,  o
              hacer  referencia  a  esta  variable  cuando  no  se  ha configurado, puede dar lugar a resultados
              inconsistentes.
       BASH_ARGV
              Una variable vectorial que contiene todos los parámetros de la pila de llamadas  de  la  ejecución
              actual  de  bash. El parámetro final de la última llamada a la subrutina está en la parte superior
              de la pila; el primer parámetro de la llamada inicial está en la parte inferior. Cuando se ejecuta
              una subrutina, los parámetros proporcionados se envían a BASH_ARGV. La shell activa BASH_ARGV solo
              cuando está en modo de depuración ampliado (consulte a continuación la descripción  de  la  opción
              extdebug  de  la  orden  nativa  shopt). Activar extdebug después del inicio de la ejecución de un
              script, o hacer referencia a él cuando no se ha configurado, puede generar valores inconsistentes.
       BASH_ARGV0
              Esta variable se expande al nombre de la shell o del script (igual que $0, consulte al descripción
              del parámetro especial 0 anteriormente). Los valores asignados a BASH_ARGV0,  también  se  asignan
              automáticamente  a  $0.  Si  se  desactiva  BASH_ARGV0,  perderá sus propiedades especiales aunque
              posteriormente sea reactivado.
       BASH_CMDS
              Variable vectorial asociativa cuyos miembros corresponden al hash de la tabla interna  de  órdenes
              tal  como la gestiona la orden nativa hash. Los elementos que se añadan a ese vector aparecerán en
              dicha tabla, sin embargo los elementos que se  desactiven  sí  que  seguirán  apareciendo.  Si  se
              desactiva   BASH_CMDS,   perderá   sus   propiedades  especiales  aunque  se  vuelva  a  reactivar
              posteriormente.
       BASH_COMMAND
              La orden que está siendo ejecutada en ese instante o que va a serlo, excepto cuando se ejecute una
              orden marcada en una tramp (trap) e cuyo caso equivaldría a dicha orden. Si se anula la definición
              de BASH_COMMAND, pierde sus propiedades especiales aunque se vuelva a definir con posterioridad.
       BASH_EXECUTION_STRING
              La orden dada como argumento al ejecutar con la opción -c.
       BASH_LINENO
              Variable vectorial cuyos miembros corresponden a los números de línea de código  fuente  donde  se
              invocó  FUNCNAME.  ${BASH_LINENO[$i]}  será  el  número  de  línea  en el archivo de código fuente
              (${BASH_SOURCE[$i+1]}) donde se  invocó  ${FUNCNAME[$i]}  (o  bien  ${BASH_LINENO[$i-1]}  si  está
              referenciado  en  el  seno de otra función de la shell). El número de línea actual puede obtenerse
              mediante LINENO.
       BASH_LOADABLES_PATH
              Lista de directorios separados entre si po dos puntos en los cuales la shell busca órdenes nativas
              cargables dinámicamente definidas por la orden enable.
       BASH_REMATCH
              Variable vectorial cuyos miembros se asignan mediante el operador =~ a la orden condicional [[. El
              elemento con índice 0 corresponderá a la parte de la cadena que concuerda con la totalidad  de  la
              expresión regular. El elemento con índice n corresponderá a la porción de cadena que concuerda con
              la nésima subexpresión entre paréntesis.
       BASH_SOURCE
              Variable  vectorial cuyos miembros lo forman los nombres de los archivos de código fuente donde se
              definen los nombres de las funciones de la shell de la variable vectorial FUNCNAME. La función  de
              la   shell  ${FUNCNAME[$i]}  se  define  en  el  archivo  ${BASH_SOURCE[$i]}  y  se  invoca  desde
              ${BASH_SOURCE[$i+1]}.
       BASH_SUBSHELL
              Se incrementa en una unidad dentro de cada subshell o cada entorno de subshell cuando la shell  se
              incia  en  él.  El  valor inicial es 0. Si se desactiva BASH_SUBSHELL, ésta perderá su propiedades
              especiales aunque luego se vuelva a definir.
       BASH_VERSINFO
              Una variable vector de lectura exclusiva cuyos miembros contienen información de versión para esta
              instancia de bash.  Los valores asignados a los miembros del vector son como sigue:
              BASH_VERSINFO[0]        El número mayor de versión (la distribución).
              BASH_VERSINFO[1]        El número menor de versión (la versión).
              BASH_VERSINFO[2]        El nivel de parcheo.
              BASH_VERSINFO[3]        La versión de compilación.
              BASH_VERSINFO[4]        El estado de la distribución (por ejemplo, beta1).
              BASH_VERSINFO[5]        El valor de MACHTYPE.
       BASH_VERSION
              Se expande a una cadena que describe la versión de esta instancia de bash.
       COMP_CWORD
              Índice en ${COMP_WORDS} de la palabra que contiene la posición actual del  cursos.  Esta  variable
              solo  está disponible en las funciones de la shell invocadas por las utilidades de autocompletado.
              Consulte Autocompletado Programable a continuación.
       COMP_KEY
              La clave (o última clave de una secuencia de claves) empleada para invocar la  actual  función  de
              autocompletado.
       COMP_LINE
              Línea  de  órdenes  actual.  Esta variable solo estará disponible para las funciones de la shell y
              órdenes  externas  invocadas  por  las  utilidades   de   autocompletado   programable.   Consulte
              Autocompletado Programable a continuación.
       COMP_POINT
              Índice  de  la  posición  actual del cursor respecto del comienzo de la orden actual. Si el cursor
              está al final de dicha orden, el valor de esta variable será igual a ${#COMP_LINE}. Esta  variable
              sólo   estará   disponible  en  funciones  de  la  shell  y  órdenes  externas  invocadas  durante
              autocompletados. Consulte Autocompletado Programable más adelante.
       COMP_TYPE
              Definida como un entero según  el  tipo  de  completado  provocó  la  llamada  a  una  función  de
              autocompletado:  TAB  para  un  autocompletado  normal,  ? para mostrar autocompletados después de
              varias tabulaciones, ! para mostrar las alternativas disponibles en autocompletados  parciales,  @
              para  mostrar  alternativas  disponibles  cuando  se  modificó la palabra en cuestión o % para los
              menus. Esta variable sólo estará disponible en funciones de la shell y órdenes externas  invocadas
              durante autocompletados. Consulte Autocompletado Programable más adelante.
       COMP_WORDBREAKS
              Conjunto  de  caracteres  que  la biblioteca readline considera separadores de palabras durante el
              autocompletado. Si se desactiva COMP_WORDBREAKS, perderá sus características especiales aunque  se
              reactive de nuevo.
       COMP_WORDS
              Una  variable vectorial (consulte Vectores más adelante) que consta de palabras individuales en la
              actual línea de  órdenes.  La  línea  se  divide  en  palabras  como  lo  haría  readline,  usando
              COMP_WORDBREAKS  tal  como  se  describe  anteriormente. Esta variable está disponible solo en las
              funciones de la shell invocadas mediante  autocompletado  (consulte  Autocompletado  Progamable  a
              continuación).
       COPROC Variable  vectorial  (consulte  Vectores  más  adelante)  creada para contener los descriptores de
              archivo de entrada/salida de un coproceso cualquiera (consulte Coprocesos anteriormente.
       DIRSTACK
              Una variable vector (consulte Vectores más adelante) que aloja los contenidos actuales de la  pila
              de directorios. Los directorios aparecen en la pila en el orden en el que se muestran con la orden
              nativa  dirs.   La asignación a miembros de este vector puede emplearse para modificar directorios
              que ya estén en la pila, pero entonces deben utilizarse las órdenes  nativas  pushd  y  popd  para
              añadir  y quitar directorios.  La asignación a esta variable no cambiará el directorio de trabajo.
              Si DIRSTACK no está definido, pierde sus propiedades  especiales,  incluso  si  posteriormente  es
              redefinido.
       EPOCHREALTIME
              Este  parámetro  se  sustituirá  por una cifra de coma flotante con el número de segundos desde el
              Inicio (Epoch) de Unix (consulte time(3)) medidos en microsegundos. No se  tienen  en  cuenta  las
              asignaciones   a  EPOCHREALTIME.  Si  EPOCHREALTIME  no  está  definido,  pierde  sus  propiedades
              especiales, incluso si posteriormente es redefinido.
       EPOCHSECONDS
              Cada vez que este parámetro es referenciado, se devuelve en él el número de segundos transcurridos
              desde el Inicio (Epoch) de Unix (consulte time(3)). No se tendrá en cuenta ninguna  asignación  de
              un  valor  a  EPOCHSECONDS.  Si  EPOCHSECONDS no está definido, pierde sus propiedades especiales,
              incluso si posteriormente es redefinido.
       EUID   Se expande al UID efectivo del usuario actual, puesta en el incio de la shell. Esta variable es de
              solo lectura.
       FUNCNAME
              Una matriz variable que contiene todas las funciones de la shell que están en la pila de ejecución
              en ese instante. El elemento con índice 0 es el nombre de cualquier función de  la  shell  que  se
              esté  ejecutando.  El  último elemento (aquel con el índice más elevado) es "main".  Esta variable
              solo existe cuando se está ejecutando un función de la shell.  No  se  tendrá  en  cuenta  ninguna
              asignación  en  a  FUNCNAMES.  Si  FUNCNAMES  no está definido, pierde sus propiedades especiales,
              incluso si posteriormente es redefinido.

              Esta variable puede emplearse con BASH_LINENO y con BASH_SOURCE.  Cada  elemento  de  FUNCNAME  se
              corresponde  con  otros  en  BASH_LINENO  y  BASH_SOURCE  para  describir la pila de llamadas. Por
              ejemplo: ${FUNCNAME[$i]} se invoca desde el archivo ${BASH_SOURCE[$i+1]} en  el  número  de  línea
              ${BASH_LINENO[$i]}.  La  función  interna  caller  muestra  la  invocación  actual  en base a esta
              información.
       GROUPS Una matriz variable que contiene la lista de grupos a los que pertenece el usuario actual.  No  se
              tendrá  en  cuenta  ninguna  asignación  en  a  GROUPS.  Si  GROUPS  no  está definido, pierde sus
              propiedades especiales, incluso si posteriormente es redefinido.
       HISTCMD
              El número de historial o índice en el historial de la orden actual. No se consideran  asignaciones
              a   HISTCMD.  Si  HISTCMD  no  está  definido,  pierde  sus  propiedades  especiales,  incluso  si
              posteriormente es redefinido.
       HOSTNAME
              Asignados automáticamente al nombre del anfitrión (equipo) actual.
       HOSTTYPE
              Asignado automáticamente a una cadena que describe de forma unívoca el tipo de máquina en  la  que
              bash se está ejecutando.  El valor predefinido depende del sistema.
       LINENO Cada vez que este parámetro es referenciado, la shell sustituye un número en base 10 representando
              el  número  de  línea  secuencial  actual  (empezando  por 1) dentro de un script o función. Si no
              estamos en un script o función, no se garantiza que el valor  sustituido  tenga  significado.   Si
              LINENO  no  está  definido,  pierde  sus  propiedades  especiales,  incluso  si  posteriormente es
              redefinido.
       MACHTYPE
              Asignado automáticamente a una cadena que describe completamente el tipo de sistema en el que bash
              se está ejecutando, en el formato estándar de  GNU  cpu-compañía-sistema.   El  valor  predefinido
              depende del sistema.
       MAPFILE
              Una matriz variable (consulte Matrices a continuación) creada para incluir el texto captado por la
              orden nativa mapfile cuando no se indica ningún nombre de variable.
       OLDPWD El directorio de trabajo anterior como lo puso la orden cd.
       OPTARG El  valor  del  último argumento que es una opción procesado por la orden nativa getopts (consulte
              ÓRDENES NATIVAS DE LA SHELL a continuación).
       OPTIND El índice del siguiente argumento a ser procesado por la orden nativa  getopts  (consulte  ÓRDENES
              NATIVAS DE LA SHELL más adelante).
       OSTYPE Asignado  automáticamente  a  una  cadena que describe el sistema operativo en el que bash se está
              ejecutando.  El valor predefinido depende del sistema.
       PIPESTATUS
              Una variable vector (consulte Vectores más adelante) que contiene una lista de valores  de  estado
              de  salida  de  los  procesos en la tubería en primer plano ejecutada más recientemente (que puede
              contener una sola orden).
       PPID   El PID del proceso padre de la shell. Esta variable es de lectura exclusiva.
       PWD    El directorio de trabajo actual como lo pone la orden cd.
       RANDOM Cada vez que este parámetro sea referenciado, se genera un entero aleatorio entre 0 y 32767. Si se
              asigna un valor a RANDOM se inicia (se 'siembra') la secuencia de números aleatorios. Si RANDOM no
              está definido, pierde sus propiedades especiales, incluso si posteriormente es redefinido.
       READLINE_ARGUMENT
              Cualquier argumento numérico dado un una orden Readline  definido  mediante  "bind  -x"  (consulte
              ÓRDENES NATIVAS DE LA SHELL a continuación) cuando se ha invocado.
       READLINE_LINE
              Contenido del buffer de línea de readline, para emplear con "bind -x" (consulte ÓRDENES NATIVAS DE
              LA SHELL a continuación).
       READLINE_MARK
              Posición  de  la marca (punto de inserción) en la línea guardad de readline para emplear con "bind
              -x" (consulte ÓRDENES NATIVAS DE LA SHELL más adelante). Los caracteres situadoes entre  el  punto
              de inserción y la marca suelen denominarse región.
       READLINE_POINT
              Posición  del  punto  de  inserción  en  la línea guardada de readline, para emplear con "bind -x"
              (consulte ÓRDENES NATIVAS DE LA SHELL a continuación).
       REPLY  La línea de entrada leída por la orden nativa read cuando no se le dan argumentos.
       SECONDS
              Cada vez que este parámetro es referenciado, se devuelve en él el número de segundos transcurridos
              desde la llamada al shell. Si se asigna un valor a  SECONDS,  el  valor  devuelto  en  posteriores
              referencias  es  el  número  de segundos desde la asignación más el valor asignado. La cantidad de
              segundos transcurridos hasta la llamada de la shell y hasta el momento actual vienen dados por  el
              reloj  del  sistema.  Si  SECONDS  no está definido, pierde sus propiedades especiales, incluso si
              posteriormente es redefinido.
       SHELLOPTS
              Una lista, de elementos separados por dos puntos, de opciones activas del shell. Cada  palabra  en
              la lista es un argumento válido para la opción -o de la orden nativa set (consulte ÓRDENES NATIVAS
              DE  LA  SHELL más adelante). Las opciones que aparecen en SHELLOPTS son aquéllas que aparecen como
              on en set -o.  Si esta variable está en el entorno cuando bash empieza, cada opción de la shell en
              la lista se activará antes de leer cualquier archivo de  inicio.   Esta  variable  es  de  lectura
              exclusiva.
       SHLVL  Se incrementa en uno cada vez que se inicia 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 líneal en los sistemas con soporte  para  /dev/urandom  o
              arc4random  por  lo  que cada número generado no tendrá ninguna relación con los anteriores. No es
              posible 'sembrar' el generador por lo que  no  tendrán  ningún  efecto  las  asignaciones  a  esta
              variable.  Si  SRANDOM  no  está  definido,  pierde  todas  sus  propiedades  aunque  se  redefina
              posteriormente.
       UID    Se expande al UID del usuario en curso, puesta en el inicio de la shell. Esta variable es de  solo
              lectura.

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

       BASH_COMPAT
              Este valor define el nivel de compatibilidad de la shell. Más adelante en MODO  DE  COMPATIBILIDAD
              DE LA SHELL puede leer la descripción de los distintos niveles de compatibilidad y sus efectos. Su
              valor  puede  ser  un  número  decimal (p.ej: 4.2) o un entero (p.ej: 42) debiendo corresponder al
              nivel de compatibilidad deseado. Si BASH_COMPAT no está definido o lo está como una cadena  vacía,
              el  nivel  de  compatibilidad  se  establecerá  al  de  la versión actual. Si se define a un valor
              inválido (no coincida con ningún valor válido de compatibilidad), la shell mostrará un mensaje  de
              error  y  definirá  el  nivel  de  compatibilidad por defecto al de la versión actual. Los valores
              válidos de compatibilidades se definen más adelante bajo el epígrafe MODO DE COMPATIBILIDAD DE  LA
              SHELL.  Ejemplos  de  valores válidos serían 4.2 o 42, ambos correspondientes a la opción compat42
              shopt definiendo el nivel de compatibilidad a 42.  La  versión  actual  también  es  un  nivel  de
              compatibilidad válido.
       BASH_ENV
              Si  este  parámetro  está  definido  cuando  bash  está ejecutando un script de shell, su valor se
              interpreta como un nombre de  archivo  que  contiene  órdenes  para  iniciar  la  shell,  como  en
              ~/.bashrc.   El  valor de BASH_ENV está sujeto a expansión de parámetros, sustitución de órdenes y
              expansión aritmética, antes de ser interpretado como un nombre de archivo.  PATH no  se  usa  para
              buscar el nombre de archivo resultante.
       BASH_XTRACEFD
              Si  se  le  asigna  un número entero cuyo valor coincida con un descriptor de archivo válido, bash
              anotará la salida generada cuando set -x  está  activada  para  este  descriptor  de  archivo.  El
              descriptor  de archivo se cerrará cuando BASH_XTRACEFD se desactive o se le asigne un valor nuevo.
              Si se desactiva o se le asigne una cadena vacía, la salida de la traza se envía  a  la  salida  de
              error  estándar.  Observe que si se define a 2 el valor de BASH_XTRACEFD (descriptor de archivo de
              error estándar) y a continuaciń de desactiva  se  provocará  el  cierre  de  la  salida  de  error
              estándar.
       CDPATH Ruta  de  búsqueda  para la orden cd.  Es una lista de directorios separados por dos puntos en los
              cuales la shell busca directorios destino especificados por la orden cd.  Un valor de  muestra  es
              ".:~:/usr".
       CHILD_MAX
              Define  el  valor  númerico del estado de salida del descendiente para ser recordado por la shell.
              Bash no permitirá que este valor se reduzca más allá de lo definido por  POSIX,  el  valor  máximo
              (actualmente 8192) tampoco puede ser excedido. El valor mínimo varía según el sistema.
       COLUMNS
              Utilizado por la orden compuest select para determinar el ancho del terminal al imprimir listas de
              selección.  Si  la  opción  checkwinsize  está activada o si, estando en una shell interactiva, se
              recibe una señal SIGWINCH, seactivará automáticamente.
       COMPREPLY
              Variable vectorial donde bash leerá las diferentes posibilidades de autocompletado que genere  una
              función   de   la   shell  invocada  por  la  utilidad  de  autocompletado  programable  (consulte
              Autocompletado Programable más adelante). Cada elemento del vector  contiene  una  posibilidad  de
              autocompletado.
       EMACS  Si  bash encuentra esta variable en el entorno cuando se inicia con el valor "t", interpretará que
              se está ejecutando dentro de un buffer de Emacs y deshabilitará la edición de línea.
       ENV    Se expande y ejecuta de modo similar a BASH_ENV  (consulte  INVOCACIÓN  anteriormente)  cuando  se
              invoa en modo posix una shell interactiva.
       EXECIGNORE
              Lista  de patrones de la shell separados por comas (consulte Concordancia de Patrones) que definen
              nombres de archivos que cualquier orden  debe  ignorarse  al  realizar  búsquedas  mediante  PATH.
              Aquellos  archivos cuyo nombre completo (ruta incluida) concuerden con alguno de estos patrones no
              se considerarán archivos ejecutables a efectos de autocompletado de órdenes y ejecución de órdenes
              a través de búsquedas mediantes PATH. Esto no afecta al comportamiento de las  órdenes  [,test  ni
              [[.  Los nombres de ruta completos en la tabla hash de órdenes no están sujetos a EXECIGNORE. Esta
              variable debe usarse para ignorar bibliotecas compartidas marcadas como ejecutables pero que no lo
              son. La concordancia de patrones tiene en cuenta la opción de la shell extglob.
       FCEDIT El editor predeterminado para la orden nativa fc.
       FIGNORE
              Una lista de sufijos separados por dos puntos que no hay que tener en cuenta cuando se realice una
              terminación de nombres de ficheros (consulte READLINE más adelante).  Un nombre  de  archivo  cuyo
              sufijo concuerde con una de las entradas en FIGNORE se excluye de la lista de nombres de archivo a
              completar.   Un  valor  de  muestra es ".o:~" (Es necesario entrecomillar el valor asignado a esta
              variable al contener tildes).
       FUNCNEST
              Si se le asigna un valor mayor de cero, definirá el máximo nivel de anidamiento. Las funciones que
              se invoquen con un nivel mayor provocarán que se interrumpa la ejecución de la orden en curso.
       GLOBIGNORE
              Una lista de patrones separados por dos puntos que definen en conjunto de nombres de ficheros  que
              no  hay  que  tener  en  cuenta  en  la  expansión de nombres de ruta. Si un nombre de fichero que
              concordaba en un patrón de expansión de nombres de rutas también concuerda con uno de los patrones
              en GLOBIGNORE, se quita de la lista de concordancias.
       HISTCONTROL
              Lista de valores separados por comas que gestiona la forma en que las órdenes  se  guardan  en  el
              histórico.  Si  esta  lista  contiene  ignorespace, no se guardarán en el histórico las líneas que
              comiencen por un espacio. Un vale de ignoredups hará que no se guarden las  líneas  que  coincidan
              con la entrada inmediatamente anterior. ignoreboth es una combinación de ignorespace e ignoredups.
              erasedups hará que se borren todas las entradas anteriores que coincidan con la línea actual antes
              de  insertarse  ésta.  Cualquier valor distinto de los anteriores será ignorado. Si HISTCONTROL no
              está definido o no contiene un valor válido se guardarán en el histórico todas las  líneas  leídas
              por la shell, siempre según el valor de HISTIGNORE. La segunda y subsiguientes líneas de una órden
              compuesta  multilínea no se chequean y por lo tanto, se guardan en el histórico independientemente
              del valor de HISTCONTROL.
       HISTFILE
              El nombre del archivo en el que  se  guarda  el  historial  de  órdenes  (consulte  HISTORIAL  más
              adelante).   El  valor  predeterminado  es  ~/.bash_history.  Si no está definido, no se guarda el
              historial de órdenes cuando se finalice una shell interactivo.
       HISTFILESIZE
              El número máximo de líneas contenidas en el historial. Cuando se asigna un valor a esta  variable,
              el  historial  se  trunca, si es menester, para evitar sobrepasar dicho número de líneas. El valor
              predeterminado es 500. El historial se trunca también a este  tamaño  cuando  finaliza  una  shell
              interactiva.
       HISTIGNORE
              Una  lista de patrones separados por dos puntos empleados para decidir qué líneas de órdenes deben
              guardarse en el historial. Cada patrón se ancla al principio de la línea  y  debe  especificar  la
              línea completamente (no se añade ningún `*'). Cada patrón se comprueba con la línea tras aplicarse
              las   comprobaciones  especificadas  por  HISTCONTROL.   Además  de  los  caracteres  normales  de
              concordancia de patrones de la shell, `&' concuerda con la línea de historia anterior.  `&'  puede
              protegerse  empleando  una  barra inversa. Ésta se quita antes de intentarse una concordancia.  La
              segunda línea y siguientes de una orden compuesta multi-línea no se comprueban, y se añaden  a  la
              historia  sin  importar  el  valor  de  HISTIGNORE.  La  concordancia  de  patrones  depende de la
              configuración de la opción de la shell extglob.
       HISTSIZE
              Cantidad de órdenes que debe guardar el historial (Consulte HISTORIAL más adelante). Si  el  valor
              es cero, no se guardarán las órdenes en el historial. Cualquier valor negativo hará que se guarden
              todas  las órdenes sin límite alguno. Por defecto, la shell guarda 500 órdenes después de leer los
              archivos de inicio.
       HISTTIMEFORMAT
              Si esta variable está definida y no es nula, su valor se usa  como  una  cadena  de  formato  para
              strftime(3) para mostrar la marca temporal asociada con cada entrada del historial mostrado por la
              órden  nativa  history.  Si  se  establece  esta variable, las marcas temporales se escriben en el
              historial para que puedan conservarse en las sesiones de la  shell.  Se  utiliza  el  carácter  de
              comentario del historial para distinguir las marcas temporales de otras líneas del historial.
       HOME   El  directorio  inicial de trabajo del usuario en curso; el argumento predeterminado para la orden
              nativa cd.  El valor de esta variable se usa también cuando se realiza la expansión de tilde.
       HOSTFILE
              Contiene el nombre de un fichero con el mismo formato que /etc/hosts que debería leerse cuando  la
              shell necesite completar un nombre de equipo. El archivo puede ser modificado durante la ejecución
              de  la  shell;  la  siguiente  vez  que  se  intente  completar un nombre de equipo, bash añade el
              contenido del nuevo archivo a la base de datos ya existente. Si está definida la variable HOSTFILE
              pero no tiene ningún valor asignado o tiene asignado el nombre de un archivo que no se puede leer,
              bash intentará leer /etc/hosts para conseguir la lista  de  posibles  nombres  de  equipo.  Si  se
              resetea el valor de HOSTFILE se vacia la lista de nombres de equipo.
       IFS    El  Separador Interno de Campo que se emplea para la división de palabras tras la expansión y para
              dividir  líneas  en  palabras  con  la  orden   nativa   read.    El   valor   predeterminado   es
              “<espacio><tab><nueva-línea>”.
       IGNOREEOF
              Controla  la acción de una shell interactiva al recibir un carácter EOF como sola entrada. Si está
              definido, el valor es el número de caracteres  EOF  consecutivos  que  deben  teclearse  como  los
              primeros caracteres de una línea de entrada antes de que bash acabe. Si la variable existe pero no
              tiene  un valor numérico, o ninguno, el valor predeterminado es 10. Si no existe, EOF significa el
              final de la entrada para la shell.
       INPUTRC
              El nombre de fichero para el de inicio de readline, en vez del predeterminado ~/.inputrc (consulte
              READLINE más adelante).
       INSIDE_EMACS
              Si está presente esta variable cuando se inicia la shell, bash asume que se está ejecutando en  el
              buffer de una shell de Emacs y podrá deshabilitar la edición en línea según el valor de TERM.
       LANG   Empleado  para  determinar la categoría de localización ("escenario")  para cualquier categoría no
              seleccionada específicamente con una variable de las que empiezan por LC_.
       LC_ALL Esta variable tiene preferencia sobre el valor de LANG y de cualquier otra  variable  de  las  que
              empiecen por LC_ especificando una categoría de localización.
       LC_COLLATE
              Esta  variable  determina  el orden de clasificación empleado cuando se ordene el resultado de una
              expansión de nombres de rutas, y determina el comportamiento de expresiones de  intervalo,  clases
              de  equivalencia,  y  secuencias  de  clasificación  dentro  de  expansiones de nombres de rutas y
              concordancia de patrones.
       LC_CTYPE
              Esta variable determina  la  interpretación  de  caracteres  y  el  comportamiento  de  clases  de
              caracteres dentro de expansiones de nombres de rutas y concordancia de patrones.
       LC_MESSAGES
              Esta  variable  determina  la  localización  empleada  para  traducir  cadenas entrecomilladas con
              comillas dobles precedidas por un $.
       LC_NUMERIC
              Esta variable determina la localización empleada para el formato de los números.
       LC_TIME
              Esta variable determina la localización empleada para el formato de fecha y hora.
       LINES  Utilizada por la orden compuesta select para determinar la longitud de  la  columna  para  mostrar
              listas  de  selección. Definida automáticamente siempre que la opción checkwinsize está activada o
              cuando se reciba una señal SIGWINCH en una shell interactiva.
       MAIL   Si este parámetro está puesto a un nombre de archivo y la variable MAILPATH no está definida, bash
              informa al usuario de la llegada de correo en el archivo definido o con formato Maildir.
       MAILCHECK
              Define la frecuencia (en segundos)  a la  que  bash  comprueba  si  hay  correo  nuevo.  El  valor
              predeterminado  es  60 s. Si es hora de comprobar si hay correo, la shell lo hace antes de mostrar
              el indicador primario. Si esta variable no está definida, o lo está con un valor inferior a  cero,
              la shell no comprueba si hay correo nuevo.
       MAILPATH
              Una  lista  de  nombres  de fichero separados por dos puntos donde hay que comprobar si hay correo
              nuevo. El mensaje que haya que  mostrar  cuando  llegue  correo  a  un  fichero  particular  puede
              especificarse separando el nombre de fichero del mensaje con un '?'. Cuando se use en el texto del
              mensaje, $_ se expande al nombre del fichero de correo en curso.  Ejemplo:
              MAILPATH='/var/mail/bfox?"Tienes carta":~/shell-mail?"¡$_ tiene carta!"'
              Bash  proporciona un valor predeterminado para esta variable, pero la localización de los archivos
              de correo del usuario que emplea, dependerá del sistema (p.ej. /var/mail/$USER).
       OPTERR Si se pone al valor 1, bash muestra mensajes de  error  generados  por  la  orden  nativa  getopts
              (consulte  ÓRDENES  NATIVAS DE LA SHELL más adelante).  OPTERR se inicia a 1 cada vez que se llama
              al shell o cuando se ejecuta un script de la shell.
       PATH   La ruta de búsqueda para órdenes, programas ejecutables. Es una  lista  de  directorios  separados
              entre  si  por  dos  puntos  en los cuales la shell busca órdenes (consulte EJECUCIÓN DE ÓRDENES a
              continuación). La ruta predeterminada depende del sistema siendo definida por el administrador que
              instala bash. Un valor habitual es ``/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:
              /sbin''.
       POSIXLY_CORRECT
              Si esta variable está en el entorno cuando de inicie bash, la shell entrará en modo posix antes de
              cargar los archivos de inicio igual que si se emplease la opción --posix. Si se define una vez que
              la shell se está ejecutando, bash activará el modo posix tal como si la  orden  set  -o  posix  se
              hubiese ejecutado. Cuando la shell entra en modo posix, definirá está variable si no lo está ya.
       PROMPT_COMMAND
              si  esta  variable está definida (y es vectorial), se ejecutará el valor de cada elemento como una
              orden antes de emitir cada prompt primario. Si está definido pero no es una variable vectorial, se
              usará ese valor como orden para ejecutar.
       PROMPT_DIRTRIM
              Si su valor es un número mayor que cero, su valor definirá la cantidad de componentes  finales  de
              directorios  que  se  retienen  al  expandir  las cadenas de escape \w y \W del indicador (prompt)
              (sonsulte PROMPTING más adelante). Los caracteres eliminados se sustituyen por una elipsis.
       PS0    El valor de este parámetro se expande (consulte INDICADORES más adelante) y lo muestran las shells
              interactivas después de leer una orden y despuñes de que sea ejecutada.
       PS1    El valor de este parámetro se expande (consulte INDICADORES más adelante)  y  se  emplea  como  la
              cadena del indicador primario. El valor predeterminado es “\s-\v\$ ”.
       PS2    El  valor  de  este  parámetro  se  expande  como con PS1 y se emplea como la cadena del indicador
              secundario. El valor predeterminado es “> ”.
       PS3    El valor de este parámetro se emplea como el indicador para la orden select (consulte GRAMÁTICA DE
              LA SHELL anteriormente).
       PS4    El valor de este parámetro se expande como con PS1 y el valor se imprime antes de cada  orden  que
              bash muestra durante una traza de ejecución. El primer carácter de PS4 se replica múltiples veces,
              tantas   como   sean   necesarias,  para  indicar  múltiples  niveles  de  indirección.  El  valor
              predeterminado es “+ ”.
       SHELL  Se expande al nombre completo de la ruta de la shell. Si no está definida al inicio de  la  shell,
              bash le asignará la ruta completa de la shell de inicio actual del usuario.
       TIMEFORMAT
              El  valor  de  este  parámetro  se  emplea  como  una cadena de formato para especificar cómo debe
              mostrarse la información de tiempos para tuberías precedidas por la palabra  reservada  time.   El
              carácter  %  introduce  una  secuencia  de  escape  que  se  expande a un valor de tiempo o a otra
              información.  Las secuencias de escape y sus significados son como sigue;  los  corchetes  denotan
              partes opcionales.
              %%        Un % literal.
              %[p][l]R  El tiempo total transcurrido en segundos.
              %[p][l]U  El número de segundos de CPU gastados en modo usuario.
              %[p][l]S  El número de segundos de CPU gastados en modo sistema.
              %P        El porcentaje de CPU, computado como (%U + %S) ÷ %R.

              La  p  opcional  es  un dígito que especifica la precisión, el número de decimales.  Un valor de 0
              hace que no se muestre ningún decimal,  ni  el  punto  o  coma  decimal.   Como  mucho  se  pueden
              especificar  tres  decimales;  valores de p mayores de 3 se cambian a 3. Si p no se especifica, se
              usa precisamente el valor 3.

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

              Si    esta    variable    no    está   definida,   bash   actúa   como   si   tuviera   el   valor
              $'\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS'.  Si el valor es nulo, no se muestra ninguna información de
              tiempos.  Se añade un salto de línea al final cuando se muestra la cadena de formato.
       TMOUT  Si se define a un valor mayor que cero, TMOUT se interpreta como la cantidad de segundos de timout
              de la orden nativa read. Si se espera alguna entrada desde un terminal, la orden  select  finaliza
              si  ésta no llega transcurridos TMOUT segundos. En una shell interactiva, este valor representa la
              cantidad de segundos a esperar por una  entrada;  si  éste  no  llega,  se  muestra  el  indicador
              primario.  Bash  finalizará transcurrida dicha cantidad de segundos no llega una línea completa de
              entrada.ue hay que esperar una entrada después de mostrarse el indicador primario.   Bash  termina
              después de esperar ese número de segundos si no recibe ninguna entrada.
       TMPDIR Si  está definido, bash empleará su valor como nombre del directorio en el que creará los archivos
              temporales necesario para su el uso de la shell.
       auto_resume
              Esta variable controla cómo la shell interactúa con el usuario para el control de tareas. Si  esta
              variable  está  definida,  las  órdenes  simples  de  una  palabra  sin redirección se tratan como
              candidatas para reanudar una tarea existente detenida. No se permite ninguna  ambigüedad;  si  hay
              más  de  una  tarea  que  empiece  con la cadena tecleada, se selecciona la que se ha accedido más
              recientemente.  El nombre de una tarea detenida, en este contexto, es la línea de órdenes empleada
              para iniciarlo.  Si se define al valor exact, la cadena suministrada  debe  concordar  exactamente
              con  el nombre de una tarea detenida; si se define como substring, la cadena suministrada necesita
              concordar con una subcadena del nombre de una tarea detenida. El valor substring  proporciona  una
              funcionalidad  análoga  a  la  del  identificador  de  tarea  %?  (consulte  CONTROL DE TAREAS más
              adelante). Si se pone a cualquier otro valor, la cadena  suministrada  debe  ser  un  prefijo  del
              nombre de una tarea detenida; esto proporciona una funcionalidad análoga a la del identificador de
              tarea %cadena.
       histchars
              Los  dos  o  tres  caracteres  que  controlan  la expansión y separación en lexemas de la historia
              (consulte EXPANSIÓN DEL HISTORIAL a continuación).  El primer carácter es el carácter de expansión
              del historial, el carácter que señala el comienzo de una expansión de historia,  normalmente  `!'.
              El  segundo  carácter  es  el carácter de sustitución rápida, que se usa como una abreviatura para
              reejecutar  la  orden  anterior,  sustituyendo  una  cadena  por  otra  en  la  orden.  El   valor
              predeterminado es `^'.  El tercer carácter, opcional, es el carácter que indica que el resto de la
              línea  es un comentario cuando se encuentra como el primer carácter de una palabra, normalmente es
              `#'.  El carácter de comentario de historia hace que la sustitución de historia  se  salte  en  el
              resto  de  palabras de la línea. No hace que necesariamente el analizador léxico de la shell trate
              al resto de la línea como un a un comentario.

   Vectores
       Bash proporciona variables vectores monodimensionales, indexados y asociativos. Cualquier variable  puede
       usarse  como  un vector indexado; la orden nativa declare declarará un vector de forma expresa. No hay un
       límite máximo en el tamaño de un vector, ni ningún requisito para que los miembros se indexen  o  asignen
       de  forma  contigua.  Los  vectores  se  indexan empleando enteros (incluso expresiones aritméticas) y su
       primer elemento es el de índice cero, los vectores asociativos se referencian empleando cualquier cadena.
       Salvo que se indique expresamente lo contrario, los índices de los vectores indexados deberán ser siempre
       enteros positivos.

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

       Los vectores asociativos se crean mediante declare -A nombre.

       Se  pueden  definir  atributos  para  una  variable  vectorial  utilizando  las órdenes nativas declare y
       readonly. Cada atributo se aplica a todos los componentes de un vector.

       Los vectores se asignan mediante asignaciones compuestas en la forma nombre=(valor1  ...  valorn),  donde
       cada  valor  puede tener la forma [subíndice]=cadena. Las asignaciones de vectores indexados no requieren
       nada más que cadenas. Cada valor de la lista se expande utilizando todas las expansiones de shell que  se
       describen  a continuación en EXPANSIÓN. Al asignar a matrices indexadas, si se proporcionan los corchetes
       y el subíndice opcionales, ese índice se asigna; sino, el índice  del  elemento  asignado  es  el  último
       índice asignado por la declaración más uno. La indexación comienza en cero.

       Cuando  se  asignana  a  un  vector  asociativo,  las  palabras  en  una  asignación compuesta pueden ser
       declaraciones de asignación, para las cuales se requiere el subíndice, o una lista  de  palabras  que  se
       interpreta  como  una  secuencia  de claves y valores alternos:nombre=( clave1 valor1 clave2 valor2 ...).
       Estos se tratan de manera idéntica a nombre=( [clave1]=valor1 [clave2]=valor2 ... ). La  primera  palabra
       de  la  lista  determina  cómo se interpretan las palabras restantes; todas las asignaciones en una lista
       deben ser del mismo tipo. Cuando se utilizan pares clave/valor, las claves  no  pueden  faltar  ni  estar
       vacías; si falta cualquier valor, se trata como una cadena vacía.

       Esta  sintaxis  también  es  aceptada  por  la  orden  nativa  declare  .  Se pueden asignar elementos de
       individuales de un vector utilizando la sintaxis nombre [subíndice]=valor introducida  anteriormente.  Al
       asignar  a  un  vector  indexado,  si  nombre  tiene  un  subíndice  de un número negativo, ese número se
       interpreta como relativo a uno mayor que el índice máximo de nombre, por lo  que  los  índices  negativos
       cuentan hacia atrás desde el final de la matriz y un índice de -1 hace referencia al último elemento.

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

       Cualquier elemento  de  un  vector  puede  referenciarse  mediante  ${nombre[índice]}.   Las  llaves  son
       necesarias para evitar conflictos con la expansión de nombres de rutas. Si índice es @ o *, la palabra se
       expande a todos los miembros de nombre.  Estos índices difieren solamente cuando la palabra aparece entre
       comillas dobles. Si la palabra está entre comillas dobles, ${nombre[*]} se expande a una sola palabra con
       el  valor  de  cada  miembro  del  vector separados por el primer carácter de la variable especial IFS, y
       ${nombre[@]} expande cada elemento de nombre a una palabra separada. Cuando no hay miembros  del  vector,
       ${nombre[@]}  se  expande  a nada. Si la expansión entre dobles comillas ocurre dentro de una palabra, la
       expansión del primer parámetro se une al inicio de la palabra original y la expansión del último  se  une
       al  final  de  dicha palabra. Esto es análogo a la expansión de los parámetros especiales * y @ (consulte
       Parámetros especiales anteriormente). ${#nombre[índice]} se expande a la longitud  de  ${nombre[índice]}.
       Si  índice es * o @, la expansión es el número de elementos del vector. Si índice empleado para referirse
       a un elemento de un vector indexado equivale a un número menor que cero se entenderá como un número mayor
       que el máximo índice del vector, un índice de -1 se referirá al último elemento.

       Referenciar la variable de un vector sin un subíndice equivale  a  hacerlo  con  el  subíndice  cero.  Es
       aceptable  cualquier  referencia  a  una  variable  usando  un subíndice válido. bash creará un vector si
       necesario.

       Se considera definidad a aquella variable de un vector si se asignó un valor a un  subíndice.  La  cadena
       vacía es un valor válido.

       Es  posible obtener las claves (índices) de un vector así como los valores. ${!nombre[@]} y ${!nombre[*]}
       se expande a los índices asignados en la variable vectorial nombre . El tratamiento entre comillas dobles
       es similar a la expansión de los parámetros especiales @ y * entre comillas dobles.

       La orden nativa unset se emplea para eliminar vectores.  unset nombre[índice]  elimina  el  elemento  del
       vector  con  el  índice  definido  tanto en vectores asociativos como indexados. Los índices negativos en
       vectores indexados se interpretan tal como se describió anteriormente.  Aunque  se  desactive  el  último
       elemento  de  una  variable vectorial, no se desactivará dicha variable. unset nombre, donde nombre es un
       vector, eliminará por completo dicho vector. unset nombre[índice], donde índice  es  *  o  @,  tendrá  un
       comportamiento  diferente  según  sea un vector asociativo o indexado. Si nombre es un vector asociativo,
       desactivará el elemento con índice * o @. Si nombre es  un  vector  indexado,  se  eliminarán  todos  los
       elementos, no así el propio vector.

       Cuando  se utiliza un nombre de variable con un subíndice como argumento para una orden, tal como unset ,
       sin utilizar la sintaxis de expansión de palabras descrita anteriormente, el argumento está sujeto  a  la
       expansión del nombre de ruta. Para evitar la expansión del nombre de la ruta, se debe citar el argumento.

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

EXPANSIÓN

       La expansión se realiza en la línea de órdenes una vez que la orden ha sido  dividida  en  palabras.  Hay
       siete  clases  de  expansión: expansión de llaves, expansión de tilde, expansión de parámetro y variable,
       sustitución de orden, expansión aritmética, división de palabras, expansión de nombre de ruta.

       La orden de las expansiones es: expansión de llaves, de tilde, de parámetro,  variable  y  aritmética,  y
       sustitución  de  orden  (hechas  de  izquierda a derecha), división de palabras, y expansión de nombre de
       ruta.

       En sistemas que puedan admitirla, hay una expansión adicional disponible: sustitución de proceso. Ésta se
       realiza al mismo tiempo que la expansión de llaves, de tilde, de  parámetro,  variable  y  aritmética,  y
       sustitución de orden.

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

       Solo la expansión de llaves, la división de palabras y la expansión de nombre de ruta, pueden cambiar  el
       número  de  palabras  de  la  expansión; las otras expanden una palabra simple a otra palabra simple. Las
       únicas excepciones a esto son las expansiones de "$@" y "${nombre[@]}" y en muchos casos $* y  ${name[*]}
       como se ha explicado más anteriormente (consulte PARÁMETROS).

   Expansión de Llaves
       La  expansión  de llaves es un mecanismo por el cual pueden generarse cadenas arbitrarias. Este mecanismo
       es similar a la expansión de nombre de ruta, pero los nombres de archivo creados  no  necesitan  existir.
       Los  patrones a ser expandidos con la expansión de llaves toman la forma de un preámbulo opcional seguido
       por bien por una serie de cadenas separadas por comas  entre  un  par  de  llaves  o  por  una  expresión
       secuencial  entre  llaves,  seguido  por un post scriptum opcional.  El preámbulo sirve de prefijo a cada
       cadena de entre las llaves, y el post scriptum se añade luego a cada cadena  resultante,  expandiendo  de
       izquierda a derecha.

       Las  expansiones  de  llaves  pueden  anidarse. Los resultados de cada cadena expandida no se ordenan; se
       preserva el orden de izquierda a derecha. Por ejemplo, a{d,c,b}e se expande a `ade ace abe'.

       Una expresión de secuencia toma la forma {x..y[..incr]}, donde  x  e  y  son  números  enteros  o  letras
       individuales, e incr un incremento opcional, es un número entero. Cuando se proporcionan números enteros,
       la  expresión  se expande a cada número entre x e y, inclusive. Los números enteros proporcionados pueden
       tener el prefijo 0 para forzar que cada término tenga el mismo tamaño. Cuando x  o  y  comienzan  con  un
       cero,  la  shell  intenta  forzar  que todos los términos generados contengan el mismo número de dígitos,
       relenando con ceros donde  sea  necesario.  Cuando  se  proporcionan  letras,  la  expresión  se  expande
       lexicográficamente  a  cada  carácter entre x e y, inclusive, utilizando la el locale C. Nota que tanto x
       como y deben ser del mismo tipo (número entero o letra). Cuando se indica el incremento, se utiliza  como
       la diferencia entre cada término. El incremento por defecto es 1 o -1 según corresponda.

       La  expansión  de  llaves  se  realiza antes que cualquier otra, y cualquier carácter especial para otras
       expansiones se preserva en el resultado. Es estrictamente textual.  Bash no aplica ninguna interpretación
       sintáctica al contexto de la expansión ni al texto entre las llaves.

       Una  expansión  de  llaves  correctamente  formada  debe  contener  llaves  de  apertura  y  cierre   sin
       entrecomillar,  y  al  menos  una  coma  sin entrecomillar o una secuencia válida. Cualquier expansión de
       llaves formada incorrectamente se deja inalterada. Una { o , puede protegerse  con  una  barra  invertida
       para  evitar  que  sea  considerada  como parte de una expansión de llaves. Para evitar conflictos con la
       expansión de parámetros, la cadena ${ no puede incorporarse en una expansión de llaves  y  evita  que  se
       ocurra hasta la llave de cierre }.

       Esta  construcción  se  emplea  normalmente como una abreviatura cuando el prefijo común de las cadenas a
       generar es mayor que en el ejemplo de antes:

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

       La expansión de llaves introduce una pequeña incompatibilidad con  versiones  anteriores  de  sh.  sh  no
       considera  como caracteres especiales a las llaves de apertura o cierre cuando aparecen como parte de una
       palabra, y las deja en la entrada.  Bash quita las llaves  de  palabras,  como  una  consecuencia  de  la
       expansión  de llaves. Por ejemplo, una palabra introducida a sh como fichero{1,2} aparece así mismo en la
       entrada. La misma palabra se muestra como fichero1 fichero2 tras la expansión  hecha  por  bash.   Si  se
       desea  una  compatibilidad  estricta  con  sh,  inicie bash con la opción +B o inhabilite la expansión de
       llaves con la opción +B de la orden nativa set (consulte ÓRDENES NATIVAS DE LA SHELL más adelante).

   Expansión de Tilde
       Si una palabra comienza con un carácter tilde de la ñ sin entrecomillar (`~'), todos los  caracteres  que
       precedan  a la primera barra inclinada sin entrecomillar (o todos los caracteres, si no hay ninguna barra
       inclinada sin proteger), se consideran un prefijo-tilde. Si ninguno de los caracteres en el prefijo-tilde
       están protegidos, los caracteres en el prefijo-tilde que siguen a la tilde  se  tratan  como  un  posible
       nombre  de  entrada  de  usuario  (login).   Si  este  nombre  de entrada es la cadena vacía, la tilde se
       reemplaza con el valor del parámetro de la shell HOME.  Si HOME no está  definida,  se  sustituye  en  su
       lugar  el  directorio  de  trabajo  inicial  del usuario que está ejecutando la shell.  De otra forma, el
       prefijo-tilde se reemplaza con el directorio de trabajo inicial (de  casa)  asociado  con  el  nombre  de
       entrada especificado.

       Si  el  prefijo-tilde es un `~+', el valor de la variable de la shell PWD reemplaza al prefijo-tilde.  Si
       el prefijo-tilde es un `~-', el valor de la variable de la shell OLDPWD, si está definido, se  sustituye.
       Si  los  caracteres  que  siguen  a  la  tilde  en  el  prefijo-tilde consisten en un número N, prefijado
       opcionalmente por un `+' o un `-', el prefijo-tilde se reemplaza con el elemento  correspondiente  de  la
       pila  de directorios, como lo mostraría la orden nativa dirs llamada con el prefijo-tilde como argumento.
       Si los caracteres tras la tilde en el prefijo-tilde consisten en un número sin un `+' ni  `-'  iniciales,
       se supone `+'.

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

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

       Bash también realiza expansión de tilde en  palabras  que  satisfacen  las  condiciones  de  asignaciones
       variables  (descrito  anteriormente en el apartado PARÁMETROS) cuando aparecen como argumentos de órdenes
       simples. Bash no hace esto, salvo para la declaración de las órdenes listadas anteriormente, cuando  está
       en modo posix.

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

       Si  el  primer  carácter  del  parámetro  es un signo de exclamación (!) y el parámetro no es un nameref,
       introduce un nivel de direccionamiento indirecto. Bash usa el valor  formado  expandiendo  el  resto  del
       parámetro  como el nuevo parámetro; esto luego se expande y ese valor se usa en el resto de la expansión,
       en lugar del expansión del parámetro original. Esto se conoce como expansión  indirecta.  El  valor  está
       sujeto  a  expansión de tilde, expansión de parámetros, sustitución de órdenes y expansión aritmética. Si
       el parámetro es un nameref, esto se expande al nombre del parámetro al que hace referencia  el  parámetro
       en  lugar  de  realizar  la  expansión  indirecta completa. Las excepciones a esto son las expansiones de
       ${!prefix*} y ${!name[@]}  que  se  describen  a  continuación.  El  signo  de  exclamación  debe  seguir
       inmediatamente a la llave izquierda para introducir la dirección indirecta.

       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.

       Cuando  no  se  realiza  la  expansión  de  subcadenas,  mediantes  alguna  de  las formas documentadas a
       continuación (por ejemplo, :-), bash prueba si un parámetro no está definido o es nulo.  Omitir  los  dos
       puntos da como resultado una prueba solo para un parámetro que no está definido.

       ${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}
              Expansión  de subcadena. Se expande hasta longitud caracteres del valor de parámetro comenzando en
              el carácter especificado en desplazamiento. Si parámetro es @ o  *,  un  vector  indexado  con  un
              subíndice  @  o  *,  o  un nombre de vector asociativo, los resultados difieren como se describe a
              continuación. Si longitud se omite, se expande a la subcadena del valor de parámetro comenzando en
              el carácter especificado por offset y extendiéndose  hasta  el  final  de  el  valor.  longitud  e
              desplazamiento son expresiones aritméticas (ver EVALUACIÓN ARITMÉTICA a continuación).

              Si desplazamiento se evalúa como un número menor que cero, el valor se utiliza como desplazamiento
              en  caracteres  desde  el final del valor de parámetro. Si longitud se evalúa como un número menor
              que cero, se interpreta como desplazamiento en caracteres desde el final del valor de parámetro en
              lugar del número de caracteres, y la expansión son  los  caracteres  entre  desplazamiento  y  ese
              resultado.  Tenga en cuenta que un desplazamiento negativo debe separarse de los dos puntos por al
              menos un espacio para evitar confundirse con la expansión :-

              Si parámetro es @ o  *,  el  resultado  es  longitud  parámetros  posicionales  que  comienzan  en
              desplazamiento.  Un  desplazamiento  negativo  se toma relativo a uno mayor que el mayor parámetro
              posicional, por lo que un desplazamiento de -1 evalúa hasta el último parámetro posicional. Es  un
              error de expansión si longitud se evalúa como un número menor que cero.

              Si  parámetro  es  un  nombre  de  vector indexado con subíndice '@' o '*', el resultado serán los
              miembros longitud de  la  matriz  que  comienzan  con  ${parámetro[desplazamiento]}.  Se  toma  un
              desplazamiento  negativo  en  relación con uno mayor que el índice máximo del vector especificado.
              Será un error de expansión si longitud se evalúa como un número menor que cero.

              La expansión de subcadena aplicada sobre un vector asociativo produce resultados inesperados.

              La indexación de subcadenas se inicia en el cero a menos que se utilicen parámetros  posicionales,
              en  cuyo  caso  la  indexación comienza en 1 de forma predeterminada. Si desplazamiento es 0, y se
              utilizan los parámetros posicionales, se añade el prefijo $0 a la lista

       ${!prefijo*}
       ${!prefijo@}
              Nombres que coinciden con el prefijo. Se expande a los nombres  de  las  variables  cuyos  nombres
              comienzan con prefijo, separados por el primer carácter de la variable especial IFS. Cuando se usa
              @ y la expansión aparece entre comillas dobles, cada nombre de variable se expandirá a una palabra
              separada.

       ${!nombre[@]}
       ${!nombre[*]}
              Lista  de  claves del vector.Si nombre es una variable vectorial, se expande a la lista de índices
              del vector (las claves) asignados en nombre. Si nombre no es un vector, se expandirá a 0 si nombre
              está definido y sino será nulo. Cuando se usa @ y la expansión aparece entre comillas dobles, cada
              clave se expande a una palabra separada.

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

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

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

       ${parámetro/patrón/cadena}
       ${parámetro//patrón/cadena}
       ${parámetro/#patrón/cadena}
       ${parámetro/%patrón/cadena}
              Pattern substitution.  The pattern is expanded to produce a pattern just as in pathname expansion.
              Parameter  is expanded and the longest match of pattern against its value is replaced with string.
              string undergoes tilde expansion, parameter and variable expansion, arithmetic expansion,  command
              and  process  substitution,  and  quote removal.  The match is performed using the rules described
              under Pattern Matching below.  In the first form above, only the  first  match  is  replaced.   If
              there  are  two  slashes  separating parameter and pattern (the second form above), all matches of
              pattern are replaced with string.  If pattern is preceded by # (the third  form  above),  it  must
              match  at  the  beginning  of  the  expanded value of parameter.  If pattern is preceded by % (the
              fourth form above), it must match at the end of the expanded value of parameter.  If the expansion
              of string is null, matches of pattern are deleted.  If string is  null,  matches  of  pattern  are
              deleted and the / following pattern may be omitted.

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

              Citar cualquier parte de cadena inhibe el reemplazo en la expansión de laparte  citada,  incluidas
              las  cadenas  de  reemplazo  almacenadas  en variables de shellLa barra invertida escapará de & en
              cadena; la barra invertida se elimina para permitir el carácter & en la cadena  de  reemplazo.  La
              barra invertida también puede ser usada para escapar otra barra invertida; \\ da como resultado el
              carácter de barra invertida en reemplazo. Los usuarios deben tener precaución si cadena está entre
              comillas  dobles  para  evitar  interacciones  no deseadas entre la barra invertida y las comillas
              dobles, porque la barra invertida tiene un significado especial entre comillas dobles. Sustitución
              de patrón realiza la comprobación de & sin comillas después de expandir cadena; los  programadores
              de  la  shell  deben  entrecomillar  los caracteres & que quieran que se interpretenliteralmente y
              asegurarse que no esté entrecomillado cualquier carácter & que quieranque sea reemplazado.

              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}
              Modificación en la capitalización. Esta expansión modifica  la  capitalización  de  caracteres  en
              parámetro. El patrón se expande para producir un patrón al igual que en la expansión del nombre de
              ruta.  Cada carácter en el valor expandido de parámetro se prueba con patrón y, si coincide con el
              patrón, se convierte su capitalización. El patrón no debe intentar coincidir más de  un  carácter.
              El  operador  ^ convierte letras minúsculas, que coinciden con patrón, a mayúsculas; el operador ,
              convierte las mayúsculas coincidentes en minúsculas. Las  expansiones  ^^  y  ,,  convierten  cada
              coincidencia  en  el  valor  expandido; las expansiones ^ y , coinciden y convierte sólo el primer
              carácter del valor expandido. Si se omite patrón, se considerará como ?, que  coincide  con  todos
              los caracteres. Si parámetro es @ o *, la modificación de capitalizaciónse aplica a cada parámetro
              posicional  por turno, y la expansión es la lista resultanteSi parámetro es una variable de matriz
              con el subíndice @ o *, la modificación de capitalización se aplica a cada miembro  de  la  matriz
              por turno y la expansión es la lista resultante

       ${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      La  expansión  es  una  cadena en forma de declaración de asignación o orden nativa declare
                     que, si se evalúa, recreará parámetro con su valor y atributos
              K      Produce una versión posiblemente entrecomillada del valor de parámetro, salvo que  mostrará
                     los  valores  de  vectores  indexados y asociativos como una secuencia de pares clave-valor
                     entrecomillados (consulte Vectores).
              a      La expansión será una cadena formada por  los  valores  de  opciones  que  representan  los
                     atributos de parámetro.
              k      Igual  que  la transformación K, salvo que expande las claves y los valores de los vectores
                     asociativos e indexados en palabras separadas después de la división de palabra.

              Si parámetro es @ o *, la operación se aplicará a cada  parámetro  posicional  por  turnos,  y  la
              expansión  es  la lista resultante.  Si parámetro es una variable vectorial indexada con @ o *, la
              operación de borrado del patrón se aplica a cada miembro del vector por orden, y la  expansión  es
              la lista resultante.

              El  resultado  de  la expansión puede posteriormente ser objeto de división de palabra y expansión
              del nombre de ruta tal como se describe más adelante.

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

              $(orden)
       o
              `orden`

       Bash  realiza la expansión ejecutando orden en una subshell y reemplazando la sustitución de orden con la
       salida estándar de la orden, quitando los saltos de línea finales.  Los saltos de línea empotrados no  se
       borran,  pero  pueden  ser  eliminados  durante  la  división de palabras.  La sustitución de orden $(cat
       archivo) puede reemplazarse por lo equivalente pero más rápido $(< archivo).

       Cuando se emplea la forma de sustitución al viejo estilo con las comillas inversas,  la  barra  invertida
       mantiene  su  significado literal excepto cuando es seguida por $, `, o \.  La primera comilla inversa no
       precedida por una barra invertida termina la sustitución de orden.  Cuando se emplea la  forma  $(orden),
       todos los caracteres entre los paréntesis forman parte de la orden; ninguno se considera como especial.

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

       Si la sustitución aparece dentro de las dobles comillas, la  división  de  palabras  y  la  expansión  de
       nombres no se realiza en los resultados.

   Expansión Aritmética
       La expansión aritmética permite la evaluación de una expresión aritmética y la sustitución del resultado.
       El formato para la expansión aritmética es:

              $((expresión))

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

       La  expresión  se  trata  como  si  estuviera  entre  comillas  dobles, pero un signo de doble comilla en
       expresión no se considera un carácter especial y se elimina. Todos los  lexemas  en  la  expresión  están
       sujetos  a  expansión de parámetro, expansión de cadena, sustitución de orden, y eliminación de comillas.
       El resultado se tratará coma la expansión aritmética a evaluar, dichas expansiones pueden anidarse.

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

   Sustitución de Proceso
       Process substitution allows a process's input or output to be referred to using a filename.  It takes the
       form of <(list) or >(list).  The process list is run asynchronously, and its input or output appears as a
       filename.   This filename is passed as an argument to the current command as the result of the expansion.
       If the >(list) form is used, writing to the file will provide input for list.  If  the  <(list)  form  is
       used,  the  file passed as an argument should be read to obtain the output of list.  Process substitution
       is supported on systems that support named pipes (FIFOs) or the /dev/fd method of naming open files.

       Cuando esté disponible, se realiza  la  sustitución  de  proceso  simultáneamente  con  la  expansión  de
       parámetro y variable, sustitución de orden y expansión aritmética.

   División de Palabra
       la shell examina los resultados de la expansión de parámetro, sustitución de orden y expansión aritmética
       que no ocurrieron dentro de comillas dobles para realizar la división de palabras.

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

       Explicit null arguments ("" or '') are retained and  passed  to  commands  as  empty  strings.   Unquoted
       implicit null arguments, resulting from the expansion of parameters that have no values, are removed.  If
       a  parameter  with no value is expanded within double quotes, a null argument results and is retained and
       passed to a command as an empty string.  When a quoted null argument appears as  part  of  a  word  whose
       expansion  is  non-null,  the  null  argument  is  removed.  That is, the word -d'' becomes -d after word
       splitting and null argument removal.

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

   Expansión de Nombres de Ruta
       After word splitting, unless the -f option has been set, bash scans each word for the  characters  *,  ?,
       and  [.   If  one of these characters appears, and is not quoted, then the word is regarded as a pattern,
       and replaced with an alphabetically sorted list of filenames matching the pattern (see  Pattern  Matching
       below).   If  no  matching filenames are found, and the shell option nullglob is not enabled, the word is
       left unchanged.  If the nullglob option is set, and no matches are found, the word is  removed.   If  the
       failglob  shell  option  is set, and no matches are found, an error message is printed and the command is
       not executed.  If the shell option nocaseglob is enabled, the match is performed without  regard  to  the
       case of alphabetic characters.  Note that when using range expressions like [a-z] (see below), letters of
       the  other  case  may  be  included,  depending  on the setting of LC_COLLATE. When a pattern is used for
       pathname expansion, the character “.” at the start of a name or immediately following  a  slash  must  be
       matched  explicitly,  unless  the  shell  option dotglob is set.  In order to match the filenames “.” and
       “..”, the pattern must begin with “.” (for example, “.?”), even if dotglob is set.  If  the  globskipdots
       shell  option is enabled, the filenames “.” and “..” are never matched, even if the pattern begins with a
       “.”.  When not matching pathnames, the  “.”   character  is  not  treated  specially.   When  matching  a
       pathname,  the  slash character must always be matched explicitly by a slash in the pattern, but in other
       matching contexts it can be matched by a special pattern  character  as  described  below  under  Pattern
       Matching.   See  the  description  of  shopt  below under SHELL BUILTIN COMMANDS for a description of the
       nocaseglob, nullglob, globskipdots, failglob, and dotglob shell options.

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

       Concordancia

       Cualquier carácter que aparezca en un patrón, aparte de los especiales descritos más adelante,  concuerda
       consigo  mismo.  El  carácter  NUL  no puede estar en un patrón. Una barra invertida protege al siguiente
       carácter y no se tiene en  cuenta  durante  la  búsqueda  de  concordancias.  Los  caracteres  de  patrón
       especiales deben protegerse si han de concordar literalmente consigo mismos.

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

              *      Coincide  con cualquier cadena, incluso si es nula. Cuando está activada la opción de shell
                     globstar y * se usa para expandir un nombre de ruta, dos * adyacentes usados como un patrón
                     único coincidirán con todos los archivos y con cero o más directorios y subdirectorios.  Si
                     le sigue una /, dos * adyacentes coincidirán sólo con directorios y subdirectorios.
              ?      Concuerda con un solo carácter cualquiera.
              [...]  Matches  any  one  of  the enclosed characters.  A pair of characters separated by a hyphen
                     denotes a range  expression;  any  character  that  falls  between  those  two  characters,
                     inclusive, using the current locale's collating sequence and character set, is matched.  If
                     the  first  character  following  the  [  is  a ! or a ^ then any character not enclosed is
                     matched.  The sorting order of characters in range expressions, and the characters included
                     in the range, are determined by the current locale and the  values  of  the  LC_COLLATE  or
                     LC_ALL  shell  variables,  if  set.   To  obtain  the  traditional  interpretation of range
                     expressions, where [a-d] is equivalent to [abcd], set value of the LC_ALL shell variable to
                     C, or enable the globasciiranges shell option.  A - may be matched by including it  as  the
                     first  or  last  character  in  the  set.   A ] may be matched by including it as the first
                     character in the set.

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

                     Dentro  de  [  y  ],  una  clase de equivalencia se puede especificar empleando la sintaxis
                     [=c=], que concuerda con todos los caracteres con el mismo peso de clasificación (tal  como
                     lo defina la localización en curso) que el carácter c.

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

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

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

       La  opción  extglob modifica el funcionamiento del analizador, ya que los paréntesis suelen tratarse como
       operadores con significado sintáctico. Para asegurarse de que los patrones de concordancia extendidos  se
       analicen  correctamente,  asegúrese  de  que extglob esté habilitado antes de analizar construcciones que
       contienen dichos patrones, incluidas funciones de shell y sustituciones de órdenes.

       Al hacer coincidir nombres de archivos, la opción de shell dotglob determina el conjunto  de  nombres  de
       archivos  que  se  probarán:  cuando  dotglob está habilitado, el conjunto de nombres de archivos incluye
       todos los archivos que comienzan por “.”, excepto “.” y “..” debe coincidir con un patrón o subpatrón que
       comience por un punto; cuando está deshabilitado, el conjunto no incluye ningún  nombre  de  archivo  que
       comience  por  “.”  a  menos que el patrón o subpatrón comience con “.”.   Como arriba, “.” solo tiene un
       significado especial cuando coincide con nombres de archivos.

       La comparación de patrones extendidos complejos con cadenas largas es  lenta,  especialmente  cuando  los
       patrones  contienen alternancias y las cadenas contienen múltiples concordancias. El uso de concordancias
       separadas para cadenas más cortas, o usar vectores de cadenas en lugar de una sola  cadena  larga,  puede
       ser más rápido.

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

REDIRECCIÓN

       Before a command is executed, its input and output may be redirected using a special notation interpreted
       by the shell.  Redirection allows commands' file handles to be duplicated, opened, closed, made to  refer
       to  different files, and can change the files the command reads from and writes to.  Redirection may also
       be used to modify file handles in the current shell execution  environment.   The  following  redirection
       operators  may  precede or appear anywhere within a simple command or may follow a command.  Redirections
       are processed in the order they appear, from left to right.

       Cada redirección que puede ir precedida por un número de descriptor de archivo también puede ir precedida
       por una palabra del formato {nombrevariable}. En este caso, para cada operador de redirección excepto >&-
       y <&-, la shell asignará un descriptor de archivo mayor o igual a 10 y lo asignará a  nombrevariable.  Si
       >&- o <&- está precedido por {nombrevariable}, éste define el descriptor de archivo que se cerrará. Si se
       proporciona {nombrevariable}, la redirección persiste más allá del alcance de la orden, lo que permite al
       programador  de  shell administrar la vida útil del descriptor de archivo manualmente. La opción de shell
       varredir_close gestiona esta funcionalidad.

       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 maneja varios nombres de archivos especialmente cuando se usan en redirecciones, como se describe en
       la  siguiente  tabla.    Si  el  sistema  operativo  en el que se ejecuta bash proporciona estos archivos
       especiales, se usarán; sino se emularán internamente con la funcionalidadque se describe a continuación.

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

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

       Deben usarse con cautela las redicrecciones con descriptores de archivo  mayores  que  9  ya  que  pueden
       entrar en conflicto con los empleados internamente por la propia shell.

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

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

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

              [n]<palabra

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

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

              [n]>palabra

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

   Añadir a la Salida Redirigida
       La redirección de la salida en esta forma hace que el fichero cuyo nombre  resulte  de  la  expansión  de
       palabra se abra para añadir en el descriptor de fichero n, o la salida estándar (descriptor de fichero 1)
       si n no se especificó. Si el fichero no existe, se crea.

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

              [n]>>palabra

   Redirección de las Salidas Estándar y de Errores
       Este constructo permite que ambas salidas estándares, la normal (descriptor de archivo 1) y la de errores
       (descriptor de archivo 2) se redirijan hacia el archivos cuyo nombre sea la expansión de palabra con esta
       construcción.

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

              &>palabra
       y
              >&palabra

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

              >palabra 2>&1

       Cuando  se  utiliza  la segunda forma, palabra no puede expandirse a un número o -. Si es así, se aplican
       otros operadores de redirección (consulte Duplicación de descriptores de archivos más adelante)  en  aras
       de la compatibilidad.

   Uniendo las Salidas Estándar y Error
       Este constructo permite que ambas salidas estándares, la normal (descriptor de archivo 1) y la de errores
       (descriptor de fichero 2) se redirijan hacia el archivo cuyo nombre sea la expansión de palabra.

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

              &>>palabra

       Ésta es semánticamente equivalente a

              >>palabra 2>&1

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

   Documentos Internos
       Este  tipo  de  redirección indica a la shell que lea la entrada desde la fuente actual hasta que vea una
       línea que contenga solamente separador (sin espacios en blanco al final).  Todas las líneas leídas  hasta
       ese punto se emplean como la entrada estándar de una orden.

       El formato de los documentos internos es:

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

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

       Si el operador de redirección es <<-, entonces se quitan de las líneas de la entrada todos los caracteres
       de  tabulación iniciales, así como de la línea que contiene delimitador.  Esto permite que los documentos
       internos dentro de guiones de la shell se sangren de manera natural.

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

              [n]<<<palabra

       La palabra se ve afectada por expansión de tilde, expansión de parámetros  y  variables,  sustitución  de
       comandos,  expansión aritmética y eliminación de comillas. No se realiza expansión de nombres de rutas ni
       división de palabra. El resultado se proporciona como una sola cadena, añadiéndole el una nueva línea,  a
       la orden en su entrada estándar (o descriptor de archivo n si se especifica n).

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

              [n]<&palabra

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

       Operador

              [n]>&palabra

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

   Mobilidad de los Descriptores de Archivo
       Operador de Redirección

              [n]<&cifra-

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

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

              [n]>&cifra-

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

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

              [n]<>palabra

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

ALIAS

       Aliases  allow  a  string  to  be  substituted  for  a word when it is used as the first word of a simple
       command.  The shell maintains a list of aliases that may be set and unset  with  the  alias  and  unalias
       builtin commands (see SHELL BUILTIN COMMANDS below).  The first word of each simple command, if unquoted,
       is  checked  to  see  if  it  has  an alias.  If so, that word is replaced by the text of the alias.  The
       characters /, $, `, and = and any of the shell metacharacters or quoting characters listed above may  not
       appear  in  an  alias  name.   The  replacement  text  may contain any valid shell input, including shell
       metacharacters.  The first word of the replacement text is  tested  for  aliases,  but  a  word  that  is
       identical  to an alias being expanded is not expanded a second time.  This means that one may alias ls to
       ls -F, for instance, and bash does not try to recursively expand  the  replacement  text.   If  the  last
       character  of  the alias value is a blank, then the next command word following the alias is also checked
       for alias expansion.

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

       No hay ningún mecanismo para poder usar argumentos en el texto de reemplazo.  Si  se  necesitan,  debería
       emplearse preferentemente una función de la shell. Consulte FUNCIONES más adelante.

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

       The  rules  concerning  the  definition  and use of aliases are somewhat confusing.  Bash always reads at
       least one complete line of input, and all lines that make up a compound command, before executing any  of
       the commands on that line or the compound command.  Aliases are expanded when a command is read, not when
       it  is  executed.   Therefore, an alias definition appearing on the same line as another command does not
       take effect until the next line of input is read.  The commands following the alias  definition  on  that
       line  are  not  affected  by  the new alias.  This behavior is also an issue when functions are executed.
       Aliases are expanded when a function definition is read, not when the function  is  executed,  because  a
       function  definition  is  itself  a  command.   As  a  consequence, aliases defined in a function are not
       available until after that function is executed.  To be safe, always put alias definitions on a  separate
       line, and do not use alias in compound commands.

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

FUNCIONES

       Una  función de la shell, tal como se define en GRAMÁTICA DE LA SHELL, almacena una serie de órdenes para
       su posterior ejecución. Cuando el nombre de una función de la shell se utiliza como un  nombre  de  orden
       simple, la lista de órdenes asociadascon ese nombre de función se ejecutará. Las funciones se ejecutan en
       el  contexto  de la shell actual; no se crea ningún proceso nuevo para interpretarlos (a diferencia de un
       script de shell). Cuando se ejecuta una función, los argumentos  de  la  función  se  convierten  en  los
       parámetros  posicionales  durante  suejecución.  El  parámetro  especial  # se actualiza para reflejar el
       cambio. El parámetro especial 0 no se modifica. El primer elemento de La variable FUNCNAME toma el  valor
       del nombre de la función mientras ésta se está ejecutando.

       Todos los demás aspectos del entorno de ejecución de la shell son idénticos entre una función y lo que la
       invoca  con  las  siguientes excepciones: las trampas DEBUG y RETURN (consulte la descripción de la orden
       nativa trap en ÓRDENES NATIVAS DE LA SHELL más adelante) no se heredan a menos que a  la  función  se  le
       haya  asignado el atributo trace (consulte la descripción de la función nativa declare más adelante) o la
       opción de la shell -o functrace se ha habilitado con  la  orden  nativa  set  (en  cuyo  caso  todas  las
       funciones  heredan  las  trampas  DEBUG  y RETURN), y la trampa ERR no se hereda a menos que la opción de
       shell -o errtrace haya sido habilitada.

       Las variables locales de la función  se  pueden  declarar  mediante  la  orden  nativa  local  (variables
       locales).  En  general,  las variables y sus valores se comparten entre la función y su invocador. Si una
       variable se declara local, el alcance de la variable se restringirá a dicha función y los que la  heredan
       (incluidas las funciones que invoca).

       En  la  siguiente  descripción,  alcance  actual  es  una  función actualemente en ejecución. Los ámbitos
       anteriores serán los mismo que los del invocador de  esa  función  y,  sucesivamente,  hasta  el  alcance
       "global",  donde  la  shell  no ejecuta ninguna función. En consecuencia, una variable local en el ámbito
       actual es una variable declarada  utilizando  las  funciones  nativas  local  o  declare  en  la  función
       actualmente en ejecución.

       Las  variables  locales "invisibilizan" otras variables con el mismo nombre que hayan sido delclaradas en
       un ámbito anterior. Por ejemplo, una variable local declarada dentro de una  función,  invisibiliza  otra
       variable  global  que tenga el mismo nombre: las diversas referencias y asignaciones serán referidas a la
       variable local, sin modificar la variable global. Cuando la función termine, la variable global vuelve  a
       ser visible.

       La  shell  emplea alcance dinámico para controlar la visibilidad de una variable dentro de las funciones.
       Con el alcance dinámico, las variables visibles y sus  valores  son  el  resultado  de  la  secuencia  de
       llamadas a funciones mediante las cuales la ejecución alcanza la función actual. El valor de una variable
       para  una  función  dependerá  de  su valor dentro de su invocador, si lo hubiese, ya sea éste el alcance
       "global" u otra función de la shell. Este es también el valor  que  una  declaración  de  variable  local
       "oculta", y el valor que se restaura cuando la función retorna.

       Por  ejemplo,  si una variable var se declara como local en la función func1 y func1 llama a otra función
       func2, las referencias a var realizadas desde dentro de func2 se resolverán como la variable local var de
       func1, ocultando cualquier variable global llamada var.

       La orden nativa unset también tiene el mismo alcance dinámico: si una variablees local  para  el  alcance
       actual,  unset la desactivará; de lo contrario, se desactivará la variable encontrada en cualquier ámbito
       de llamada como se describió anteriormenteSi una variable en el ámbito local actual no está  configurada,
       permanecerá  así(aparece  como  no  configurado)  hasta  que  se restablezca en ese ámbito o hasta que la
       función regrese. Una vez que la función regresa, se visibilizará cualquier instancia de la variable en un
       alcance anterior. Si se ha desactivado una variable en un alcance anterior, cualquier  instancia  de  una
       variable  con ese nombre que haya sidoinvisibilizado se hará visible (vea a continuación como se modifica
       este comportamiento mediante la opción de la shell localvar_unset).

       La variable FUNCNEST, si se le da un valor numérico mayor que 0, define un nivel máximo de anidamiento de
       funciones. Las invocaciones de funciones que exceden el límite hacen que se cancele la ejecución de  toda
       la orden.

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

       Function names and definitions may be listed with the  -f  option  to  the  declare  or  typeset  builtin
       commands.   The  -F  option  to  declare or typeset will list the function names only (and optionally the
       source file and line number, if the extdebug shell option is enabled).  Functions may be exported so that
       child shell processes (those created when executing a separate shell invocation)  automatically have them
       defined with the -f option to the export builtin.  A function definition may  be  deleted  using  the  -f
       option to the unset builtin.

       Las funciones pueden anidarse. La variable FUNCNEST limita el tamaño de la pila de llamadas de la función
       y  restringir  la  cantidad  de  llamadas  que puede hacer una función. Por defecto, no se impone ninguna
       restricción sobre este aspecto.

EVALUACIÓN ARITMÉTICA

       The shell allows arithmetic expressions to be evaluated, under certain circumstances  (see  the  let  and
       declare  builtin  commands,  the  ((  compound command, and Arithmetic Expansion).  Evaluation is done in
       fixed-width integers with no check for overflow, though division by 0 is trapped and flagged as an error.
       The operators and their precedence, associativity, and values are the same as in  the  C  language.   The
       following  list of operators is grouped into levels of equal-precedence operators.  The levels are listed
       in order of decreasing precedence.

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

       Se permiten que variables de la shell actúen como operandos; La expansión de parámetros se realiza  antes
       de evaluar la expresión. Dentro de una misma expresión, también se puede hacer referencia a las variables
       de la shell mediante su nombre sin utilizar la sintaxis de expansión de parámetros. Una variable de shell
       nula  o  que  no  está  configurada  se  evalúa como 0 cuando se hace referencia a ella por su nombre sin
       utilizar la sintaxis de expansión de parámetros. El valor de una variable se evaluará como una  expresión
       aritmética cuando se hace referencia a ella, o cuando se asigna un valor a una variable a la que se le ha
       asignado  el  atributo integer mediante declare -i. Un valor nulo se evaluará como 0. No es necesario que
       una variable de shell tenga su atributo integer activado para usarse en una expresión.

       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.

       Las  expresiones  se  forman  a partir de los siguientes primarios unarios o binarios. Bash maneja varios
       nombres de archivos, especialmente cuando se usan en expresiones. Si el sistema operativo en  el  que  se
       ejecuta  bash  tiene estos archivos especiales, bash los usará; de lo contrario, los emulará internamente
       del siguiente modo: si algún argumento de archivo para uno de los primarios  tiene  la  forma  /dev/fd/n,
       entonces  se  marca  el  descriptor  de archivo n. Si el argumento del archivo de uno de los primarios es
       /dev/stdin, /dev/stdout o /dev/stderr, se marcarán los descriptores de archivo 0, 1 o 2, respectivamente.

       Salvo que se indique lo contrario, las primarias que  operan  en  archivos  seguirán  enlaces  simbólicos
       operando en el archivo enlazado en lugar de hacerlo sobre el propio enlace.

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

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

       cadena1 == cadena2
       cadena1 = cadena2
              Verdadero si las cadenas son iguales. = debe usarse con la orden test para conformidad con  POSIX.
              Cuando  se  usa  con  la  orden  [[,  realiza  la  concordancia  de  patrones  como se ha descrito
              anteriormente (Órdenes compuestas).

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

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

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

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

EXPANSIÓN DE ORDEN SIMPLE

       Cuando  se  ejecuta  una  orden  simple,  la  shell  realiza  las  siguientes expansiones, asignaciones y
       redirecciones, de izquierda a derecha en el siguiente orden:

       1.     Las palabras que el analizador ha marcado como asignaciones de variables (aquéllas que preceden al
              nombre de la orden) y redirecciones se guardan para un procesado posterior.

       2.     Las palabras que no sean asignaciones de variables  ni  redirecciones  se  expanden.  Si  tras  la
              expansión  quedan  aún  palabras,  la  primera  palabra  se  toma como el nombre de la orden y las
              palabras restantes son los argumentos.

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

       4.     El texto tras el = en cada asignación de variable está sujeto a expansión de tilde,  expansión  de
              parámetro,  sustitución  de  orden,  expansión  aritmética  y  eliminado  de comillas antes de ser
              asignado a la variable.

       If no command name results, the variable assignments affect the current shell environment.  In  the  case
       of  such  a  command  (one  that  consists  only  of  assignment statements and redirections), assignment
       statements are performed before redirections.  Otherwise, the variables are added to the  environment  of
       the executed command and do not affect the current shell environment.  If any of the assignments attempts
       to assign a value to a readonly variable, an error occurs, and the command exits with a non-zero status.

       Si  no resulta ningún nombre de orden, se hacen las redirecciones, pero no afectan al entorno de la shell
       en curso. Un error de redirección hace que el shell acabe con un estado distinto de cero.

       Si hay un nombre de orden tras la expansión, la ejecución procede como se describió antes. De otro  modo,
       la  orden  sale.  Si  una de las expansiones contenía una sustitución de orden, el estado de salida de la
       orden es el de la última sustitución de orden realizada. Si no había sustituciones de órdenes,  la  orden
       acaba con un estado de cero.

EJECUCIÓN DE ÓRDENES

       Después  de  que  una orden ha sido dividida en palabras, si el resultado es una orden simple y una lista
       opcional de argumentos, tienen lugar las siguientes acciones.

       Si el nombre de la orden no contiene barras inclinadas, la  shell  intenta  localizarla.  Si  existe  una
       función  de  la  shell con ese nombre, esa función se llama como se describió arriba en FUNCIONES.  Si el
       nombre no coincide con el de ninguna función, la shell lo busca en la lista de órdenes  internas.  Si  se
       encuentra, se llama a la orden interna correspondiente.

       Si el nombre no es ni una función de la shell ni una orden interna, y no contiene barras inclinadas, bash
       busca  en  cada  elemento  de PATH un directorio que contenga un archivo ejecutable con ese nombre.  Bash
       emplea una tabla de dispersión (hash) para recordar  los  nombres  de  ruta  completos  de  los  archivos
       ejecutables  (consulte hash en ÓRDENES NATIVAS DE LA SHELL a continuación).  Solo se realiza una búsqueda
       completa  de  los  directorios  de  PATH  si  la  orden  no  se  encuentra  en  la   tabla   de   llamada
       command_not_found_handle.  Si  la  función  existe,  se invoca en un entorno de ejecución separado con la
       orden y sus argumentos originales, el valor de salida de esta función será el  de  esa  subshell.  Si  la
       función no está definida, la shell muestra un mensaje de error y devuelve un estado de salida de 127.

       Si  la  búsqueda  fue  exitosa, o si el nombre de la orden contiene una o más barras inclinadas, la shell
       ejecuta el programa con ese nombre en un entorno de ejecución separado.  El argumento 0 se pone al nombre
       dado, y el resto de argumentos de la orden se ponen a los argumentos dados, si los hay.

       Si esta ejecución fallara porque el  fichero  no  tuviera  un  formato  ejecutable  y  tampoco  fuese  un
       directorio, se asumiría que es un script de la shell, un archivo e contiene órdenes de la shell; la shell
       crea  una  subshell  para ejecutarlo. Esta subshell se reinicia a si misma, así que el efecto es el mismo
       que si se hubiera llamado una nueva shell para ejecutar el script, con la excepción  de  que  el  proceso
       hijo  retiene las localizaciones de órdenes recordadas por su antecesor (vea hash más adelante en ÓRDENES
       NATIVAS DE LA SHELL).

       Si el programa es un fichero que empieza con los  dos  caracteres  #!,  el  resto  de  la  primera  línea
       especifica  un  intérprete  para  el  programa.  El  shell ejecuta el intérprete especificado en sistemas
       operativos que no manejen por sí mismos  este  formato  de  ejecutable.  Los  argumentos  del  intérprete
       consisten  en  un solo argumento opcional tras el nombre del intérprete en la primera línea del programa,
       seguido del nombre del programa, seguido por los argumentos de la orden, si los hubiera.

ENTORNO DE EJECUCIÓN DE ÓRDENES

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

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

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

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

       •      las trampas en curso establecidas por trap

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

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

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

       •      opciones activadas mediante shopt

       •      alias de la shell definidos con alias

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

       Cuando  una  orden simple distinta de una interna o una función de la shell se va a ejecutar, se llama en
       un entorno de ejecución separado que consiste en lo siguiente. A menos que se diga otra cosa, los valores
       se heredan del shell.

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

       •      el directorio de trabajo en curso

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

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

       •      las trampas capturadas por la shell se restauran a los valores del padre del shell, y las  trampas
              que no son tenidas en cuenta por la shell tampoco lo son

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

       Una subshell es una copia del proceso de la shell.

       Command  substitution,  commands  grouped  with  parentheses,  and asynchronous commands are invoked in a
       subshell environment that is a duplicate of the shell environment, except that traps caught by the  shell
       are  reset  to  the values that the shell inherited from its parent at invocation.  Builtin commands that
       are invoked as part of a pipeline are also executed in a  subshell  environment.   Changes  made  to  the
       subshell environment cannot affect the shell's execution environment.

       Las  subshells  generadas  para ejecutar sustituciones de comandos heredan el valor de la opción -e de la
       shell principal. Cuando no está en modo posix, bash borrará la opción -e en dichas subshells.

       Si una orden va seguida de & y el control de tareas no está activo, la  entrada  estándar  predeterminada
       para  la  orden  será el archivo /dev/null. De lo contrario, la orden invocada hereda los descriptores de
       archivo de la shell que realiza la llamada modificados por las redirecciones.

ENTORNO

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

       La shell proporciona diversos medios para manipular el entorno. Al inciarse, la shell busca en su entorno
       y  crea  un  parámetro  para  cada nombre encontrado, marcándolo automáticamente para exportar a procesos
       hijos. Las órdenes ejecutadas heredan el entorno.  Las órdenes export y  declare  -x  permiten  añadir  y
       quitar  parámetros  y  funciones  del  entorno. Si el valor de un parámetro en el entorno se modifica, el
       nuevo valor pasa a formar parte del entorno, reemplazando al antiguo. El entorno heredado  por  cualquier
       orden  ejecutada  consiste en el entorno inicial de la shell, cuyos valores pueden ser modificados, menos
       las parejas quitadas mediante la orden unset más las adiciones con las órdenes export y declare -x.

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

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

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

ESTADO DE SALIDA

       El estado de salida de una orden ejecutada es el valor retornado por las llamada del  sistema  waitpid  o
       una  función  equivalente.  El valor de los estados de salida varía entre 0 y 255, aunque como se explica
       más adelante, la shell suele usar valores superiores a 125. Los estados de salida de las órdenes  nativas
       de  la  shell  y  de  las  órdenes  compuestas también están limitadas a ese intervalo. En circunstancias
       concretas, la shell empleará valores especiales para indicar algún error específico.

       Para los propósitos de la shell, una orden que acabe con un estado de salida cero, ha  tenido  éxito.  Un
       estado  de  salida  de  cero indica éxito. Un estado de salida distinto de cero indica fallo.  Cuando una
       orden termina por una señal fatal N, bash emplea el valor de 128+N como el estado de salida.

       Si una orden no se encuentra, el proceso hijo creado para ejecutarla devuelve un estado de  127.  Si  una
       orden se encuentra pero no es ejecutable, el estado de salida es 126.

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

       Las órdenes nativas de la shell devuelven un estado de 0 (verdad) si acaban con éxito, y distinto de cero
       (falso)  si ocurre un error mientras se ejecutan. Todas las órdenes nativas devuelven un estado de salida
       de 2 para indicar un modo de empleo incorrecto, habitualmente el uso de opciones no válidas o la falta de
       algún argumento.

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

       El propio bash devuelve el estado de salida de la última orden ejecutada, a menos que ocurra un error  de
       sintaxis, en cuyo caso acaba con un estado distinto de cero. Consulte la orden interna exit más adelante.

SEÑALES

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

       Las órdenes no nativas ejecutadas por bash tienen gestores de señales puestos a los valores heredados por
       la  shell  de  su  padre.   Cuando  el control de tareas no está activo, las órdenes asíncronas ignorarán
       SIGINT y también SIGQUIT además de estos gestores heredados. Las órdenes  ejecutadas  como  resultado  de
       sustitución  de  orden  ignoran  las  señales de control de tareas generadas mediante el teclado SIGTTIN,
       SIGTTOU, ni SIGTSTP.

       la shell, de forma predeterminada, finaliza al recibir una señal SIGHUP. Antes de salir, reenvía la señal
       SIGHUP a todas las tareas, en ejecución o paradas.  A las tareas detenidas  se  les  envía  SIGCONT  para
       asegurarse  de  que  reciben  la  señal  SIGHUP.   Para evitar que la shell envíe la señal a una tarea en
       particular, debería quitarse de la lista con la orden nativa disown (vea ÓRDENES NATIVAS DE LA SHELL  más
       adelante) o marcarlo para no recibir SIGHUP empleando disown -h.

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

       If bash is waiting for a command to complete and receives a signal for which a trap  has  been  set,  the
       trap  will not be executed until the command completes.  When bash is waiting for an asynchronous command
       via the wait builtin, the reception of a signal for which a trap has been set will cause the wait builtin
       to return immediately with an exit status greater than 128, immediately after which the trap is executed.

       Cuando el control de tareas no está habilitado y bash está esperando a que se finalice  la  ejecución  de
       una  orden  en  primer  plano, la shell recibe señales generadas por el teclado como SIGINT (generalmente
       generada mediante ^C) que los usuarios intentan enviar a esa orden en ejecución. Esto  sucede  porque  la
       shell  y  la  orden  están  en  el mismo grupo de procesos que la terminal, y ^C envía SIGINT a todos los
       procesos en ese grupo de procesos.

       Cuando bash se ejecuta sin el control de tareas habilitado y recibe SIGINT mientras se ejecuta una  orden
       en primer plano, ésta esperara hasta que dicha orden finalice y luego decide qué hacer la señal SIGINT:

       1.     Si  la orden finaliza debido a la señal SIGINT, bash interpreta que el usuario pretendía finalizar
              todo el script y actúa sobre SIGINT (por ejemplo, ejecutando una trampa SIGINT o  finalizándose  a
              si misma);

       2.     Si  la  orden no finaliza debido a SIGINT, significa que el programa gestionó la señal SIGINT y no
              la interpretó terminando su ejecución. En este caso, bash tampoco  interpretará  SIGINT  como  una
              señal  que  indique  su  finalización, sino que supone que se era parte de la operación normal del
              programa ( ej., emacs lo usa para cancelar comandos de edición) o que no ha  sido  interpetada  de
              modo  delibrerado.  Sin  embargo,  por  razones de compatibilidad, bash ejecutará cualquier trampa
              establecida en SIGINT, como lo hace con cualquier otra señal que reciba mediante trampas, mientras
              espera que se finalice la ejecución de la orden enprimer plano.

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 una tarea con cada tubería. Mantiene una tabla de tareas  ejecutándose  actualmente,  que
       pueden  listarse  con  la  orden  jobs.   Cuando bash inicia una tarea asíncronamente (en segundo plano),
       imprime una línea con un aspecto como ésta:

              [1] 25647

       indicando que est tarea corresponde al 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 de la misma tarea.  Bash emplea la
       abstracción de la tarea 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) durante  la  ejecución
       de  un  proceso,  hace  que  éste  se pare y devuelva al usuario el control de 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
       esta tarea, empleando la orden bg para continuarla en segundo plano, la  orden  fg  para  continuarla  en
       primer  plano,  o  la  orden kill para finalizarla. Un ^Z tiene efecto inmediatamente, y además 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 la tarea número 1 desde el segundo plano al primero.  Similarmente, “%1 &” reanuda la tarea
       1 en segundo plano, equivalente a “bg %1”.

       La shell se entera inmediatamente cuando una tarea cambia de estado. Normalmente, bash espera  hasta  que
       está  a  punto  de  mostrar  un indicador antes de informar de cambios en el estado de una tarea, para no
       interrumpir cualquier otra salida. Si la opción -b de la orden interna set está activada, bash informa de
       tales cambios inmediatamente. Cualquier trampa en SIGCHILD será  ejecutada  para  cada  descendiente  que
       termine.

       If  an  attempt  to  exit bash is made while jobs are stopped (or, if the checkjobs shell option has been
       enabled using the shopt builtin, running), the shell prints a warning  message,  and,  if  the  checkjobs
       option is enabled, lists the jobs and their statuses.  The jobs command may then be used to inspect their
       status.   If  a  second  attempt to exit is made without an intervening command, the shell does not print
       another warning, and any stopped jobs are terminated.

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

INDICADORES

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

       El número de orden y el número de historia son usualmente diferentes: el número de historia de una  orden
       es  su  posición  en  la  lista  de  historia,  que  puede incluir órdenes restauradas desde el historial
       (consulte HISTORIAL más adelante), mientras que el número de orden es la  posición  en  la  secuencia  de
       órdenes  ejecutadas  durante  la  sesión  de shell actual.  Después de que la cadena es descodificada, se
       expande mediante la expansión de parámetros, sustitución de órdenes, expansión aritmética,  expansión  de
       cadena,  y  eliminación  de  comillas,  sujeta  al  valor  de  la  opción  de la shell promptvars (vea la
       descripción de la orden shopt bajo ÓRDENES INTERNAS  DE LA SHELL más adelante). Esto  puede  tener  algún
       efecto  indeseado  si  la  parte  protegida  de  la  cadena aparece dentro de la sustitución de órdenes o
       contiene algún carácter 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 inicia, el
       archivo de inicio se lee, y se establecen las definiciones de teclas y variables.  Solo se permiten  unas
       pocas  construcciones  básicas en el archivo de inicio de readline.  Las líneas en blanco no se tienen en
       cuenta.  Las líneas que comiencen con un # son comentarios.  Las líneas que comiencen con  un  $  indican
       construcciones  condicionales.   Otras  líneas  representan  definiciones  de  teclas  y  definiciones de
       variables.

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

       Por ejemplo, el poner

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

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

       Además de los nombres de órdenes, readline permite que se enlace una tecla cualquiera  a  una  cadena  de
       caracteres que se inserta cuando la tecla se pulse (una macro).

   Definiciones de Teclas de Readline
       La  sintaxis  para  controlar las definiciones de teclas en el fichero inputrc es simple.  Todo lo que se
       requiere es el nombre de la orden o el texto de una macro y una secuencia de  teclas  con  la  cual  debe
       enlazarse.  El  nombre  se  puede  especificar  en  una de dos formas: como un nombre simbólico de tecla,
       posiblemente con prefijos Meta- o Control-, o como una secuencia de teclas.

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

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

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

       En  la  segunda forma, "sectecla":nombre-función o macro, sectecla difiere de la nombre-tecla de antes en
       que las cadenas que representan una secuencia entera de teclas pueden especificarse poniendo la secuencia
       entre comillas dobles. Así se pueden utilizar algunas teclas de escape al estilo de GNU Emacs, como en el
       siguiente ejemplo, pero no se reconocen los nombres de caracteres simbólicos.

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

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

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

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

       Cuando se mete el texto de una macro, se deben  emplear  comillas  simples  o  dobles  para  indicar  una
       definición  de  macro.   El  texto  no entrecomillado se supone un nombre de función.  En el cuerpo de la
       macro, los escapes con barra inversa de arriba se expanden.  La barra inversa protegerá a cualquier  otro
       carácter en el texto de la macro, incluyendo a " y a '.

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

   Variables de Readline
       Readline tiene variables que se pueden usar para personalizar más aún su comportamiento. Una variable  se
       puede definir en el fichero inputrc con una sentencia de la forma

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

       Salvo  que  se  indique  lo  contrario,  las  variables  readline  pueden tomar los valores On o Off (sin
       distinción entre mayúsculas y minúsculas).  Los nombres de variables no reconocidas se ignorarán.  Cuando
       se  lee  un  valor  de  variable,  los  valores  vacíos  o nulos, "on" (sin distinción entre mayúsculas y
       minúsculas) y "1" son equivalentes a On. Todos los demás valores son equivalentes a Off. Las variables  y
       sus valores predeterminados son:

       active-region-start-color
              Una variable de cadena que controla el color y el fondo del texto cuando se muestra el texto en la
              región  activa  (consulte  la  descripción de enable-active-region a continuación). Esta cadena no
              debe ocupar físicamente ninguna posición en la pantalla, por lo que debe consistir  únicamente  en
              secuencias  de  escape  de  terminal.  Se envía al terminal antes de mostrar el texto en la región
              activa. Esta variable se restablece al valor  predeterminado  cada  vez  que  cambia  el  tipo  de
              terminal.  El  valor  predeterminado es la cadena que pone el terminal en modo destacado, según se
              obtiene de la descripción terminfo del terminal. Un valor de muestra podría ser "\e[01;33m".
       active-region-end-color
              Una variable de cadena que "deshace"  los  efectos  de  active-region-start-color  y  restaura  la
              apariencia "normal" de la pantalla del terminal después de mostrar texto en la región activa. Esta
              cadena  no  debe  ocupar  físicamente  ninguna  posición en la pantalla, por lo que debe consistir
              únicamente en secuencias de escape de terminal. Se envía al terminal después de mostrar  el  texto
              en  la  región  activa. Esta variable se restablece al valor predeterminado cada vez que cambia el
              tipo de terminal. El valor predeterminado es la cadena que restaura  el  terminal  desde  el  modo
              destacado, tal como se obtiene de la descripción terminfo del terminal. Un valor de ejemplo podría
              ser "\e[0m".
       bell-style (audible)
              Controla  qué  pasa  cuando readline quiere tocar el pito de la terminal.  Si se define como none,
              readline nunca toca el pito. Si se pone a  visible,  readline  usa  una  alerta  visible  si  está
              disponible.  Si se pone como audible, readline intenta hacer sonar el pito de la terminal.
       bind-tty-special-chars (On)
              Si  se  establece a On, readline intenta vincular los caracteres de control tratados especialmente
              por el controlador de terminal del kernel a sus equivalentes en readline.
       blink-matching-paren (Off)
              Si se establece a On, readline intenta mover el cursor a  un  paréntesis  de  apertura  cuando  se
              inserte un paréntesis de cierre.
       colored-completion-prefix (Off)
              Si  se  establece  a  On,  al  enumerar  las terminaciones, readline mostrará el prefijo común del
              conjunto de posibles terminaciones usando un color diferente. Las definiciones de color  se  toman
              del  valor  de la variable de entorno LS_COLORS. Si hay una definición de color en $LS_COLORS para
              el sufijo personalizado "readline-colored-completion-prefix", readline usará este  color  para  el
              prefijo común en lugar del predeterminado.
       colored-stats (Off)
              Si  se establece en On, readline mostrará varias posibilidades de autocompletado usando diferentes
              colores para indicar su tipo de archivo.  Las definiciones de color  se  toman  del  valor  de  la
              variable de entorno LS_COLORS.
       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)
              El número de columnas de  pantalla  utilizadas  para  mostrar  posibles  coincidencias  cuando  se
              autocompleta.  El valor se ignora si es menor que 0 o mayor que el ancho de pantalla del terminal.
              Un valor de 0 hará que las coincidencias se muestren una por línea. El valor predeterminado es -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)
              Si  se establece en On, y completion-ignore-case está habilitado, readline trata como equivalentes
              los guiones medios (-) y los guiones bajos (_) cuando se realizan concordancias y  autocompletados
              de nombres de archivos sin distinción entre mayúsculas y minúsculas.
       completion-prefix-display-length (0)
              La longitud en caracteres del prefixo común de una lista de posibles autocompletadosque se muestra
              sin modificación. Cuando se establece un valor mayor que cero, los prefijos comunes más largos que
              este valor se sustituyen por una elipse cuando se muestran posibles autocompletados.
       completion-query-items (100)
              Esto  determina  cuándo  se  pregunta al usuario si quiere ver el número de terminaciones posibles
              generadas por la orden possible-completions.  Puede ponerse a cualquier valor entero mayor o igual
              a cero. Si el número de posibles terminaciones es mayor o igual que el valor de esta variable,  al
              usuario  se  le  pregunta  si desea o no verlas; si no, simplemente se muestran en la terminal. El
              valor cero indica que readline  no  debe  preguntar  nunca  mientras  que  valores  negativos  son
              interpretados igual que el cero.
       convert-meta (On)
              Si  se  pone  a  On,  readline convertirá caracteres con el octavo bit definido a una secuencia de
              teclas ASCII recortando el octavo bit y añadiendo un carácter Esc como prefijo (es  decir,  usando
              Esc  como  el  prefijo  meta).  Por  está definido como On, pero readline lo define como Off si la
              localización contiene caracteres de 8 bits. Esta variable depende de la  LC_TYPE  pudiendo  variar
              según la localización empleada.
       disable-completion (Off)
              Si  se pone a On, readline inhibirá la terminación de palabras. Los caracteres para la terminación
              se insertarán en la línea como si se hubieran hecho corresponder con self-insert.
       echo-control-characters (On)
              Cuando se establece On, en los sistemas operativos que  indican  que  incluyen  soporte,  readline
              repite un caracter que corresponde a una señal generada desde el teclado.
       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 (@)
              Si está activa la variable show-mode-in-prompt, esta cadena se muestra inmediatamente antes de  la
              última  línea  del  mensaje  principal cuando el modo de edición de emacs está activo. El valor se
              expande como una combinación de teclas, por lo que el  conjunto  estándar  de  prefijos  meta,  de
              control  y  secuencias  de escape de barra invertida están disponible. Utilice los escapes \1 y \2
              para comenzar y finalizar secuencias de caracteres que no se imprimen, que se pueden utilizar para
              incrustar una secuencia de control de terminal en la cadena de modo.
       enable-active-region (On)
              El punto es la posición actual del cursor y marca se refiere a una posición guardada  del  cursor.
              El  texto  entre  el  punto  y  la  marca  se denomina región. Cuando el valor de esta variable se
              establece en On, readline permite que ciertas órdenes designen la región como  activa.  Cuando  la
              región   está   activa,   readline   resalta   el   texto   en   la  región  usando  el  valor  de
              active-region-start-color, que de forma predeterminada es la cadena que habilita el modo destacado
              del terminal. La región activa muestra el  texto  insertado  mediante  pegado  entre  corchetes  y
              cualquier  texto  concordante encontrado mediante búsquedas incrementales y no incrementales en el
              histórico.
       enable-bracketed-paste (On)
              Cuando su valor es On, readline configurará el terminal para  insertar  cada  información  que  se
              pegue en el búfer de edición como una única cadena de caracteres, en lugar de tratar cada carácter
              como  si  hubiera  sido leído desde el teclado. Esto evita que readline ejecute cualquier orden de
              edición vinculada a secuencias de teclas que puedan aparecer en el texto pegado.
       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)
              Si  se  establece  a  On, el código de historial intenta colocar un punto en la misma ubicación en
              cada línea del histórico recuperada con previous-history o next-history.
       history-size (unset)
              Establece el número máximo de entradas guardadas en la lista del  historial.  Si  se  establece  a
              cero,  se eliminan todas las entradas del historial existentes y no se guardan entradas nuevas. Si
              se establece en un valor menor que cero, el número de entradas del historial no está limitado.  De
              forma  predeterminada, el número de entradas del historial se establece en el valor de la variable
              de shell HISTSIZE. Si se intenta establecer tamaño del historial  en  un  valor  no  numérico,  el
              número máximo de entradas del historial se establecerá en 500.
       horizontal-scroll-mode (Off)
              When  set to On, makes readline use a single line for display, scrolling the input horizontally on
              a single screen line when it becomes longer than the screen width rather than wrapping  to  a  new
              line.  This setting is automatically enabled for terminals of height 1.
       input-meta (Off)
              Si se pone a On, readline habilitará la entrada de 8 bits (esto es, no pondrá a cero el octavo bit
              de  los  caracteres que lea), sin importar lo que la terminal diga que admite. El nombre meta-flag
              es un sinónimo para esta variable. Por defecto, su valor es off aunque readline lo pondrá a On  si
              la  localización  contiene  caracteres de 8 bits. Esta variable depende de LC_TYPE pudiendo variar
              según la localización empleada.
       isearch-terminators (“C-[C-J”)
              La cadena de caracteres que debe finalizar una búsqueda incremental sin ejecutar posteriormente el
              carácter como una orden. Si a esta variable no se le ha dado un valor, los caracteres  ESC  e  C-J
              finalizarán una búsqueda incremental.
       keymap (emacs)
              Establece  el  mapa  de  teclado  actual para readline. El conjunto de nombres de mapas de teclado
              válidos es emacs, emacs-standard, emacs-meta, emacs-ctlx, vi,  vi-command,  y  vi-insert.   vi  es
              equivalente  a  vi-command;  emacs  es  equivalente  a emacs-standard.  El valor predeterminado es
              emacs; el valor de editing-mode también afecta al mapa de teclado predeterminado.
       keyseq-timeout (500)
              Specifies the duration readline will wait for a character when reading an ambiguous  key  sequence
              (one  that  can  form  a complete key sequence using the input read so far, or can take additional
              input to complete a longer key sequence).  If no input is received within  the  timeout,  readline
              will  use  the  shorter  but  complete key sequence.  The value is specified in milliseconds, so a
              value of 1000 means that readline will wait one second for additional input.  If this variable  is
              set  to  a  value  less than or equal to zero, or to a non-numeric value, readline will wait until
              another key is pressed to decide which key sequence to complete.
       mark-directories (On)
              Si se pone a On, los nombres de directorios completados tendrán una  barra  inclinada  añadida  al
              final.
       mark-modified-lines (Off)
              Si  se  pone  a On, las líneas de historia que hayan sido modificadas se muestran con un asterisco
              precediéndolas (*).
       mark-symlinked-directories (Off)
              If set to On, completed names which are symbolic  links  to  directories  have  a  slash  appended
              (subject to the value of mark-directories).
       match-hidden-files (On)
              This variable, when set to On, causes readline to match files whose names begin with a `.' (hidden
              files)  when  performing  filename completion.  If set to Off, the leading `.' must be supplied by
              the user in the filename to be completed.
       menu-complete-display-prefix (Off)
              If set to On, menu completion displays the common prefix  of  the  list  of  possible  completions
              (which may be empty) before cycling through the list.
       output-meta (Off)
              If  set  to On, readline will display characters with the eighth bit set directly rather than as a
              meta-prefixed escape sequence.  The default is Off, but readline will set it to On if  the  locale
              contains  eight-bit  characters.   This variable is dependent on the LC_CTYPE locale category, and
              may change if the locale is changed.
       page-completions (On)
              Si está a On, readline emplea un paginador interno, similar a more, para mostrar  en  la  pantalla
              todas las posibilidades autocompletado al mismo tiempo.
       print-completions-horizontally (Off)
              Si se pone a On, readline mostrará terminaciones con concordancias clasificadas horizontalmente en
              orden alfabético, en vez de verticalmente.
       revert-all-at-newline (Off)
              If set to On, readline will undo all changes to history lines before returning when accept-line is
              executed.  By default, history lines may be modified and retain individual undo lists across calls
              to readline.
       show-all-if-ambiguous (Off)
              Esto altera el comportamiento predeterminado de las funciones de terminación. Si se pone a On, las
              palabras  que  tienen  más  de  una  posible  terminación  hacen que las concordancias se muestren
              inmediatamente en vez de tocarse el pito de la terminal.
       show-all-if-unmodified (Off)
              This  alters  the  default  behavior  of  the  completion  functions  in  a  fashion  similar   to
              show-all-if-ambiguous.   If  set to On, words which have more than one possible completion without
              any possible partial completion (the possible completions don't share a common prefix)  cause  the
              matches to be listed immediately instead of ringing the bell.
       show-mode-in-prompt (Off)
              If  set  to On, add a string to the beginning of the prompt indicating the editing mode: emacs, vi
              command, or vi insertion.  The mode strings are user-settable (e.g., emacs-mode-string).
       skip-completed-text (Off)
              If set to On, this alters the default completion behavior when inserting a single match  into  the
              line.   It's only active when performing completion in the middle of a word.  If enabled, readline
              does not insert characters from the completion that match characters after point in the word being
              completed, so portions of the word following the cursor are not duplicated.
       vi-cmd-mode-string ((orden))
              If the show-mode-in-prompt variable is enabled, this string is displayed  immediately  before  the
              last  line of the primary prompt when vi editing mode is active and in command mode.  The value is
              expanded like a key binding, so the standard set of  meta-  and  control  prefixes  and  backslash
              escape  sequences  is  available.   Use  the  \1  and  \2  escapes  to  begin and end sequences of
              non-printing characters, which can be used to embed a terminal  control  sequence  into  the  mode
              string.
       vi-ins-mode-string ((ins))
              If  the  show-mode-in-prompt  variable is enabled, this string is displayed immediately before the
              last line of the primary prompt when vi editing mode is active and in insertion mode.   The  value
              is  expanded  like  a key binding, so the standard set of meta- and control prefixes and backslash
              escape sequences is available.  Use  the  \1  and  \2  escapes  to  begin  and  end  sequences  of
              non-printing  characters,  which  can  be  used to embed a terminal control sequence into the mode
              string.
       visible-stats (Off)
              Si se pone a On, se añade un carácter que represente un tipo de  fichero  según  lo  que  devuelve
              stat(2) cuando se listan las terminaciones posibles.

   Construcciones Condicionales de Readline
       Readline  implementa  una  facilidad similar en espíritu a las características de compilación condicional
       del preprocesador de C que permite que las definiciones de teclas y variables se realicen en  función  de
       pruebas o condiciones. Hay cuatro directivas del analizador que se usan.

       $if    The  $if  construct allows bindings to be made based on the editing mode, the terminal being used,
              or the application using readline.  The text of the test, after any comparison operator,
               extends to the end of the line; unless otherwise noted, no characters are required to isolate it.

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

              term   La  forma  term=  puede  emplearse  para  incluir definiciones de teclas específicas de una
                     terminal determinada, quizás para enlazar las secuencias de teclas generadas por las teclas
                     de función de la terminal. La palabra en la parte derecha del = se prueba contra el  nombre
                     completo  de  la terminal y contra la porción del nombre de la terminal antes del primer -.
                     Esto permite que sun concuerde con sun y con sun-cmd, por ejemplo.

              version
                     The version test may be used to perform comparisons  against  specific  readline  versions.
                     The  version  expands  to  the  current  readline version.  The set of comparison operators
                     includes =, (and ==), !=, <=, >=, <, and >.  The version number supplied on the right  side
                     of  the  operator  consists  of  a  major version number, an optional decimal point, and an
                     optional minor version (e.g., 7.1). If the minor version is omitted, it is assumed to be 0.
                     The operator may be separated from the string version and from the version number  argument
                     by whitespace.

              application
                     La  construcción  application  se  emplea  para  incluir  definiciones  específicas  de  la
                     aplicación. Cada programa que usa la biblioteca readline define el nombre de la aplicación,
                     y en un archivo de inicio se puede comprobar si existe un valor  en  particular.   Esto  se
                     podría  emplear  para  enlazar  secuencias  de  teclas  a funciones útiles para un programa
                     específico. Por ejemplo, la orden siguiente añade una secuencia de teclas que  entrecomilla
                     la palabra en curso o la anterior en bash:

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

              variable
                     The  variable  construct  provides simple equality tests for readline variables and values.
                     The permitted comparison operators are =, ==, and !=.  The variable name must be  separated
                     from the comparison operator by whitespace; the operator may be separated from the value on
                     the  right  hand  side  by  whitespace.   Both  string and boolean variables may be tested.
                     Boolean variables must be tested against the values on and off.

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

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

       $include
              Esta directiva toma como argumento un solo nombre de fichero y lee órdenes y definiciones  de  ese
              fichero. Por ejemplo, la siguiente directiva leería de /etc/inputrc:

              $include  /etc/inputrc

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

       La búsqueda incremental comienza antes de que el usuario haya acabado de teclear la cadena a buscar.  Tan
       pronto como se teclea cada carácter de la cadena de búsqueda, readline muestra la siguiente entrada de la
       historia que concuerde con la cadena que se esté tecleando hasta este  punto.  Una  búsqueda  incremental
       requiere solamente tantos caracteres como se necesiten para encontrar la entrada deseada en el historial.
       Los  caracteres  contenidos  en  la  variable  isearch-terminators  se emplean para terminar una búsqueda
       incremental. Control-G terminará una búsqueda incremental reataurando la línea original. Una vez  que  la
       búsqueda termine, la línea del historial que contenga la cadena de búsqueda pasa a ser la línea actual.

       To  find  other  matching  entries in the history list, type Control-S or Control-R as appropriate.  This
       will search backward or forward in the history for the next entry matching the  search  string  typed  so
       far.   Any  other  key  sequence  bound  to a readline command will terminate the search and execute that
       command.  For instance, a newline will terminate the search and accept the line,  thereby  executing  the
       command from the history list.

       Readline  remembers  the  last  incremental  search  string.   If  two  Control-Rs  are typed without any
       intervening characters defining a new search string, any remembered search string is used.

       Las búsquedas no incrementales leen la cadena de búsqueda entera antes de empezar a buscar en las  líneas
       de  la  lista  de  historia.  La  cadena de búsqueda puede ser tecleada por el usuario o ser parte de los
       contenidos de la línea en curso.

   Nombres de Órdenes de Readline
       Lo siguiente es una lista de los nombres de las órdenes y las secuencias de teclas predeterminadas a  las
       que  están asociadas.  Los nombres de órdenes sin una secuencia de tecla acompañante pertenecen a órdenes
       que no están asociadas a  ninguna  secuencia  de  teclas  de  forma  predeterminada.  En  las  siguientes
       descripciones,  punto  se  refiere  a  la  posición  actual  del cursor y marca se refiere a una posición
       guardada mediante la orden set-mark. El texto en dicho punto y la marca es lo que se conoce como region.

   Órdenes para el Movimiento
       beginning-of-line (C-a)
              Mover al principio de la línea en curso.
       end-of-line (C-e)
              Mover al final de la línea.
       forward-char (C-f)
              Mover un carácter hacia adelante.
       backward-char (C-b)
              Mover un carácter hacia atrás.
       forward-word (M-f)
              Mover adelante hasta el final de la siguiente palabra. Las  palabras  se  componen  de  caracteres
              alfanuméricos (letras y dígitos).
       backward-word (M-b)
              Mover  atrás  hasta  el  principio  de  esta  palabra  o la anterior.  Las palabras se componen de
              caracteres alfanuméricos (letras y dígitos).
       shell-forward-word
              Mover adelante hasta el  final  de  la  siguiente  palabra.  Las  palabras  están  delmitadas  por
              metacaracteres de la shell no entrecomillados.
       shell-backward-word
              Mover  atrás  hasta  el  principio  de  esta palabra o la anterior.  Las palabras se delimitan por
              metacaracteres de la shell no entrecomillados.
       previous-screen-line
              Attempt to move point to the same physical screen column on the  previous  physical  screen  line.
              This  will not have the desired effect if the current readline line does not take up more than one
              physical line or if point is not greater than the length of the prompt plus the screen width.
       next-screen-line
              Attempt to move point to the same physical screen column on the next physical  screen  line.  This
              will  not  have  the  desired  effect  if the current readline line does not take up more than one
              physical line or if the length of the current readline line is not greater than the length of  the
              prompt plus the screen width.
       clear-display (M-C-l)
              Clear the screen and, if possible, the terminal's scrollback buffer, then redraw the current line,
              leaving the current line at the top of the screen.
       clear-screen (C-l)
              Despejar  la  pantalla  y  volver  a  crear  la  línea actual dejándola en la parte superior de la
              pantalla. Si se proporciona un argumento, refresca la línea actual sin despejar la pantalla.
       redraw-current-line
              Refrescar la línea en curso.

   Órdenes para Manipular el Historial
       accept-line (Nueva-línea, Intro)
              Aceptar la línea sin importar dónde esté el cursor. Si esta  línea  no  está  vacía,  añadirla  al
              historial  de  acuerdo  con el estado de la variable HISTCONTROL.  Si la línea es una de las de la
              historia, modificada, entonces restaurar el historial a su estado original.
       previous-history (C-p)
              Obtener la orden anterior del historial, moviéndose hacia atrás en la misma.
       next-history (C-n)
              Obtener la orden siguiente del historial, moviéndose hacia delante en el mismo.
       beginning-of-history (M-<)
              Mover a la primera línea del historial.
       end-of-history (M->)
              Mover al final de la historia de entrada; esto es, la línea que  está  siendo  introducida  en  la
              actualidad.
       operate-and-get-next (C-o)
              Aceptar  la  línea  en  curso  para la ejecución y obtener la línea siguiente relativa a la actual
              desde el historial, para la edición. Si se  añade  un  argumento  numérico  define  la  línea  del
              historial a emplear en lugar de usar al actual.
       fetch-history
              Con  un  argumento numérico, toma dicha entrada del histórico y la copia en la línea actual. Si no
              se da ningún argumento, se desplaza a la primera entrada del mismo.
       reverse-search-history (C-r)
              Buscar hacia atrás empezando en la línea en curso y moviéndose `arriba' a través del historial  si
              es necesario. Esta búsqueda es incremental.
       forward-search-history (C-s)
              Buscar  hacia  adelante empezando en la línea en curso y moviéndose `abajo' a través del historial
              si es necesario. Esta búsqueda es incremental.
       non-incremental-reverse-search-history (M-p)
              Buscar hacia atrás a través del historial empezando en la línea en curso empleando una búsqueda no
              incremental de una cadena suministrada por el usuario.
       non-incremental-forward-search-history (M-n)
              Buscar hacia delante a través del historial empezando en la línea en curso empleando una  búsqueda
              no incremental de una cadena suministrada por el usuario.
       history-search-forward
              Buscar  hacia  adelante  a  través  del historial una cadena de caracteres entre el comienzo de la
              línea en curso y el punto. Esta búsqueda no es incremental.
       history-search-backward
              Buscar hacia atrás a través del historial una cadena de caracteres entre el comienzo de  la  línea
              en curso y el punto. Esta búsqueda no es incremental.
       history-substring-search-backward
              Buscar  hacia  atrás a través del historial una cadena de caracteres entre el comienzo de la línea
              en curso y el punto. Esta búsqueda no es incremental.
       history-substring-search-forward
              Buscar hacia delante a través del historial una cadena de caracteres entre el comienzo de la línea
              en curso y el punto. Esta búsqueda no es incremental.
       yank-nth-arg (M-C-y)
              Insertar el primer argumento de la orden anterior (normalmente la  segunda  palabra  de  la  línea
              anterior)  en  el  punto. Con un argumento n, insertar la n-sima palabra de la orden anterior (las
              palabras en la orden anterior empiezan con la palabra 0). Un argumento negativo inserta la  n-sima
              palabra  desde  el  final  de la orden anterior.Una vez que se computa el argumento n, se extraerá
              como si se definiese esta exapnsión del historial: "!n"
       yank-last-arg (M-., M-_)
              Inserta el último argumento de la orden anterior (la última palabra de  la  anterior  entrada  del
              historial).  Con un argumento numérico, se comporta de igual modo a yank-nth-arg. Invocando varias
              veces yank-last-arg, se desplazará hacia atrás en el historial insertando  la  última  palabra  (o
              aquella  definida  en el argumento de la primera invocación) de cada línea por la que se desplace.
              Cualquier aargumento numérico que se  proporcione  en  las  sucesivas  invocaciones  determina  la
              dirección  de desplazamiento en el historial. Un argumento negativo cambiará dicha dirección hacia
              delante o hacia atrás. Las utilidades de expansión del historial se usan para  extraer  la  última
              palabra como si se especificase "!$".
       shell-expand-line (M-C-e)
              Expandir  la  línea  como hace la shell. Esto realiza la expansión de alias y de historia así como
              todas las expansiones de palabra de la shell. Consulte EXPANSIÓN DEL HISTORIAL más  adelante  para
              una descripción de la expansión de historia.
       history-expand-line (M-^)
              Realizar  la expansión de historia en la línea en curso.  Vea EXPANSIÓN DEL HISTORIAL más adelante
              para una descripción de la expansión de historia.
       magic-space
              Efectuar la expansión de historia en la línea en curso e insertar un espacio.  Vea  EXPANSIÓN  DEL
              HISTORIAL más adelante para una descripción de la expansión de historia.
       alias-expand-line
              Realizar  la expansión de alias en la línea en curso.  Vea ALIAS arriba para una descripción de la
              expansión de alias.
       history-and-alias-expand-line
              Realizar la expansión de historia y alias en la línea en curso.
       insert-last-argument (M-., M-_)
              Un sinónimo para yank-last-arg.
       edit-and-execute-command (C-x C-e)
              Invoca un editor en la línea de órdenes actual ejecutándose el resultado como órdenes de la shell.
              bash intenta invocas $VISUAL, $EDITOR y emacs en ese orden.

   Órdenes para Cambiar el Texto
       end-of-file (generalmente C-d)
              El carácter que determina el fin-de-archivo se define por ejemplo mediante ``stty''.  Si se lee el
              carácter cuando no hay ninguno en la línea y el punto está al principio de la línea,  Readline  lo
              interpreta como el fin de la entrada y devuelve EOF.
       delete-char (C-d)
              Eliminar  el  carácter  en  el  punto. Si esta función está asociada con el mismo carácter que que
              tenga el tty para EOF, como suele serlo C-d, vea anteriormente los efectos.
       backward-delete-char (Borrar)
              Borrar el carácter tras el cursor. Cuando se da un argumento numérico, guardar el texto borrado en
              el anillo de corte.
       forward-backward-delete-char
              Borrar el carácter bajo el cursor, salvo que el cursor esté al final de la línea, en cuyo caso  se
              borrará el carácter que esté detrás.
       quoted-insert (C-q, C-v)
              Añadir  el  siguiente  carácter  tecleado  a  la  línea  tal  cual. Así es como se pueden insertar
              caracteres como C-q, por ejemplo.
       tab-insert (C-v TAB)
              Insertar un carácter de tabulación.
       self-insert (a, b, A, 1, !, ...)
              Insertar el carácter tecleado.
       transpose-chars (C-t)
              Arrastrar el carácter antes del punto hacia adelante sobre el carácter en el punto.  El  punto  se
              mueve  adelante  también.  Si  el  punto  está  al  final  de la línea, entonces transpone los dos
              caracteres antes del punto. Los argumentos negativos no tienen efecto.
       transpose-words (M-t)
              Arrastrar la palabra antes del punto hacia adelante sobre el carácter en el  punto.  El  punto  se
              mueve  adelante  también.  Si  el  punto  está al final de la línea, se transponen los dos últimas
              palabras de dicha línea.
       upcase-word (M-u)
              Poner en mayúsculas la palabra en curso (o la siguiente).  Con  un  argumento  negativo,  pone  la
              anterior, pero no mueve el punto.
       downcase-word (M-l)
              Poner  en  minúsculas  la  palabra  en curso (o la siguiente).  Con un argumento negativo, pone la
              anterior, pero no mueve el punto.
       capitalize-word (M-c)
              Poner en mayúscula la inicial de la palabra en curso (o la siguiente).  Con un argumento negativo,
              pone la anterior, pero no mueve el punto.
       overwrite-mode
              Toggle overwrite mode.  With an explicit positive numeric argument, switches  to  overwrite  mode.
              With  an  explicit  non-positive  numeric argument, switches to insert mode.  This command affects
              only emacs mode; vi mode does overwrite differently.  Each call to  readline()  starts  in  insert
              mode.   In  overwrite  mode, characters bound to self-insert replace the text at point rather than
              pushing the text to the right.  Characters bound to  backward-delete-char  replace  the  character
              before point with a space.  By default, this command is unbound.

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

   Argumentos Numéricos
       digit-argument (M-0, M-1, ..., M--)
              Añadir este dígito al argumento, acumulándolo, o comenzar con un nuevo argumento.  M-- empieza  un
              argumento negativo.
       universal-argument
              Ésta  es  otra  forma  de  especificar  un  argumento.   Si esta orden se hace seguir de uno o más
              dígitos, opcionalmente con un signo menos inicial, estos dígitos definen el argumento.   Si  a  la
              orden siguen dígitos, ejecutar de nuevo universal-argument finaliza el argumento numérico, pero si
              no,  no  se  tiene  en  cuenta.   Como  un  caso especial, si a esta orden sigue inmediatamente un
              carácter que no es ni un dígito ni un signo menos, el número del argumento para la siguiente orden
              se multiplica por cuatro.  El número del argumento es inicialmente  uno,  así  que  ejecutar  esta
              función  por  primera  vez  hace  que  el número del argumento sea cuatro, una segunda vez lo hace
              dieciséis, y así sucesivamente.

   Terminación
       complete (TAB)
              Intentar realizar una terminación del texto antes del punto.  Bash intenta la terminación tratando
              al texto como una variable (si el texto comienza con $), como un nombre de usuario  (si  el  texto
              empieza  con ~), como un nombre de equipo anfitrión (si el texto comienza con @), o como una orden
              (incluyendo alias y funciones), por  este  orden.  Si  nada  de  esto  concuerda,  se  intenta  la
              terminación de un nombre de fichero.
       possible-completions (M-?)
              Listar las terminaciones posibles del texto antes del punto.
       insert-completions (M-*)
              Insertar  todas  las  terminaciones  del  texto  antes  del  punto  que habrían sido generadas por
              possible-completions.
       menu-complete
              Similar to complete, but replaces the word to be completed with a single match from  the  list  of
              possible  completions.   Repeated  execution  of  menu-complete steps through the list of possible
              completions, inserting each match in turn.  At the end of the list of  completions,  the  bell  is
              rung  (subject to the setting of bell-style)  and the original text is restored.  An argument of n
              moves n positions forward in the list of matches; a negative argument may be used to move backward
              through the list.  This command is intended to be bound to TAB, but is unbound by default.
       menu-complete-backward
              Identical to menu-complete, but moves backward through the list of  possible  completions,  as  if
              menu-complete had been given a negative argument.  This command is unbound by default.
       delete-char-or-list
              Deletes  the  character  under  the  cursor  if  not  at  the  beginning  or end of the line (like
              delete-char).  If at the end of the  line,  behaves  identically  to  possible-completions.   This
              command is unbound by default.
       complete-filename (M-/)
              Intentar la terminación de un nombre de fichero en el texto antes del punto.
       possible-filename-completions (C-x /)
              Listar las posibles terminaciones del texto antes del punto, tratándolo como un nombre de fichero.
       complete-username (M-~)
              Intentar la terminación del texto antes del punto, tratándolo como un nombre de usuario.
       possible-username-completions (C-x ~)
              Listar las posibles terminaciones del texto antes del punto, tratándolo como un nombre de usuario.
       complete-variable (M-$)
              Intentar la terminación del texto antes del punto, tratándolo como una variable de la shell.
       possible-variable-completions (C-x $)
              Listar  las  posibles  terminaciones del texto antes del punto, tratándolo como una variable de la
              shell.
       complete-hostname (M-@)
              Intentar la terminación del texto antes del punto, tratándolo como un nombre de equipo anfitrión.
       possible-hostname-completions (C-x @)
              Listar las posibles terminaciones del texto antes del punto, tratándolo como un nombre  de  equipo
              anfitrión.
       complete-command (M-!)
              Intentar  la  terminación  del  texto  antes  del  punto,  tratándolo  como un nombre de orden. La
              terminación de orden intenta hacer concordar el texto con alias, palabras reservadas, funciones de
              la shell, órdenes internas de la shell, y finalmente  nombres  de  ficheros  ejecutables,  en  ese
              orden.
       possible-command-completions (C-x !)
              Listar las posibles terminaciones del texto antes del punto, tratándolo como un nombre de orden.
       dynamic-complete-history (M-TAB)
              Intentar  la  terminación  del texto antes del punto, comparando el texto con líneas del historial
              buscando concordancias para la terminación.
       dabbrev-expand
              Intentar completar el menu en el texto antes  del  punto,  comparando  el  texto  con  líneas  del
              historial buscando concordancias para la terminación.
       complete-into-braces (M-{)
              Efectuar  la  terminación  de  nombres  de  archivos e insertar la lista de terminaciones posibles
              encerrada entre llaves de forma que la lista esté disponible  para  la  shell  (vea  Expansión  de
              llaves arriba).

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

   Varios
       re-read-init-file (C-x C-r)
              Leer  los  contenidos  del  archivo  inputrc,  e  incorporar  cualquier  definición  de  teclas  o
              asignaciones de variables que se hubieran encontrado en él.
       abort (C-g)
              Terminar  abruptamente  la  orden  de  edición  en  curso y tocar el pito de la terminal (según el
              establecimiento de bell-style).
       do-lowercase-version (M-A, M-B, M-x, ...)
              If the metafied character x is uppercase, run the command  that  is  bound  to  the  corresponding
              metafied lowercase character.  The behavior is undefined if x is already lowercase.
       prefix-meta (ESC)
              Convertir en meta el siguiente carácter tecleado.  ESC f es equivalente a Meta-f.
       undo (C-_, C-x C-u)
              Deshacer de forma incremental, recordado separadamente para cada línea.
       revert-line (M-r)
              Deshacer  todos  los  cambios  hechos  a esta línea. Esto es como ejecutar la orden undo las veces
              suficientes como para devolver la línea a su estado inicial.
       tilde-expand (M-&)
              Efectuar la expansión de tilde en la palabra en curso.
       set-mark (C-@, M-<espacio>)
              Establecer la marca en el punto. Si se da un argumento numérico, la  marca  se  establece  en  esa
              posición.
       exchange-point-and-mark (C-x C-x)
              Cambia  el punto con la marca. La posición actual del cursor se pone en la posición guardada, y la
              vieja posición del cursor se guarda como la marca.
       character-search (C-])
              Se lee un carácter y el punto se mueve a la siguiente ocurrencia de  ese  carácter.  Un  argumento
              numérico negativo hace que la búsqueda sea de las ocurrencias anteriores.
       character-search-backward (M-C-])
              Se  lee  un  carácter  y  el  punto se mueve a la anterior ocurrencia de ese carácter. Un numérico
              negativo hace que la búsqueda sea de las ocurrencias siguientes.
       skip-csi-sequence
              Read enough characters to consume a multi-key sequence such as those defined for  keys  like  Home
              and  End.   Such  sequences begin with a Control Sequence Indicator (CSI), usually ESC-[.  If this
              sequence is bound to "\[", keys producing such sequences will have  no  effect  unless  explicitly
              bound  to a readline command, instead of inserting stray characters into the editing buffer.  This
              is unbound by default, but usually bound to ESC-[.
       insert-comment (M-#)
              Without a numeric argument, the value of the readline comment-begin variable is  inserted  at  the
              beginning  of the current line.  If a numeric argument is supplied, this command acts as a toggle:
              if the characters at the beginning of the line do not match the value of comment-begin, the  value
              is inserted, otherwise the characters in comment-begin are deleted from the beginning of the line.
              In  either  case,  the  line  is  accepted  as  if a newline had been typed.  The default value of
              comment-begin causes this command to make the current line a shell comment.  If a numeric argument
              causes the comment character to be removed, the line will be executed by the shell.
       spell-correct-word (C-x s)
              Ejecuta una corrección ortográfica sobre la palabra actual, considerándola un nombre de directorio
              o de archivo, igual que mediante la opción cdspell.Los extremos de las palabras son los mismos que
              los empleados por shell-forward-word.
       glob-complete-word (M-g)
              La palabra antes del punto se trata como un patrón para la expansión de nombres  de  ruta  con  un
              asterisco implícitamente añadido. Este patrón se emplea para generar una lista de posibles nombres
              de archivo para autocompletar.
       glob-expand-word (C-x *)
              La  palabra  antes  del  punto  se trata como un patrón para la expansión de nombres de rutas y la
              lista de nombres de archivo concordantes se inserta, reemplazando a la palabra. Si se  proporciona
              un argumento numérico, se añade un asterisco antes de la expansión del nombre de ruta.
       glob-list-expansions (C-x g)
              Mostrar  la  lista  de  expansiones que habrían sido generadas por glob-expand-word y redibujar la
              línea. Si se aporta un argumento numérico, se añade un asterisco antes de la expansión del  nombre
              de ruta
       dump-functions
              Mostrar  todas las funciones y sus asociaciones de teclas en el flujo de salida de readline. Si se
              da un argumento numérico, la salida se formatea de tal modo que pueda formar parte de  un  fichero
              inputrc.
       dump-variables
              Mostrar  todas las variables de readline a las que se puedan asignar valores, y éstos, en el flujo
              de salida de readline. Si se da un argumento numérico, la salida se formatea  de  tal  manera  que
              pueda formar parte de un fichero inputrc.
       dump-macros
              Mostrar  todas las secuencias de teclas de readline asociadas a macros y las cadenas de caracteres
              asociadas correspondientes. Si se da un argumento numérico, la salida se formatea  de  tal  manera
              que pueda formar parte de un fichero inputrc.
       display-shell-version (C-x C-v)
              Mostrar información de versión acerca de la instancia actual de bash.

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

       First,  the command name is identified.  If the command word is the empty string (completion attempted at
       the beginning of an empty line), any compspec defined with the -E option  to  complete  is  used.   If  a
       compspec  has  been  defined  for  that  command,  the  compspec is used to generate the list of possible
       completions for the word.  If the command word is a full pathname, a compspec for the  full  pathname  is
       searched for first.  If no compspec is found for the full pathname, an attempt is made to find a compspec
       for  the  portion following the final slash.  If those searches do not result in a compspec, any compspec
       defined with the -D option to complete is used as the default.  If there is  no  default  compspec,  bash
       attempts  alias  expansion on the command word as a final resort, and attempts to find a compspec for the
       command word from any successful expansion.

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

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

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

       Next,  the  string  specified  as the argument to the -W option is considered.  The string is first split
       using the characters in the IFS special variable as delimiters.  Shell quoting is honored.  Each word  is
       then  expanded  using  brace  expansion,  tilde  expansion,  parameter  and  variable  expansion, command
       substitution, and arithmetic expansion, as described above under EXPANSION.  The results are split  using
       the  rules described above under Word Splitting.  The results of the expansion are prefix-matched against
       the word being completed, and the matching words become the possible completions.

       After these matches have been generated, any shell function or command  specified  with  the  -F  and  -C
       options  is  invoked.   When the command or function is invoked, the COMP_LINE, COMP_POINT, COMP_KEY, and
       COMP_TYPE variables are assigned values as described above under Shell Variables.  If a shell function is
       being invoked, the COMP_WORDS and COMP_CWORD variables are also set.  When the  function  or  command  is
       invoked,  the  first  argument  ($1)  is the name of the command whose arguments are being completed, the
       second argument ($2) is the word being completed, and the third argument ($3) is the word  preceding  the
       word  being completed on the current command line.  No filtering of the generated completions against the
       word being completed is performed; the function  or  command  has  complete  freedom  in  generating  the
       matches.

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

       Next,  any  command  specified  with  the  -C  option  is invoked in an environment equivalent to command
       substitution.  It should print a list of completions, one per line, to the  standard  output.   Backslash
       may be used to escape a newline, if necessary.

       After  all  of the possible completions are generated, any filter specified with the -X option is applied
       to the list.  The filter is a pattern as used for pathname expansion; a & in the pattern is replaced with
       the text of the word being completed.  A literal & may be escaped with  a  backslash;  the  backslash  is
       removed  before  attempting  a  match.   Any completion that matches the pattern will be removed from the
       list.  A leading ! negates the pattern; in this case any completion not  matching  the  pattern  will  be
       removed.   If  the nocasematch shell option is enabled, the match is performed without regard to the case
       of alphabetic characters.

       Finally, any prefix and suffix specified with the -P and -S options are  added  to  each  member  of  the
       completion  list,  and  the  result  is  returned to the readline completion code as the list of possible
       completions.

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

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

       By  default, if a compspec is found, whatever it generates is returned to the completion code as the full
       set of possible completions.  The default bash completions are not attempted, and the readline default of
       filename completion is disabled.  If the -o bashdefault option was supplied to complete when the compspec
       was defined, the bash default completions are attempted if the compspec generates no matches.  If the  -o
       default option was supplied to complete when the compspec was defined, readline's default completion will
       be performed if the compspec (and, if attempted, the default bash completions)  generate no matches.

       When  a  compspec  indicates  that  directory  name  completion  is  desired, the programmable completion
       functions force readline to append a slash to completed names which are symbolic  links  to  directories,
       subject  to  the  value  of  the  mark-directories  readline  variable,  regardless of the setting of the
       mark-symlinked-directories readline variable.

       There is some support  for  dynamically  modifying  completions.   This  is  most  useful  when  used  in
       combination  with  a  default  completion  specified with complete -D.  It's possible for shell functions
       executed as completion handlers to indicate that completion should be retried by returning an exit status
       of 124.  If a shell function returns 124, and changes the compspec associated with the command  on  which
       completion  is  being  attempted  (supplied  as  the  first  argument  when  the  function  is executed),
       programmable completion restarts from the beginning, with an attempt to find  a  new  compspec  for  that
       command.   This  allows  a  set of completions to be built dynamically as completion is attempted, rather
       than being loaded all at once.

       For instance, assuming that there is a library of compspecs, each kept in a  file  corresponding  to  the
       name of the command, the following default completion function would load completions dynamically:

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

HISTORIAL

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

       On  startup,  the  history  is  initialized  from  the  file  named  by  the  variable  HISTFILE (default
       ~/.bash_history).  The file named by the value of HISTFILE is truncated, if necessary, to contain no more
       than the number of lines specified by the value of HISTFILESIZE.  If HISTFILESIZE is  unset,  or  set  to
       null,  a  non-numeric  value, or a numeric value less than zero, the history file is not truncated.  When
       the history file is read, lines beginning with the history comment character followed  immediately  by  a
       digit  are  interpreted  as  timestamps  for the following history line.  These timestamps are optionally
       displayed depending on the value of the HISTTIMEFORMAT variable.   When  a  shell  with  history  enabled
       exits,  the  last $HISTSIZE lines are copied from the history list to $HISTFILE.  If the histappend shell
       option is enabled (see the description of shopt under  SHELL  BUILTIN  COMMANDS  below),  the  lines  are
       appended to the history file, otherwise the history file is overwritten.  If HISTFILE is unset, or if the
       history file is unwritable, the history is not saved.  If the HISTTIMEFORMAT variable is set, time stamps
       are  written  to  the  history  file, marked with the history comment character, so they may be preserved
       across shell sessions.  This uses the history comment character  to  distinguish  timestamps  from  other
       history  lines.   After  saving  the  history,  the  history  file  is  truncated to contain no more than
       HISTFILESIZE lines.  If HISTFILESIZE is unset, or set to null, a non-numeric value, or  a  numeric  value
       less than zero, the history file is not truncated.

       La orden interna fc (vea ÓRDENES NATIVAS DE LA SHELL más adelante) puede emplearse para listar o editar y
       re-ejecutar una porción de la lista de historia.  La orden interna history se puede utilizar para mostrar
       o  modificar  o  volver  a  ejecutar  una  parte del historial.  Cuando se emplea la edición de líneas de
       órdenes, están disponibles las órdenes de búsqueda en cada modo de edición  que  proporcionan  acceso  al
       historial.

       la  shell  permite  el  control sobre qué órdenes se guarden en el historial. Las variables HISTCONTROL y
       HISTIGNORE se pueden definir de forma que la  shell  guarde  solamente  un  subconjunto  de  las  órdenes
       introducidas.   La opción de la shell cmdhist, si está habilitada, hace que la shell intente guardar cada
       línea de una orden multi-línea en la misma entrada de la historia, añadiendo  punto  y  comas  donde  sea
       necesario  para  preservar  la  corrección  sintáctica.   La opción de la shell lithist hace que la shell
       guarde la orden con saltos de línea empotrados en vez de punto y comas. Vea la descripción  de  la  orden
       interna shopt más adelante en ÓRDENES NATIVAS DE LA SHELL para información sobre cómo establecer y anular
       opciones de la shell.

EXPANSIÓN DEL HISTORIAL

       la shell admite una característica de expansión de historia que es parecida a la expansión de historia en
       csh.   Esta  sección describe qué características sintácticas están disponibles. Esta característica está
       habilitada de forma predeterminada en shells interactivos, y puede ser desactivada mediante la opción  +H
       de  la  orden  interna  set (vea ÓRDENES NATIVAS DE LA SHELL más adelante). Los shells no interactivos no
       realizan la expansión de la historia de forma predeterminada.

       Las expansiones del historial introducen palabras desde el historial en el flujo de entrada,  facilitando
       así  la repetición de órdenes, la inserción de argumentos de una orden anterior en la línea de entrada en
       curso, o la corrección rápida de errores en una orden anterior.

       La expansión del historial se realiza inmediatamente tras la lectura de una línea completa, antes de  que
       la  shell  la divida en palabras. Tiene lugar en cada línea por separado sin considerar el entrecomillado
       de anteriores líneas. Tiene lugar en dos fases.  En la primera se determina qué línea del  historial  hay
       que  emplear  durante  la  sustitución.   En  la  segunda  se  seleccionan porciones de esa línea para su
       inclusión en la actual.  La línea seleccionada desde el historial es el evento, y la porción de esa línea
       sobre la que se actúa son palabras.  Se dispone de  varios  modificadores  para  manipular  las  palabras
       seleccionadas.  La  línea se divide en palabras de la misma manera que cuando se lee la entrada, de forma
       que ciertas palabras separadas por meta-caracteres rodeadas por comillas se consideran una sola  palabra.
       Las  expansiones del historial se introducen por la aparición del carácter de expansión de historial, que
       es por omisión !.  Solo las barras inversas (\) y las comillas simples pueden  proteger  al  carácter  de
       expansión  del  historial,  aunque  dicho carácter se considera entrecomillado si está justo antes de una
       comilla doble de cierre de una cadena entre ese tipo de comillas.

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

       Se pueden emplear ciertas opciones que se ponen con la orden interna shopt para cambiar el comportamiento
       de la expansión de historia.  Si la opción de la shell histverify está activa (vea la descripción  de  la
       orden interna shopt), y se está usando readline, las sustituciones de historia no se pasan inmediatamente
       al  analizador  de la shell.  En vez de eso, la línea expandida se vuelve a cargar en el búfer de edición
       de readline para una modificación posterior.  Si se  está  usando  readline  y  la  opción  de  la  shell
       histreedit  está activada, una sustitución de historia fallida se volverá a cargar en el búfer de edición
       de readline para su corrección.  La opción -p de la orden interna history se puede emplear para  ver  qué
       hará  una  expansión  de  historia  antes  de  usarse.  La opción -s de la orden interna history se puede
       emplear para añadir órdenes al  final  del  historial  sin  ejecutarlas  realmente,  de  modo  que  estén
       disponibles para rellamadas posteriores.

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

   Designadores de Eventos
       Un  designador  de evento es una referencia a una entrada de línea de orden en el historial. Salvo que la
       referencia sea absoluta, la posición de los eventos será relativa a la posición actual en el historial.

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

   Designadores de Palabras
       Los designadores de palabras se emplean para seleccionar las palabras que se deseen  del  evento.   Un  :
       separa la especificación de evento del designador de palabra.  Puede omitirse si el designador de palabra
       comienza  con un ^, $, *, -, o %.  Las palabras se numeran desde el principio de la línea, con la primera
       palabra denotada por 0 (cero).  Las palabras se insertan en la línea  en  curso  separadas  por  espacios
       simples.

       0 (cero)
              La palabra número 0. Para la shell, ésta es la palabra de la orden.
       n      La n-sima palabra.
       ^      El primer argumento. Esto es, la palabra número 1.
       $      The  last word.  This is usually the last argument, but will expand to the zeroth word if there is
              only one word in the line.
       %      La palabra que concuerda con la búsqueda más reciente de '?cadena?', si dicha cadena comienza  con
              un carácter que forma parte de una palabra.
       x-y    Un intervalo de palabras; `-y' abrevia `0-y'.
       *      Todas  las  palabras menos la número cero. Esto es un sinónimo de `1-$'.  No es un error emplear *
              si solo hay una palabra en el evento; en este caso se devuelve la cadena vacía.
       x*     Abreviatura de x-$.
       x-     Abrevia x-$ como x*, pero omite la última palabra. Si no se indica x, se  usará  el  valor  0  por
              defecto.

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

   Modificadores
       Tras  el  designador  opcional  de  palabra,  puede  haber  una  secuencia de uno o más de los siguientes
       modificadores, precedido cada uno por un ':'. Esto modifica o  edita  la/s  palabra/s  seleccionadas  del
       evento del historial.

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

ÓRDENES NATIVAS DE LA SHELL

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

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

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

       bg [espectrab ...]
              Reanuda la tarea suspendida espectrab en segundo plano, como si se  hubiera  iniciado  con  &.  Si
              espectrab  no  está  presente,  se  emplea  la noción que tiene la shell de la tarea en curso.  bg
              espectrab devuelve 0 a menos que se ejecute cuando el control  de  tareas  esté  deshabilitado,  o
              cuando  se  ejecute  con  el control de tareas habilitado si espectrab no se encontró, o cuando se
              inició sin control de tareas.

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

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

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

       builtin orden-interna [argumentos]
              Ejecuta  la orden interna de la shell especificada, pasándole los argumentos, y devuelve su estado
              de salida.  Esto es útil cuando se define una función cuyo  nombre  es  el  mismo  que  una  orden
              interna  de  la shell, reteniendo la funcionalidad de esa orden interna dentro de la función.  Por
              ejemplo, la orden interna cd se puede redefinir normalmente de esta manera.  El estado  de  salida
              es `falso' si orden-interna no es una orden incorporada de la shell.

       caller [expr]
              Returns  the context of any active subroutine call (a shell function or a script executed with the
              . or source builtins).  Without expr, caller displays the line number and source filename  of  the
              current  subroutine call.  If a non-negative integer is supplied as expr, caller displays the line
              number, subroutine name, and source file corresponding to that position in the  current  execution
              call stack.  This extra information may be used, for example, to print a stack trace.  The current
              frame  is  frame  0.  The return value is 0 unless the shell is not executing a subroutine call or
              expr does not correspond to a valid position in the call stack.

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

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

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

              The matches will be generated in the same way as if the programmable completion code had generated
              them directly from a completion specification with the same flags.  If  word  is  specified,  only
              those completions matching word will be displayed.

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

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

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

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

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

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

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

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

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

              Using  `+'  instead of `-' turns off the attribute instead, with the exceptions that +a and +A may
              not be used to destroy array variables and +r will not remove the readonly attribute.   When  used
              in  a function, declare and typeset make each name local, as with the local command, unless the -g
              option is supplied.  If a variable name is followed by =value, the value of the variable is set to
              value.  When using -a or -A  and  the  compound  assignment  syntax  to  create  array  variables,
              additional  attributes  do  not  take  effect until subsequent assignments.  The return value is 0
              unless an invalid option is encountered, an attempt is  made  to  define  a  function  using  ``-f
              foo=bar'',  an  attempt  is  made  to assign a value to a readonly variable, an attempt is made to
              assign a value to an array variable without using  the  compound  assignment  syntax  (see  Arrays
              above),  one  of  the  names  is  not  a valid shell variable name, an attempt is made to turn off
              readonly status for a readonly variable, an attempt is made to turn off array status for an  array
              variable, or an attempt is made to display a non-existent function with -f.

       dirs [-clpv] [+n] [-n]
              Sin  opciones, muestra la lista de directorios que recuerda. La forma predeterminada de mostrarlos
              es en una sola línea con los nombres de directorios separados por espacios.   Los  directorios  se
              añaden  a la lista (en realidad, una pila) con la orden pushd; la orden popd los quita de la pila.
              El directorio actual es siempre el primero en la pila.
              -c     Limpia la pila de directorios borrando todas las entradas.
              -l     Crea un listado empleando los nombres de ruta completos; por defecto, el directorio home se
                     designa utilizando una tilde.
              -p     Muestra la pila de directorios con una entrada por cada línea.
              -v     Muestra la pila de directorios con una entrada por línea, prefijando cada  entrada  con  su
                     índice en la pila.
              +n     Muestra  la n-sima entrada contando desde la izquierda de la lista mostrada por dirs cuando
                     se llama sin opciones, empezando por cero.
              -n     Muestra la n-sima entrada contando desde la derecha de la lista mostrada por dirs cuando se
                     llama sin opciones, empezando por cero.

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

       disown [-ar] [-h] [espectrab ... | pid ... ]
              Sin  opciones,  cada  espec_tarea  se  quita  de  la tabla de tareas activas.  Si no está presente
              espec_tarea ni se indican las opciones -a ni -r, se utlizará la tarea actual. Si se da  la  opción
              -h,  cada espec_tarea no se quita de la tabla, sino que se marca de manera que no se le enviará la
              señal SIGHUP si la shell recibe una señal SIGHUP. Si no se suministra  espec_trab,  la  opción  -a
              significa quitar o marcar todas las tareas; la opción -r sin un argumento espec_tarea restringe la
              operación  a  las  tareas  en  ejecución.   El valor de retorno es 0 a menos que espec_tarea no se
              refiera a una tarea válida.

       echo [-neE] [arg ...]
              Repite los args, separados por espacios, seguidos por un salto de línea.  El estado de retorno  es
              siempre  0,  salvo  que  ocurra un error de escritura. Si se especifica -n, se suprime el salto de
              línea final.  Si se da la opción -e, se activa la interpretación de los siguientes caracteres (con
              barra inversa). La opción -E desactiva la interpretación de estos caracteres de escape, incluso en
              sistemas donde se interpreten de forma predeterminada. La opción de la shell xpg_echo puede usarse
              para determinar dinámicamente si echo expandirá  o  no  estos  caracteres  por  defecto.  echo  no
              interpreta  --  para  indicar el fin de las opciones. echo interpreta las siguientes secuencias de
              escape:echo no interpreta -- como  el  fin  de  las  opciones.   echo  interpreta  las  siguientes
              secuencias de escape:
              \a     alerta (pitido)
              \b     espacio-atrás
              \c     elimina cualquier otra salida
              \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  el  carácter  de  ocho  bites  cuyo  código  es  el valor octal nnn (de cero 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)

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

       eval [arg ...]
              Los args se leen y concatenan juntos para formar una sola orden. Entonces la shell lee  y  ejecuta
              esta  orden, y su estado de salida se devuelve como el valor de eval.  Si no hay args, o solamente
              argumentos vacíos, eval devuelve 0.

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

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

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

       fc [-e editor] [-lnr] [primero] [último]
       fc -s [pat=rep] [ord]
              The first form selects a range of commands from first to last from the history list  and  displays
              or  edits  and  re-executes them.  First and last may be specified as a string (to locate the last
              command beginning with that string) or as a number (an  index  into  the  history  list,  where  a
              negative  number  is used as an offset from the current command number).  When listing, a first or
              last of 0 is equivalent to -1 and -0  is  equivalent  to  the  current  command  (usually  the  fc
              command);  otherwise 0 is equivalent to -1 and -0 is invalid.  If last is not specified, it is set
              to the current command for listing (so that ``fc -l -10'' prints the  last  10  commands)  and  to
              first otherwise.  If first is not specified, it is set to the previous command for editing and -16
              for listing.

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

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

              Si se usa la primera forma, el valor de retorno es 0 a menos que se encuentre una opción  inválida
              o  que  primero  o último especifiquen líneas de historia fuera de intervalo.  Si se suministra la
              opción -e, el valor de retorno es el de la última orden ejecutada, o `fallo' si  ocurre  un  error
              con  el  archivo temporal de órdenes. Si se emplea la segunda forma, el estado de retorno es de la
              orden reejecutada, a menos que ord no especifique una línea válida de historia, en  cuyo  caso  fc
              devuelve `fallo'.

       fg [espectrab]
              Reanuda  espectrab  en  primer  plano,  pasando  a  ser  la  tarea 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 tareas está
              desactivado o, cuando se ejecuta con el control de tareas activado, si espectrab no especifica  un
              trabajo válido o espectrab se refiere a una tarea iniciada sin control de tareas.

       getopts cadenaopcs nombre [arg ...]
              getopts is used by shell procedures to parse positional parameters.  optstring contains the option
              characters to be recognized; if a character is followed by a colon, the option is expected to have
              an  argument,  which  should  be  separated  from  it by white space.  The colon and question mark
              characters may not be used as option characters.  Each time it is invoked, getopts places the next
              option in the shell variable name, initializing name if it does not exist, and the  index  of  the
              next  argument to be processed into the variable OPTIND.  OPTIND is initialized to 1 each time the
              shell or a shell script is invoked.  When an option requires  an  argument,  getopts  places  that
              argument  into  the  variable  OPTARG.   The shell does not reset OPTIND automatically; it must be
              manually reset between multiple calls to getopts within the same shell invocation if a new set  of
              parameters is to be used.

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

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

              getopts  puede  informar  de  errores  de  dos  maneras. Si el primer carácter de optstring es dos
              puntos, se emplea un informe de error silencioso.  En un modo  normal  de  operación  se  muestran
              mensajes  de  diagnósticos cuando se encuentran opciones inválidas o faltan argumentos de opciones
              que los requieran.  Si la variable OPTERR se pone a 0, no se mostrará  ningún  mensaje  de  error,
              incluso si el primer carácter de optstring no es dos puntos.

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

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

              getopts devuelve `verdad' si una opción, especificada o no, se encuentra.  Devuelve `falso' si  se
              encuentra el final de las opciones o si ocurre un error.

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

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

              The return status is 0 unless no command matches pattern.

       history [n]
       history -c
       history -d desplazamiento
       history -d inicio-final
       history -anrw [nombre-archivo]
       history -p arg [arg ...]
       history -s arg [arg ...]
              Sin  opciones, muestra el historial de órdenes con su números de línea. Las líneas marcadas con un
              * han sido modificadas. Un argumento de n lista solamente las últimas n líneas. Si  está  definida
              (y  no  es  nula)  la  variable  de  shell  HISTTIMEFORMAT  se  usará  para formatear la salida de
              strftime(3) donde se muestra la fecha y hora de cada  entrada  del  historial.  No  se  intercalan
              espacios  en blanco entre la fecha y hora y la línea del historial. Puede indicarse nombre_archivo
              para definir el nombre del archivo de historial,sino se indica se usará el valor de  HISTFILE.  Si
              se dan opciones, tendrán el siguiente significado:
              -c     Limpia el historial borrando todas las entradas.
              -d posición
                     Borra  la posición posición del historial. Si se define un valor negativo para posición, se
                     interpreta como una posición más adelante que la de la última línea del historial. Esto es,
                     que los valores negativos cuentan hacia atrás a partir del final del historial:  un  índice
                     de -1 hace referencia a la orden actual history -d.
              -d inicio-fin
                     Borra  las  entradas  del  historial entre las posiciones inicio y fin ambas inclusive. Los
                     valores positivos y negativos para estas posiciones se interpretan tal  como  se  describió
                     anteriormente.
              -a     Añade  nuevas  líneas  (las  introducidas  desde  el inicio de la actual sesión de bash) al
                     historial.
              -n     Lee las líneas de órdenes que aún no han sido leídas y las introduce en el historial. Éstas
                     son las líneas añadidas al historial desde el comienzo de la sesión de bash actual.
              -r     Lee el contenido del historial y lo añade a la lista actual.curso.
              -w     Escribe la historia en curso en el historial, sobreescribiendo su contenido.
              -p     Realiza la sustitución de historia de los siguientes args y  muestra  el  resultado  en  la
                     salida  estándar.   No  almacena  los  resultados en el archivo de historia.  Cada arg debe
                     protegerse para deshabilitar la expansión de historia normal.
              -s     Almacena los args en el historial como una sola entrada. La última orden del  hisotrial  se
                     elimina antes de que se añadan los args.

              If  the  HISTTIMEFORMAT  variable  is set, the time stamp information associated with each history
              entry is written to the history file, marked with the history comment character.  When the history
              file is read, lines beginning with the history comment character followed immediately by  a  digit
              are  interpreted  as  timestamps for the following history entry.  The return value is 0 unless an
              invalid option is encountered, an error occurs while reading  or  writing  the  history  file,  an
              invalid  offset or range is supplied as an argument to -d, or the history expansion supplied as an
              argument to -p fails.

       jobs [-lnprs] [ espectrab ... ]
       jobs -x orden [ args ... ]
              La primera forma lista las tareas activas. Las opciones tienen los significados siguientes:
              -l     Lista PIDs además de la información normal.
              -n     Muestra información solamente sobre tareas 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 tareas.
              -r     Muestra únicamente las tareas en ejecución.
              -s     Muestra únicamente las tareas detenidas.

              Si se da espectrab, la salida se restringe a la información sobre esa tarea. El estado de  retorno
              es cero a menos que se encuentre una opción inválida o se suministre un espectrab inválido.

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

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

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

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

       logout Sale de la shell.

       mapfile [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
       readarray [-d delim] [-n count] [-O origin] [-s count] [-t] [-u fd] [-C callback] [-c quantum] [array]
              Read lines from the standard input into the indexed array variable array, or from file  descriptor
              fd  if  the  -u  option  is  supplied.   The  variable  MAPFILE is the default array.  Options, if
              supplied, have the following meanings:
              -d     The first character of delim is used to terminate each input line, rather than newline.  If
                     delim is the empty string, mapfile will terminate a line when it reads a NUL character.
              -n     Copy at most count lines.  If count is 0, all lines are copied.
              -O     Comienza asignando al vector en el índice origen. Por defecto el índice es el cero.
              -s     Elimina las primeras numero líneas leidas.
              -t     Elimina el delim del final (nueva línea, por defecto) en cada línea que lea.
              -u     Lee líneas desde eldescriptor de archivos fd en lugar de hacerlo desde la entrada estándar.
              -C     Evaluate callback each time quantum lines are read.  The -c option specifies quantum.
              -c     Specify the number of lines read between each call to callback.

              If -C is specified without -c, the default quantum is 5000.  When callback  is  evaluated,  it  is
              supplied  the  index  of the next array element to be assigned and the line to be assigned to that
              element as additional arguments.  callback is evaluated after the line  is  read  but  before  the
              array element is assigned.

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

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

       popd [-n] [+n] [-n]
              Quita entradas de la pila de directorios. Los elementos se numeran empezando por el cero a  partir
              del primer directorio listado por dirs. Si no se indica ningún argumento, popd eliminará el primer
              directorio  de  la  pila  moviéndose  hacia el que quedaría después en primer lugar. Si se indican
              argumentos, tendrán el siguiente significado:
              -n     Suprime el normal cambio de directorio  cuando  se  desapilan  directorios,  de  forma  que
                     solamente la pila se manipula.
              +n     Elimina  la  n-ésima  entrada  de  la  pila  comenzando  por la parte izquierda de la lista
                     mostrada por dirs,  empezando  por  cero.  Por  ejemplo:  ``popd  +0''  elimina  el  primer
                     directorio, ``popd +1'' el segundo.
              -n     Elimina  la  n-sima  entrada  (contando  desde  la  derecha  de la lista mostrada por dirs,
                     empezando por cero. Por ejemplo: ``popd -0'' Elimina el último directorio, ``popd  -1''  el
                     siguiente al último.

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

              De lo contrario, popd devuelve 'falso' si se encuentra una opción inválida, la pila de directorios
              está vacía, se especifica una entrada de la pila de directorios no existente.

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

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

              formato  es  un cadena de caracteres con tres tipos de objetos: caracteres simples que simplemente
              se envían a la salida estándar, caracteres de escape que son convertidos antes de  enviarse  a  la
              salida  estándar  y  especificaciones  de  formatos  que  hacen  que  se  impriman  los siguientes
              argumentos. Además de las especificaciones del  formato  estándar  de  printf(1),  printf  también
              interpreta las siguientes extensiones:
              %b     hace  que  printf  expanda la barra invertida en el correspondiente argumento como lo haría
                     echo -e.
              %q     causes printf to output the corresponding argument in a format that can be reused as  shell
                     input.
              %Q     Igual   que   %q  salvo  que  aplica  la  precisión  definida  en  el  argumento  antes  de
                     entrecomillarlo.
              %(datefmt)T
                     causes printf to output the date-time string resulting  from  using  datefmt  as  a  format
                     string  for  strftime(3).  The corresponding argument is an integer representing the number
                     of seconds since the epoch.  Two special argument values may be  used:  -1  represents  the
                     current  time,  and  -2  represents  the  time  the  shell  was invoked.  If no argument is
                     specified, conversion behaves as if -1 had been given.  This is an exception to  the  usual
                     printf behavior.

              The  %b,  %q,  and  %T  directives all use the field width and precision arguments from the format
              specification and write that many bytes from (or use that wide a field for) the expanded argument,
              which usually contains more characters than the original.

              Arguments to non-string format specifiers are treated as C constants, except that a  leading  plus
              or  minus  sign is allowed, and if the leading character is a single or double quote, the value is
              the ASCII value of the following character.

              El formato se reutiliza tanto como sea necesario  para  consumir  todos  los  argumentos.   Si  el
              formato  requiere más argumentos que los que se suministran, las especificaciones de formato extra
              se comportan como si se hubiera dado un valor cero o una cadena  vacía,  según  lo  apropiado.  El
              valor de retorno será cero si finaliza con éxito y otra cifra si falla.

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

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

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

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

       pwd [-LP]
              Print  the  absolute  pathname of the current working directory.  The pathname printed contains no
              symbolic links if the -P option is supplied or the -o physical option to the set  builtin  command
              is  enabled.   If  the  -L  option  is used, the pathname printed may contain symbolic links.  The
              return status is 0 unless an error occurs while reading the name of the current  directory  or  an
              invalid option is supplied.

       read [-ers] [-a aname] [-d delim] [-i text] [-n nchars] [-N nchars] [-p prompt] [-t timeout] [-u fd]
       [nombre ...]
              One  line  is read from the standard input, or from the file descriptor fd supplied as an argument
              to the -u option, split into words as described above under Word Splitting, and the first word  is
              assigned  to  the  first  name,  the second word to the second name, and so on.  If there are more
              words than names, the remaining words and their intervening delimiters are assigned  to  the  last
              name.   If  there  are  fewer words read from the input stream than names, the remaining names are
              assigned empty values.  The characters in IFS are used to split the line into words using the same
              rules the shell uses  for  expansion  (described  above  under  Word  Splitting).   The  backslash
              character  (\)  may be used to remove any special meaning for the next character read and for line
              continuation.  Options, if supplied, have the following meanings:
              -a array
                     Las palabras se asignan secuencialmente a  los  elementos  de  la  variable  vector  array,
                     empezando  por  0.   Se anula la posible previa definición de array antes de que se asignen
                     nuevos valores.  Otros argumentos nombre no se tienen en consideración.
              -d delim
                     The first character of delim is used to terminate the input line, rather than newline.   If
                     delim is the empty string, read will terminate a line when it reads a NUL character.
              -e     If  the  standard input is coming from a terminal, readline (see READLINE above) is used to
                     obtain the line.  Readline uses the current (or default, if line editing was not previously
                     active) editing settings, but uses readline's default filename completion.
              -i text
                     If readline is being used to read the line, text is placed into the editing  buffer  before
                     editing begins.
              -n nchars
                     read  returns  after  reading  nchars characters rather than waiting for a complete line of
                     input, but honors a  delimiter  if  fewer  than  nchars  characters  are  read  before  the
                     delimiter.
              -N nchars
                     read  returns  after  reading  exactly nchars characters rather than waiting for a complete
                     line of input,  unless  EOF  is  encountered  or  read  times  out.   Delimiter  characters
                     encountered  in  the  input are not treated specially and do not cause read to return until
                     nchars characters are read.  The result is not split on the characters in IFS;  the  intent
                     is  that  the  variable  is  assigned  exactly  the  characters read (with the exception of
                     backslash; see the -r option below).
              -p prompt
                     Display prompt on standard error, without a trailing newline, before attempting to read any
                     input.  The prompt is displayed only if input is coming from a terminal.
              -r     Backslash does not act as an escape character.  The backslash is considered to be  part  of
                     the  line.   In  particular,  a  backslash-newline  pair  may  not  then  be used as a line
                     continuation.
              -s     Modo sigiloso. Si la entrada procede de un terminal, no se muestran lo caracteres.
              -t timeout
                     Cause read to time out and return failure if a complete  line  of  input  (or  a  specified
                     number of characters)  is not read within timeout seconds.  timeout may be a decimal number
                     with  a  fractional  portion following the decimal point.  This option is only effective if
                     read is reading input from a terminal, pipe, or other special file; it has no  effect  when
                     reading  from regular files.  If read times out, read saves any partial input read into the
                     specified variable name.  If timeout is 0, read returns immediately, without trying to read
                     any data.  The exit status is 0 if input is available on the specified file descriptor,  or
                     the  read  will return EOF, non-zero otherwise.  The exit status is greater than 128 if the
                     timeout is exceeded.
              -u fd  Read input from file descriptor fd.

              If no names are supplied, the line read, without the ending delimiter but otherwise unmodified, is
              assigned to the variable REPLY.  The exit status is zero, unless end-of-file is encountered,  read
              times  out  (in  which  case the status is greater than 128), a variable assignment error (such as
              assigning to a readonly variable) occurs, or  an  invalid  file  descriptor  is  supplied  as  the
              argument to -u.

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

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

       set [-abefhkmnptuvxBCEHPT] [-o nombre-opción] [--] [-] [arg ...]
       set [+abefhkmnptuvxBCEHPT] [+o nombre-opción] [--] [-] [arg ...]
              Without  options, display the name and value of each shell variable in a format that can be reused
              as input for setting or resetting the currently-set  variables.   Read-only  variables  cannot  be
              reset.   In  posix  mode,  only shell variables are listed.  The output is sorted according to the
              current locale.  When options are specified, they set or unset shell  attributes.   Any  arguments
              remaining  after  option  processing  are  treated as values for the positional parameters and are
              assigned, in order, to $1, $2, ... $n.  Options, if specified, have the following meanings:
              -a      Cada variable o función que se modifiquen o creen tendrán el atributo de exportación y  se
                      marcarán para exportar en el entorno de subsiguientes órdenes.
              -b      Informa  del  estado  de  las tareas en segundo plano terminadas inmediatamente, en vez de
                      esperar a justo antes de mostrar el siguiente indicador primario. Esto  solo  es  efectivo
                      cuando el control de tareas está habilitado.
              -e      Exit  immediately if a pipeline (which may consist of a single simple command), a list, or
                      a compound command (see SHELL GRAMMAR above), exits with a  non-zero  status.   The  shell
                      does  not exit if the command that fails is part of the command list immediately following
                      a while or until keyword, part of the test following the if or elif reserved  words,  part
                      of  any  command  executed in a && or || list except the command following the final && or
                      ||, any command in a pipeline but the last, or if the  command's  return  value  is  being
                      inverted  with  !.   If a compound command other than a subshell returns a non-zero status
                      because a command failed while -e was being ignored, the shell does not exit.  A  trap  on
                      ERR,  if  set,  is  executed  before  the  shell  exits.  This option applies to the shell
                      environment and each subshell environment separately (see  COMMAND  EXECUTION  ENVIRONMENT
                      above),  podrá provocar que las subshells finalizen antes de ejecutar todas las órdenes en
                      la subshell.

                      If a compound command or shell function executes in a context where -e is  being  ignored,
                      none  of  the  commands  executed  within  the  compound  command or function body will be
                      affected by the -e setting, even if -e is set and a command returns a failure status.   If
                      a  compound  command  or  shell  function sets -e while executing in a context where -e is
                      ignored, that setting will not have any effect until the compound command or  the  command
                      containing the function call completes.
              -f      Deshabilita la expansión de nombres de rutas.
              -h      Recuerda  la localización de órdenes una vez que se buscan para la 1ª ejecución. Esto está
                      habilitado de forma predeterminada.
              -k      Todos los argumentos en forma de sentencias de asignación se ponen en el entorno para  una
                      orden, no solamente aquéllos que precedan al nombre de la orden.
              -m      Modo  de  monitorización.   Se  habilita  el control de tareas. Esta opción está puesta de
                      forma predeterminada para shells interactivos en sistemas que lo admitan (vea  CONTROL  DE
                      TAREAS anteriormente).  above).  Todos los procesos se ejecutan en un grupo separado. Cada
                      vez  que  finalice  una  tarea  en segundo plano, la shell mostrará una línea indicando su
                      estado de salida.
              -n      Lee órdenes pero no las ejecuta. Esto puede emplearse para comprobar si  un  guión  de  la
                      shell tiene errores de sintaxis. Para shells interactivos esta opción no tiene efecto.
              -o nombre-opción
                      El nombre-opción puede ser uno de los siguientes:
                      allexport
                              Lo miso que -a.
                      braceexpand
                              Lo miso que -B.
                      emacs   Emplea  una interfaz de edición de líneas de órdenes al estilo de emacs. Esto está
                              activo de forma predeterminada cuando la shell es interactiva, a menos que se haya
                              iniciado con la opción --noediting. Esto también afecta a la interfaz  de  edición
                              empleada para read -e.
                      errexit Lo mismo que -e.
                      errtrace
                              Lo mismo que -E.
                      functrace
                              Lo mismo que -T.
                      hashall Lo mismo que -h.
                      histexpand
                              Lo mismo que -H.
                      history Activa  el  histórico  de  órdenes,  tal  como se describe en above en el apartado
                              HISTORIAL.  Esta opción está habilitada por omisión en shells interactivos.
                      ignoreeof
                              The effect is as if the shell command ``IGNOREEOF=10''  se  hubiera  ejecutado  la
                              orden de la shell (vea Variables de la shell) above).
                      keyword Lo mismo que -k.
                      monitor Lo mismo que -m.
                      noclobber
                              Lo mismo que -C.
                      noexec  Lo mismo que -n.
                      noglob  Lo mismo que -f.
                      nolog   Currently ignored.
                      notify  Lo mismo que -b.
                      nounset Lo mismo que -u.
                      onecmd  Lo mismo que -t.
                      physical
                              Lo mismo que -P.
                      pipefail
                              If  set,  the  return  value  of  a  pipeline is the value of the last (rightmost)
                              command to exit with a non-zero status, or zero if all commands  in  the  pipeline
                              exit successfully.  This option is disabled by default.
                      posix   Cambia  el  comportamiento  de  bash cuando el funcionamiento difiera del estándar
                              POSIX, de forma que concuerde con éste(posix mode). Consulte VEASE  TAMBIÉN  below
                              más  delante  si  quiere leer un documento donde se detalla la influencia del modo
                              posix sobre el funcionamiento de bash.
                      privileged
                              Lo mismo que -p.
                      verbose Lo mismo que -v.
                      vi      Emplea una interfaz de edición de líneas de órdenes al estilo de vi. Esto  también
                              afecta a la interfaz de edición empleada por read -e.
                      xtrace  Lo mismo que -x.
                      Si se da -o sin ningún nombre-opción, se muestran los valores de las opciones activas.  Si
                      se  da  +o sin ningún nombre-opción, se muestra en la salida estándar una serie de órdenes
                      set para recrear las opciones según están puestas o no actualmente.
              -p      Turn on privileged mode.  In this mode, the $ENV and $BASH_ENV files  are  not  processed,
                      shell  functions  are  not  inherited  from  the environment, and the SHELLOPTS, BASHOPTS,
                      CDPATH, and GLOBIGNORE variables, if they appear in the environment, are ignored.  If  the
                      shell is started with the effective user (group) id not equal to the real user (group) id,
                      and  the  -p  option is not supplied, these actions are taken and the effective user id is
                      set to the real user id.  If the -p option is supplied at startup, the effective  user  id
                      is  not  reset.  Turning this option off causes the effective user and group ids to be set
                      to the real user and group ids.
              -r      Activa el modo restringido de la shell. Una vez  que  se  activa,  esta  opción  no  puede
                      desactivarse.
              -t      Sale tras leer y ejecutar una sola orden.
              -u      Trata  las  variables  no definidas, los parámetros distintos a los especiales "@" y "*" o
                      las variables vectoriales con subíndice "@" o "*"  como un  error  cuando  se  realiza  la
                      expansión  de  parámetros. Si la expansión se intenta hacer sobre una variable o parámetro
                      no definidos, la shell mostrará un mensaje de error y, si no  está  en  modo  interactivo,
                      finalizará con un estado distinto de cero.
              -v      Repite en la salida las líneas de entrada de la shell tras leerlas.
              -x      After  expanding  each  simple  command,  for  command,  case  command, select command, or
                      arithmetic for command, display the expanded value of PS4, followed by the command and its
                      expanded arguments or associated word list.
              -B      la shell realiza la expansión de llaves (vea Expansión de llaves arriba).   above).   Está
                      activado por defecto.
              -C      Si  está  activo,  bash  no  sobreescribe  un  archivo  existente  con  los  operadores de
                      redirección >, >&, ni <>.  Esto  puede  cambiarse  cuando  se  crean  archivos  de  salida
                      mediante el empleo del operador >| en vez de >.
              -E      Si está definida, cualquier trampa en ERR será heredada por las funciones de la shell, las
                      sustituciones  de órdenes y las órdenes ejecutadas en subshells. En general, la trampa ERR
                      no se hereda en estos casos.
              -H      Permite la sustitución de historia mediante !.  Esta  opción  está  activada  por  omisión
                      cuando la shell es interactivo.
              -P      If  set, the shell does not resolve symbolic links when executing commands such as cd that
                      change the current working directory.  It uses the physical directory  structure  instead.
                      By  default,  bash follows the logical chain of directories when performing commands which
                      change the current directory.
              -T      Si está definida, cualquier trampa en DEBUG O RETURN será heredada por las funciones de la
                      shell, las sustituciones de órdenes y las órdenes ejecutadas en subshells. En general, las
                      trampas DEBUG y RETURN no se heredan en estos casos.
              --      Si a esta opción no sigue ningún argumento más, entonces los  parámetros  posicionales  se
                      anulan.  Si  no,  los parámetros posicionales se ponen con los valores dados por los args,
                      incluso si alguno de ellos comienza con un -.
              -       Señala el final de las opciones, haciendo que el resto de args se asignen a los parámetros
                      posicionales. Las opciones -x y -v se desactivan.  Si no  hay  más  args,  los  parámetros
                      posicionales permanecen sin cambios.

              Las  opciones  están desactivadas de forma predeterminada a menos que se diga otra cosa. Usar + en
              vez de - hace que estas opciones se desactiven.  Las opciones también pueden darse como argumentos
              al llamar al shell.  El conjunto de opciones activadas puede  examinarse  en  $-.   El  estado  de
              retorno es siempre `verdad' a menos que se encuentre una opción inválida.

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

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

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

              El  estado  de  retorno  cuando  se listan opciones es cero si todos los nombreopcs están activos,
              distinto de cero en otro caso. Cuando se activan o desactivan opciones, el  estado  de  salida  es
              cero a menos que un nombreopc no sea una opción de la shell válida.

              La lista de las opciones de shopt es:

              assoc_expand_once
                      If  set,  the  shell suppresses multiple evaluation of associative array subscripts during
                      arithmetic expression evaluation, while  executing  builtins  that  can  perform  variable
                      assignments, and while executing builtins that perform array dereferencing.
              autocd  If  set,  a  command  name  that  is the name of a directory is executed as if it were the
                      argument to the cd command.  This option is only used by interactive shells.
              cdable_vars
                      Si está activa, un argumento de la orden interna cd que no sea un directorio, se supone el
                      nombre de una variable cuyo valor es el directorio al que hay que cambiarse.
              cdspell Si está activa, se  corregirán  pequeños  errores  que  hubiera  en  la  escritura  de  un
                      componente directorio de una orden cd.  Los errores que se buscan se refieren a caracteres
                      transpuestos,  un  carácter  que  falte,  y  un  carácter  que sobre.  Si se encuentra una
                      corrección, se muestra el nombre de archivo corregido y la  orden  procede.   Esta  opción
                      solo se emplea en shells interactivos.
              checkhash
                      Si  está  activa, bash comprueba que una orden encontrada en la tabla de dispersión existe
                      antes de intentar ejecutarlo. Si una orden en la tabla de  dispersión  ya  no  existe,  se
                      realiza una búsqueda normal en el PATH.
              checkjobs
                      If  set,  bash  lists  the  status  of  any  stopped  and  running  jobs before exiting an
                      interactive shell.  If any jobs are running, this causes the exit to be deferred  until  a
                      second exit is attempted without an intervening command (see JOB CONTROL above).  La shell
                      siempre pospone su finalización si alguna tarea está detenida.
              checkwinsize
                      Si  está  activa,  bash  comprueba  el tamaño de ventana tras cada orden (no nativa) y, si
                      necesario, actualiza los valores de LINES y COLUMNS.Activa por defecto.
              cmdhist Si está activa, bash intenta guardar todas las líneas de una orden de varias líneas en  la
                      misma  entrada  del  historial.  Esto  permite reeditar fácilmente múltiples órdenes. Esta
                      opción está activada por defecto, pero solo surte efecto si está activado el historial tal
                      como se describe en above en el apartado HISTÓRICO.
              compat31
              compat32
              compat40
              compat41
              compat42
              compat43
              compat44
              compat50
                      Controla ciertos ascpetos del modo  de  compatibilidad  de  la  shell.  Consulte  MODO  DE
                      COMPATIBILIDAD DE LA SHELL más adelante.  below).

              complete_fullquote
                      If  set,  bash  quotes  all  shell  metacharacters  in  filenames and directory names when
                      performing completion.  If not set, bash removes metacharacters such as  the  dollar  sign
                      from  the  set  of  characters  that  will  be  quoted  in  completed filenames when these
                      metacharacters appear in shell variable references in words to be completed.   This  means
                      that  dollar  signs  in  variable  names  that  expand  to directories will not be quoted;
                      however, any dollar signs appearing in filenames will not  be  quoted,  either.   This  is
                      active only when bash is using backslashes to quote completed filenames.  This variable is
                      set by default, which is the default bash behavior in versions through 4.2.

              direxpand
                      If  set,  bash replaces directory names with the results of word expansion when performing
                      filename completion.  This changes the contents of the readline editing  buffer.   If  not
                      set, bash attempts to preserve what the user typed.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

              globasciiranges
                      If set, range expressions used  in  pattern  matching  bracket  expressions  (see  Pattern
                      Matching  above)  behave  as  if  in the traditional C locale when performing comparisons.
                      That is, the current locale's collating sequence is not taken into account, so b will  not
                      collate  between  A  and  B,  and  upper-case and lower-case ASCII characters will collate
                      together.

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

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

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

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

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

              histverify
                      Si  está  activa,  y  readline  se  está  utilizando,  los resultados de la sustitución de
                      historia no se pasan inmediatamente al analizador de la shell. En vez  de  eso,  la  línea
                      resultante  se  carga en el búfer de edición de readline, permitiendo así una modificación
                      posterior.

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

              huponexit
                      Si  está  activa,  bash  enviará  una  señal SIGHUP a todas las tareas cuando una shell de
                      entrada interactiva finalice.

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

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

              lastpipe
                      If set, and job control is not active, the shell runs the last command of a  pipeline  not
                      executed in the background in the current shell environment.

              lithist Si está activa, y la opción cmdhist también lo está, las órdenes multi-línea se guardan en
                      la  historia  con  saltos  de línea empotrados en vez de emplear como separador el punto y
                      coma, donde sea posible.

              localvar_inherit
                      If set, local variables inherit the value and attributes of a variable of  the  same  name
                      that  exists  at a previous scope before any new value is assigned.  The nameref attribute
                      is not inherited.

              localvar_unset
                      If set, calling unset on local  variables  in  previous  function  scopes  marks  them  so
                      subsequent  lookups  find them unset until that function returns. This is identical to the
                      behavior of unsetting local variables at the current function scope.

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

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

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

              nocaseglob
                      Si  está  activa,  bash  busca  concordancias  de nombres de archivos sin distinción entre
                      mayúsculas y minúsculas cuando realice la expansión de nombres de ruta (vea  Expansión  de
                      nombres de ruta).  above).

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

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

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

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

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

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

              promptvars
                      Si está activa, las cadenas de caracteres  que  sirven  de  indicadores  están  sujetas  a
                      expansión  de  variable  y  parámetro tras ser expandidas como se describió en INDICADORES
                      above.  Esta opción está activada por defecto.

              restricted_shell
                      la shell activa esta opción si se inicia en modo restringido (consulte  SHELL  RESTRINGIDA
                      más adelante).  below).  The value may not be changed.  This is not reset when the startup
                      files  are  executed,  allowing  the  startup  files to discover whether or not a shell is
                      restricted.

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

              sourcepath
                      Si  está  activa,  la  orden  nativa  source  (.)  emplea  el valor de PATH para buscar el
                      directorio que contenga el archivo suministrado como argumento. Esta  opción  está  activa
                      por omisión.

              varredir_close
                      If  set,  the  shell  automatically  closes  file descriptors assigned using the {varname}
                      redirection syntax (see REDIRECTION above) en lugar de dejarlos abiertos una  vez  que  la
                      orden finalice.

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

       suspend [-f]
              Suspend the execution of this shell until it receives a SIGCONT signal.  A login shell, or a shell
              without  job  control enabled, cannot be suspended; the -f option can be used to override this and
              force the suspension.  The return status is 0 unless the shell is a login shell or job control  is
              not enabled and -f is not supplied.

       test expr
       [ expr ]
              Devuelve  un  estado  de  0  (verdadero)  o 1 (falso) dependiendo de la evaluación de la expresión
              condicional expr.  Cada operador y operando debe ser un argumento separado.   Las  expresiones  se
              componen de las primarias descritas 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 Verdadero si expr es falsa.
              ( expr )
                     Devuelve el valor de expr.  Esto puede emplearse para cambiar la precedencia normal de  los
                     operadores.
              expr1 -a expr2
                     Verdadero si tanto expr1 como expr2 son verdaderos.
              expr1 -o expr2
                     Verdadero si uno al menos de expr1 o expr2 es verdadero.

              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
                     above En EXPRESIONES CONDICIONALES, la expresión es verdadera si el test monario lo es.  Si
                     el primer argumento no es un operador condicional monario válido, la expresión es falsa.
              3 argumentos
                     The following conditions are applied in the order listed.  If the second argument is one of
                     the binary conditional operators listed above under CONDITIONAL EXPRESSIONS, the result  of
                     the  expression  is  the  result  of the binary test using the first and third arguments as
                     operands.  The -a and -o operators are considered binary operators  when  there  are  three
                     arguments.   If the first argument is !, the value is the negation of the two-argument test
                     using the second and third arguments.  If the first argument is exactly  (  and  the  third
                     argument  is  exactly  ),  the  result  is  the  one-argument  test of the second argument.
                     Otherwise, the expression is false.
              4 argumentos
                     The following conditions are applied in the order listed.  If the first argument is !,  the
                     result  is  the  negation  of  the  three-argument  expression  composed  of  the remaining
                     arguments.  the two-argument test using the second  and  third  arguments.   If  the  first
                     argument  is exactly ( and the fourth argument is exactly ), the result is the two-argument
                     test of the second and third arguments.  Otherwise, the expression is parsed and  evaluated
                     according to precedence using the rules listed above.
              5 ó más argumentos
                     La  expresión  se  analiza  y  evalúa  de  acuerdo  con  la  precedencia  usando las reglas
                     mencionadas arriba.

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

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

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

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

              If  a  sigspec  is  ERR,  the  command arg is executed whenever a pipeline (which may consist of a
              single simple command), a list, or a compound command returns a non-zero exit status,  subject  to
              the  following  conditions.   The  ERR  trap  is not executed if the failed command is part of the
              command list immediately following a while or until keyword, part of the test in an if  statement,
              part of a command executed in a && or || list except the command following the final && or ||, any
              command  in  a  pipeline but the last, or if the command's return value is being inverted using !.
              These are the same conditions obeyed by the errexit (-e) option.

              Signals ignored upon entry to the shell cannot be trapped or reset.  Trapped signals that are  not
              being ignored are reset to their original values in a subshell or subshell environment when one is
              created.  The return status is false if any sigspec is invalid; otherwise trap returns true.

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

       ulimit [-HS] -a
       ulimit [-HS] [-bcdefiklmnpqrstuvxPRT [límite]]
              Proporciona control sobre los recursos disponibles para la shell y los procesos iniciados por ela,
              en  los  sistemas  que  lo  permitesn.  Las  opciones -H y -S especifican que el límite absoluto o
              flexible se establece para el recurso determinado. Un usuario que no sea  administrador  no  puede
              aumentar  un  límite absoluto una vez establecido; un límite flexible sí puede aumentarse hasta el
              valor del límite absoluto. Si no se especifica ni ninguna de estas opciones, se  establecen  tanto
              el  límite  flexible  como  el  absoluto.  El  valor  del  límite puede ser un número en la unidad
              especificada para el recurso o uno de los valores  especiales  hard  ,  soft  o  unlimited  ,  que
              representan el límite absoluto, el flexible y sin límite actuales, respectivamente. Si se omite el
              límite  ,  se muestra el valor actual del límite flexible del recurso, salvo que se proporcione la
              opción -H . Cuando se especifica más de  un  recurso,  el  nombre  del  límite  y  la  unidad,  si
              corresponde, se muestran antes del valor. Otras opciones se interpretan del siguiente modo:
              -a     Se informa de todos los límites actuales; no se configura ninguno
              -b     El tamaño máximo de buffer del conector
              -c     El tamaño máximo de archivo de volcados de memoria (core)
              -d     El tamaño máximo del segmento de datos de un proceso
              -e     La máxima prioridad de ejecución ("nice")
              -f     El tamaño máximo de los archivos creados por la shell y sus descendientes
              -i     El número máximo de señales pendientes
              -k     El número máxima de kqueues que se pueden acomodar
              -l     El tamaño máximo que puede ser bloqueado en memoria
              -m     El  tamaño  máximo  de  memoria  residente  (la mayoría de sistemas no tiene en cuenta este
                     valor)
              -n     EL número máximo de descriptores de archivos abiertos (la mayoría de sistemas  no  permiten
                     establecer este valor)
              -p     El tamaño de una tubería en bloques de 512 B (esto puede no estar establecido)
              -q     El número máximo de bytes en la cola de mensajes POSIX
              -r     La máxima prioridad de ejeución en tiempo real.
              -s     El tamaño máximo de pila
              -t     La máxima cantidad de tiempo de CPU en segundos
              -u     El número máximo de procesos disponibles para un solo usuario
              -v     La máxima cantidad de memoria virtual disponible para la shell y, en algunos sistemas, para
                     sus descendientes.
              -x     La cantidad máxima de bloqueos de archivo
              -P     The maximum number of pseudoterminals
              -R     El  tiempo  máximo, en microsegundos,  que puede ejecutarse un proceso en tiempo real antes
                     de bloquearse.
              -T     La cantidad máxima de hilos

              If limit is given, and the -a option is not  used,  limit  is  the  new  value  of  the  specified
              resource.   If no option is given, then -f is assumed.  Values are in 1024-byte increments, except
              for -t, which is in seconds; -R, which is in microseconds; -p,  which  is  in  units  of  512-byte
              blocks; -P, -T, -b, -k, -n, and -u, which are unscaled values; and, when in posix mode, -c and -f,
              which  are in 512-byte increments.  The return status is 0 unless an invalid option or argument is
              supplied, or an error occurs while setting a new limit.

       umask [-p] [-S] [modo]
              La máscara de creación de archivos del usuario se establece  a  modo.   Si  modo  empieza  con  un
              dígito, se interpreta como un número octal; si no, se interpreta como un modo simbólico similar al
              aceptado  por chmod(1).  Si modo se omite, se muestra el valor actual de la máscara.  La opción -S
              hace que la máscara se imprima en forma simbólica; la salida  predeterminada  es  como  un  número
              octal.   Si  se  da la opción -p y modo se omite, la salida es de tal forma que puede reutilizarse
              como entrada. El estado de retorno es 0 si el modo se cambió  exitosamente  o  si  no  se  dio  el
              argumento modo, y `falso' en otra circunstancia.

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

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

       wait [-fn] [-p nombrevariable] [id ...]
              Wait for each specified child process and return its termination status.  Each id may be a process
              ID or a job specification; if a job spec is given, all processes in that job's pipeline are waited
              for.  If id is not given, wait waits for all running background jobs and the last-executed process
              substitution, if its process id is the same as $!, and the return  status  is  zero.   If  the  -n
              option  is  supplied, wait waits for a single job from the list of ids or, if no ids are supplied,
              any job, to complete and returns its exit status.  If none of the supplied arguments is a child of
              the shell, or if no arguments are supplied and the shell has no unwaited-for  children,  the  exit
              status  is  127.  If the -p option is supplied, the process or job identifier of the job for which
              the exit status is returned is assigned to the variable varname named by the option argument.  The
              variable will be unset initially, before any assignment.  This is useful only when the  -n  option
              is  supplied.  Supplying the -f option, when job control is enabled, forces wait to wait for id to
              terminate before returning its status, instead  of  returning  when  it  changes  status.   If  id
              specifies  a  non-existent  process or job, the return status is 127.  If wait is interrupted by a
              signal, the return status will be greater than 128, as described under  SIGNALS  above.   De  otro
              modo,  el  estado  devuelto  es  el estado de salida del último proceso o tarea por la que se está
              esperando.

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.

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

       A partir de la versión 4.4, Bash comenzó a extinguir los antiguos niveles  de  compatibilidad.  En  algún
       momento, se eliminarán empleándose BASH_COMPAT en su lugar.

       Bash-5.0  es  la  última versión que incluye una opción de shopt para la versión anterior. A partir de la
       versión Bash-5.0, será necesario emplear BASH_COMPAT.

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

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

       compat32
              •      interrupting a command list such as "a ; b ; c" causes the execution of the next command in
                     the  list  (in bash-4.0 and later versions, the shell acts as if it received the interrupt,
                     so interrupting one command in a list aborts the execution of the entire list)

       compat40
              •      the < and > operators to the [[ command do not consider the current locale  when  comparing
                     strings;  they use ASCII ordering.  Bash versions prior to bash-4.1 use ASCII collation and
                     strcmp(3); bash-4.1 and later use the current locale's collation sequence and strcoll(3).

       compat41
              •      in posix mode, time may be followed by options and still be recognized as a  reserved  word
                     (this is POSIX interpretation 267)
              •      in  posix  mode, the parser requires that an even number of single quotes occur in the word
                     portion of  a  double-quoted  parameter  expansion  and  treats  them  specially,  so  that
                     characters  within  the  single  quotes are considered quoted (this is POSIX interpretation
                     221)

       compat42
              •      the replacement string  in  double-quoted  pattern  substitution  does  not  undergo  quote
                     removal, as it does in versions after bash-4.2
              •      in  posix  mode,  single quotes are considered special when expanding the word portion of a
                     double-quoted parameter expansion and can be used to quote a closing brace or other special
                     character (this is part of POSIX interpretation 221); in later versions, single quotes  are
                     not special within double-quoted word expansions

       compat43
              •      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.

       compat51
              •      La orden nativa unset gestiona de modo distinto los intento de desactivar los subíndices de
                     un vector @ y * según se trate de un vector asociativo o indexado, también difiere respecto
                     de anteriores versiones.

SHELL RESTRINGIDA

       Si  bash  se  inicia  con  el  nombre rbash, o se da la opción -r en la llamada, la shell se convierte en
       restringido.  Una shell restringida se emplea para establecer un entorno más controlado  que  el  que  la
       shell estándar proporciona.  Se comporta de forma idéntica a bash con la excepción de que lo siguiente no
       está permitido o no se realiza:

       •      cambiar de directorio con cd

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

       •      especificar nombres de órdenes que contengan /

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

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

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

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

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

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

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

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

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

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

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

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

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

VÉASE TAMBIÉN

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

ARCHIVOS

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

AUTORES

       Brian Fox, Free Software Foundation
       bfox@gnu.org

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

INFORMES DE FALLOS

       Si Ud. encuentra un fallo en bash, debería informar de ello.  Pero  primero  debería  asegurarse  de  que
       realmente  es  un  fallo, y de que aparece en la versión más reciente de bash. Dicha versión siempre está
       disponible              en               ftp://ftp.gnu.org/pub/gnu/bash/               y               en
       http://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-master.tar.gz.

       Una  vez  que  Ud.  ha determinado que realmente existe un fallo, utilice la orden bashbug para enviar el
       informe correspondiente.  Si Ud. ha encontrado cómo corregirlo, ¡se le anima a que nos mande  también  la
       corrección!  Las  sugerencias  y  los  informes  de  fallos  `filosóficos'  se  pueden  enviar por correo
       electrónico a bug-bash@gnu.org o se pueden publicar en el grupo de discusiones de Usenet gnu.bash.bug.

       TODOS los informes de fallos deben incluir:

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

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

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

ERRORES

       Es demasiado grande y demasiado lento.

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

       Los alias son confusos en algunos casos.

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

       Las órdenes compuestas y las secuencias de órdenes de la forma `a ; b ; c' no se  manejan  de  forma  muy
       elegante  cuando  se  intenta  suspender  el  proceso.  Cuando  se  detiene  un proceso, la shell ejecuta
       inmediatamente la siguiente orden de la secuencia.  Para remediar esto es suficiente poner  la  secuencia
       de  órdenes  entre paréntesis; así la forzamos a ejecutarse en una subshell, que puede detenerse como una
       unidad.

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

       Solo puede haber un coproceso activo a la vez.

TRADUCCIÓN

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

       Esta  traducción  es  documentación  libre;  lea  la GNU General Public License Version 3 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.

GNU Bash 5.2                                19 de Septiembre de 2022                                     BASH(1)