Provided by: manpages-es_4.21.0-2_all bug

NOMBRE

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

SINOPSIS

       bash [opciones] [orden | achivo]

COPYRIGHT

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

DESCRIPCIÓN

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

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

OPCIONES

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

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

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

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

       --login
              Equivale a -l.

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

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

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

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

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

       --verbose
              Equivale a -v.

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

ARGUMENTOS

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

LLAMADA

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

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

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

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

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

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

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

       Si bash se ejecuta con con el nombre sh, intentará imitar el comportamiento de arranque de
       versiones  antiguas  de  sh  tanto  como sea posible, pero sin salirse del estándar POSIX.
       Cuando se ejecuta como una shell interactiva de entrada, primero  intentará  ejecutar  las
       órdenes  de  /etc/profile  y  ~/.profile, en ese orden. La opción --noprofile anulará esta
       acción. Cuando se ejecuta como una shell interactiva con  el  nombre  sh,  bash  busca  la
       variable  ENV,  expande  su  valor  si  está definida, y emplea el valor expandido como el
       nombre de un archivo a ejecutar. Como una shell llamada  como  sh  no  intentará  ejecutar
       órdenes  desde  cualquier  otro archivo de inicio, la opción --rcfile no tiene efecto. Una
       shell no 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 arranca en modo posix, como ocurre cuando se  da  la  opción  de  línea  de
       órdenes --posix, sigue el estándar POSIX para los ficheros de arranque.  En este modo, los
       shells interactivos expanden la variable ENV y se leen y ejecutan órdenes desde el fichero
       cuyo  nombre  es  el  valor expandido de dicha variable.  No se lee ningún otro fichero de
       arranque.

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

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

DEFINICIONES

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

PALABRAS RESERVADAS

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

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

GRAMÁTICA DE LA SHELL

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

              orden1 && orden2

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

       Una lista O tiene el siguiente formato

              orden1 || orden2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

       La sintaxis de un coproceso es la siguiente:

              coproc [NOMBRE] orden [redirecciones]

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

       El formato recomendado de un coproceso es el siguiente:

              coproc NOMBRE { orden [redirecciones]; }

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

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

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

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

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

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

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

COMENTARIOS

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

ENTRECOMILLADO

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

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

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

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

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

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

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

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

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

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

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

PARÁMETROS

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

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

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

              nombre=[valor]

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

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

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

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

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

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

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

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

              Esta  variable  puede emplearse con BASH_LINENO y con BASH_SOURCE. Cada elemento de
              FUNCNAME se corresponde con otros en BASH_LINENO y BASH_SOURCE  para  describir  la
              pila  de  llamadas.  Por  ejemplo:  ${FUNCNAME[$i]}  se  invoca  desde  el  archivo
              ${BASH_SOURCE[$i+1]} en el número de línea ${BASH_LINENO[$i]}. La  función  interna
              caller muestra la invocación actual en base a esta información.
       GROUPS Una  matriz variable que contiene la lista de grupos a los que pertenece el usuario
              actual. No se tendrá en cuenta ninguna asignación en a GROUPS. Si  GROUPS  no  está
              definido,   pierde   sus  propiedades  especiales,  incluso  si  posteriormente  es
              redefinido.
       HISTCMD
              El número de historial o  índice  en  el  historial  de  la  orden  actual.  No  se
              consideran  asignaciones  a  HISTCMD.  Si  HISTCMD  no  está  definido,  pierde sus
              propiedades especiales, incluso si posteriormente es redefinido.
       HOSTNAME
              Asignados automáticamente al nombre del anfitrión (equipo) actual.
       HOSTTYPE
              Asignado automáticamente a una cadena que describe de  forma  unívoca  el  tipo  de
              máquina  en  la  que  bash  se  está  ejecutando.  El valor predefinido depende del
              sistema.
       LINENO Cada vez que este parámetro es referenciado, la shell sustituye un número  en  base
              10  representando  el número de línea secuencial actual (empezando por 1) dentro de
              un script o función. Si no estamos en un script o función, no se garantiza  que  el
              valor  sustituido  tenga  significado.   Si  LINENO  no  está  definido, pierde sus
              propiedades especiales, incluso si posteriormente es redefinido.
       MACHTYPE
              Asignado automáticamente a una cadena que describe completamente el tipo de sistema
              en   el   que   bash   se   está   ejecutando,   en  el  formato  estándar  de  GNU
              cpu-compañía-sistema.  El valor predefinido depende del sistema.
       MAPFILE
              Una matriz variable (consulte Matrices a continuación) creada para incluir el texto
              captado por la orden nativa mapfile cuando no se indica ningún nombre de variable.
       OLDPWD El directorio de trabajo anterior como lo puso la orden cd.
       OPTARG El  valor  del  último  argumento  que  es una opción procesado por la orden nativa
              getopts (consulte ÓRDENES NATIVAS DE LA SHELL a continuación).
       OPTIND El índice del siguiente argumento a ser  procesado  por  la  orden  nativa  getopts
              (consulte ÓRDENES NATIVAS DE LA SHELL más adelante).
       OSTYPE Asignado  automáticamente  a una cadena que describe el sistema operativo en el que
              bash se está ejecutando.  El valor predefinido depende del sistema.
       PIPESTATUS
              Una variable vector (consulte Vectores más adelante)  que  contiene  una  lista  de
              valores de estado de salida de los procesos en la tubería en primer plano ejecutada
              más recientemente (que puede contener una sola orden).
       PPID   El PID del proceso padre de la shell. Esta variable es de lectura exclusiva.
       PWD    El directorio de trabajo actual como lo pone la orden cd.
       RANDOM Cada vez que este parámetro sea referenciado, se genera un entero aleatorio entre 0
              y  32767.  Si  se asigna un valor a RANDOM se inicia (se 'siembra') la secuencia de
              números aleatorios. Si RANDOM no está definido, pierde sus propiedades  especiales,
              incluso si posteriormente es redefinido.
       READLINE_ARGUMENT
              Cualquier argumento numérico dado un una orden Readline definido mediante "bind -x"
              (consulte ÓRDENES NATIVAS DE LA SHELL a continuación) cuando se ha invocado.
       READLINE_LINE
              Contenido del buffer de línea de readline, para emplear  con  "bind  -x"  (consulte
              ÓRDENES NATIVAS DE LA SHELL a continuación).
       READLINE_MARK
              Posición  de  la  marca  (punto  de inserción) en la línea guardad de readline para
              emplear con "bind -x" (consulte ÓRDENES NATIVAS DE  LA  SHELL  más  adelante).  Los
              caracteres  situadoes  entre  el  punto  de inserción y la marca suelen denominarse
              región.
       READLINE_POINT
              Posición del punto de inserción en la línea guardada de readline, para emplear  con
              "bind -x" (consulte ÓRDENES NATIVAS DE LA SHELL a continuación).
       REPLY  La línea de entrada leída por la orden nativa read cuando no se le dan argumentos.
       SECONDS
              Cada  vez  que  este  parámetro  es  referenciado,  se  devuelve en él el número de
              segundos transcurridos desde la llamada al shell. Si se asigna un valor a  SECONDS,
              el  valor  devuelto  en  posteriores  referencias es el número de segundos desde la
              asignación más el valor asignado. La cantidad de segundos  transcurridos  hasta  la
              llamada  de  la  shell  y  hasta  el  momento  actual vienen dados por el reloj del
              sistema. Si SECONDS no está definido, pierde sus propiedades especiales, incluso si
              posteriormente es redefinido.
       SHELLOPTS
              Una  lista,  de  elementos separados por dos puntos, de opciones activas del shell.
              Cada palabra en la lista es un argumento válido para  la  opción  -o  de  la  orden
              nativa  set  (consulte  ÓRDENES NATIVAS DE LA SHELL más adelante). Las opciones que
              aparecen en SHELLOPTS son aquéllas que  aparecen  como  on  en  set  -o.   Si  esta
              variable  está  en  el  entorno  cuando bash empieza, cada opción de la shell en la
              lista se activará antes de leer cualquier archivo de inicio.  Esta variable  es  de
              lectura exclusiva.
       SHLVL  Se incrementa en uno cada vez que se arranca una nueva instancia de bash.
       SRANDOM
              Esta  variable se expande en un número pseudo-aleatorios de 32-bits cada vez que es
              referenciada. El generador de números aleatorios no es 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
              If  this  variable  is  set  and not null, its value is used as a format string for
              strftime(3) to print the time stamp associated with each history entry displayed by
              the  history  builtin.   If  this  variable  is set, time stamps are written to the
              history file so they may be preserved across shell sessions.  This uses the history
              comment character to distinguish timestamps from other history lines.
       HOME   El  directorio inicial de trabajo del usuario en curso; el argumento predeterminado
              para la orden nativa cd.  El valor de  esta  variable  se  usa  también  cuando  se
              realiza la expansión de tilde.
       HOSTFILE
              Contiene  el  nombre  de un fichero con el mismo formato que /etc/hosts que debería
              leerse cuando la shell necesite completar un nombre de equipo. El archivo puede ser
              modificado  durante  la  ejecución  de  la  shell;  la siguiente vez que se intente
              completar un nombre de equipo, bash añade el contenido del nuevo archivo a la  base
              de  datos  ya existente. Si está definida la variable HOSTFILE pero no tiene ningún
              valor asignado o tiene asignado el nombre de un archivo que no se puede leer,  bash
              intentará leer /etc/hosts para conseguir la lista de posibles nombres de equipo. Si
              se resetea el valor de HOSTFILE se vacia la lista de nombres de equipo.
       IFS    El Separador Interno de Campo que se emplea para la división de  palabras  tras  la
              expansión  y  para  dividir  líneas en palabras con la orden nativa read.  El valor
              predeterminado es “<espacio><tab><nueva-línea>”.
       IGNOREEOF
              Controla la acción de una shell interactiva al recibir un carácter  EOF  como  sola
              entrada. Si está definido, el valor es el número de caracteres EOF consecutivos que
              deben teclearse como los primeros caracteres de una línea de entrada antes  de  que
              bash  acabe.  Si  la variable existe pero no tiene un valor numérico, o ninguno, el
              valor predeterminado es 10. Si no existe, EOF significa el final de la entrada para
              la shell.
       INPUTRC
              El  nombre  de  fichero  para  el  de inicio de readline, en vez del predeterminado
              ~/.inputrc (consulte READLINE más adelante).
       INSIDE_EMACS
              Si está presente esta variable cuando se inicia la shell, bash asume  que  se  está
              ejecutando  en  el  buffer de una shell de Emacs y podrá deshabilitar la edición en
              línea según el valor de TERM.
       LANG   Empleado para determinar la categoría de localización ("escenario")  para cualquier
              categoría  no seleccionada específicamente con una variable de las que empiezan por
              LC_.
       LC_ALL Esta variable tiene preferencia sobre el valor de LANG y de cualquier otra variable
              de las que empiecen por LC_ especificando una categoría de localización.
       LC_COLLATE
              Esta  variable  determina  el  orden  de clasificación empleado cuando se ordene el
              resultado de una expansión de nombres de rutas, y determina  el  comportamiento  de
              expresiones  de  intervalo,  clases  de equivalencia, y secuencias de clasificación
              dentro de expansiones de nombres de rutas y concordancia de patrones.
       LC_CTYPE
              Esta variable determina la interpretación de  caracteres  y  el  comportamiento  de
              clases  de  caracteres  dentro de expansiones de nombres de rutas y concordancia de
              patrones.
       LC_MESSAGES
              Esta  variable  determina  la   localización   empleada   para   traducir   cadenas
              entrecomilladas con comillas dobles precedidas por un $.
       LC_NUMERIC
              Esta variable determina la localización empleada para el formato de los números.
       LC_TIME
              Esta variable determina la localización empleada para el formato de fecha y hora.
       LINES  Utilizada  por  la orden compuesta select para determinar la longitud de la columna
              para mostrar listas de selección. Definida automáticamente siempre  que  la  opción
              checkwinsize  está  activada  o  cuando  se  reciba una señal SIGWINCH en una shell
              interactiva.
       MAIL   Si este parámetro está puesto a un nombre de archivo y la variable MAILPATH no está
              definida,  bash informa al usuario de la llegada de correo en el archivo definido o
              con formato Maildir.
       MAILCHECK
              Define la frecuencia (en segundos)  a la que bash comprueba si hay correo nuevo. El
              valor  predeterminado  es  60 s. Si es hora de comprobar si hay correo, la shell lo
              hace antes de mostrar el indicador primario. Si esta variable no está  definida,  o
              lo está con un valor inferior a cero, la shell no comprueba si hay correo nuevo.
       MAILPATH
              Una lista de nombres de fichero separados por dos puntos donde hay que comprobar si
              hay correo nuevo. El mensaje que haya que mostrar cuando llegue correo a un fichero
              particular  puede  especificarse  separando el nombre de fichero del mensaje con un
              '?'. Cuando se use en el texto del mensaje, $_ se expande al nombre del fichero  de
              correo en curso.  Ejemplo:
              MAILPATH='/var/mail/bfox?"Tienes carta":~/shell-mail?"¡$_ tiene carta!"'
              Bash  proporciona  un valor predeterminado para esta variable, pero la localización
              de los archivos de correo del usuario que  emplea,  dependerá  del  sistema  (p.ej.
              /var/mail/$USER).
       OPTERR Si se pone al valor 1, bash muestra mensajes de error generados por la orden nativa
              getopts (consulte ÓRDENES NATIVAS DE LA SHELL más adelante).  OPTERR se inicia a  1
              cada vez que se llama al shell o cuando se ejecuta un script de la shell.
       PATH   La  ruta  de  búsqueda  para  órdenes,  programas  ejecutables.  Es  una  lista  de
              directorios separados entre si por dos puntos en los cuales la shell busca  órdenes
              (consulte  EJECUCIÓN DE ÓRDENES a continuación). La ruta predeterminada depende del
              sistema siendo definida por el administrador que instala bash. Un valor habitual es
              ``/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin''.
       POSIXLY_CORRECT
              Si esta variable está en el entorno cuando de inicie bash, la shell entrará en modo
              posix antes de cargar los archivos de inicio igual que si  se  emplease  la  opción
              --posix.  Si  se  define  una vez que la shell se está ejecutando, bash activará el
              modo posix tal como si la orden set -o posix se hubiese ejecutado. Cuando la  shell
              entra en modo posix, definirá está variable si no lo está ya.
       PROMPT_COMMAND
              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 un trabajo existente parado. No
              se permite ninguna ambigüedad; si hay más de un trabajo que empiece con  la  cadena
              tecleada,  se  selecciona  el  trabajo al que se ha accedido más recientemente.  El
              nombre de un trabajo parado, en este contexto, es la línea de órdenes empleada para
              arrancarlo.   Si  se  define  al valor exact, la cadena suministrada debe concordar
              exactamente con el nombre de un trabajo parado; si se  define  como  substring,  la
              cadena  suministrada  necesita concordar con una subcadena del nombre de un trabajo
              parado.  El  valor  substring  proporciona  una  funcionalidad  análoga  a  la  del
              identificador de trabajo %? (consulte CONTROL DE TAREAS más adelante). Si se pone a
              cualquier otro valor, la cadena suministrada debe ser un prefijo del nombre  de  un
              trabajo  parado;  esto proporciona una funcionalidad análoga a la del identificador
              de trabajo %cadena.
       histchars
              Los dos o tres caracteres que controlan la expansión y separación en lexemas de  la
              historia  (consulte EXPANSIÓN DEL HISTORIAL a continuación).  El primer carácter es
              el carácter de expansión del historial, el carácter que señala el comienzo  de  una
              expansión  de  historia,  normalmente  `!'.   El segundo carácter es el carácter de
              sustitución rápida, que se usa  como  una  abreviatura  para  reejecutar  la  orden
              anterior,  sustituyendo una cadena por otra en la orden. El valor predeterminado es
              `^'.  El tercer carácter, opcional, es el carácter que indica que el  resto  de  la
              línea  es un comentario cuando se encuentra como el primer carácter de una palabra,
              normalmente es `#'.  El carácter de comentario de historia hace que la  sustitución
              de  historia  se  salte  en  el  resto  de  palabras  de  la  línea.  No  hace  que
              necesariamente el analizador léxico de la shell trate al resto de la línea como  un
              a un comentario.

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

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

       Los vectores asociativos se crean mediante declare -A nombre.

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

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

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

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

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

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

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

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

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

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

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

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

EXPANSIÓN

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

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

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

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

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

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

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

       A  sequence expression takes the form {x..y[..incr]}, where x and y are either integers or
       single letters, and incr, an  optional  increment,  is  an  integer.   When  integers  are
       supplied,  the  expression  expands  to  each number between x and y, inclusive.  Supplied
       integers may be prefixed with 0 to force each term to have the same width.  When either  x
       or  y  begins  with a zero, the shell attempts to force all generated terms to contain the
       same number of digits, zero-padding where  necessary.   When  letters  are  supplied,  the
       expression  expands  to each character lexicographically between x and y, inclusive, using
       the default C locale.  Note that both x and y  must  be  of  the  same  type  (integer  or
       letter).   When the increment is supplied, it is used as the difference between each term.
       The default increment is 1 or -1 as appropriate.

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

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

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

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

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

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

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

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

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

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

   Expansión de Parámetro
       El carácter `$' introduce la expansión de parámetro, sustitución  de  orden,  o  expansión
       aritmética.  El  nombre de parámetro o símbolo a ser expandido puede estar encerrado entre
       llaves, que son opcionales pero sirven para proteger a la  variable  en  la  expansión  de
       caracteres que la sigan y puedan interpretarse como parte de su nombre.

       Cuando  se  empleen  llaves,  la  de  cierre  es la primera `}' no protegida con una barra
       invertida o en una  cadena  entrecomillada,  y  no  dentro  de  una  expansión  aritmética
       empotrada, sustitución de orden, o expansión de parámetro.

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

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

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

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

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

              If offset evaluates to a number less than zero, the value is used as an  offset  in
              characters from the end of the value of parameter.  If length evaluates to a number
              less than zero, it is interpreted as an offset in characters from the  end  of  the
              value  of  parameter  rather  than a number of characters, and the expansion is the
              characters between offset and that result.  Note that a  negative  offset  must  be
              separated  from the colon by at least one space to avoid being confused with the :-
              expansion.

              If parameter is @ or *, the result is length  positional  parameters  beginning  at
              offset.   A  negative  offset  is  taken  relative to one greater than the greatest
              positional parameter,  so  an  offset  of  -1  evaluates  to  the  last  positional
              parameter.   It  is  an  expansion  error if length evaluates to a number less than
              zero.

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

              Substring expansion applied to an associative array produces undefined results.

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

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

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

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

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

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

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

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

              Quoting any part of string inhibits replacement in  the  expansion  of  the  quoted
              portion,  including  replacement strings stored in shell variables.  Backslash will
              escape & in string; the backslash is removed in order to permit a literal & in  the
              replacement  string.   Backslash can also be used to escape a backslash; \\ results
              in a literal backslash in the replacement.  Users should take  care  if  string  is
              double-quoted   to   avoid   unwanted   interactions   between  the  backslash  and
              double-quoting, since backslash has special meaning within double quotes.   Pattern
              substitution  performs  the  check  for  unquoted  &  after expanding string; shell
              programmers should quote any occurrences of & they want to be  taken  literally  in
              the  replacement  and  ensure  any  instances  of  &  they  want to be replaced are
              unquoted.

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

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

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

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

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

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

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

              $(orden)
       o
              `orden`

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

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

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

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

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

              $((expresión))

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

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

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

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

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

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

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

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

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

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

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

       Concordancia

       Cualquier  carácter  que  aparezca  en  un  patrón, aparte de los especiales descritos más
       adelante, concuerda consigo mismo. El carácter NUL no puede estar en un patrón. Una  barra
       invertida  protege  al  siguiente  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:

              *      Matches  any  string,  including  the  null string.  When the globstar shell
                     option is enabled, and * is  used  in  a  pathname  expansion  context,  two
                     adjacent  *s  used as a single pattern will match all files and zero or more
                     directories and subdirectories.  If followed by a /, two  adjacent  *s  will
                     match only directories and subdirectories.
              ?      Concuerda con un solo carácter cualquiera.
              [...]  Matches  any one of the enclosed characters.  A pair of characters separated
                     by a hyphen denotes a range expression; any  character  that  falls  between
                     those  two  characters,  inclusive,  using  the  current  locale's collating
                     sequence and character set, is matched.  If the  first  character  following
                     the [ is a ! or a ^ then any character not enclosed is matched.  The sorting
                     order of characters in range expressions, and the characters included in the
                     range, are determined by the current locale and the values of the LC_COLLATE
                     or LC_ALL shell variables, if set.  To obtain the traditional interpretation
                     of  range expressions, where [a-d] is equivalent to [abcd], set value of the
                     LC_ALL shell variable to C, or enable the globasciiranges shell option.  A -
                     may be matched by including it as the first or last character in the set.  A
                     ] may be matched by including it as the first character in the set.

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

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

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

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

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

       Theextglob  option  changes the behavior of the parser, since the parentheses are normally
       treated as operators with syntactic meaning.  To ensure that  extended  matching  patterns
       are  parsed  correctly,  make  sure  that  extglob  is  enabled  before parsing constructs
       containing the patterns, including shell functions and command substitutions.

       When matching filenames, the dotglob shell option determines the set of filenames that are
       tested:  when  dotglob  is enabled, the set of filenames includes all files beginning with
       “.”, but “.” and “..” must be matched by a pattern or sub-pattern that begins with a  dot;
       when  it is disabled, the set does not include any filenames beginning with “.” unless the
       pattern or sub-pattern begins with a “.”.  As above, “.” only has a special  meaning  when
       matching filenames.

       Complicated  extended  pattern  matching against long strings is slow, especially when the
       patterns contain alternations and the strings contain multiple  matches.   Using  separate
       matches  against  shorter  strings,  or  using  arrays of strings instead of a single long
       string, may be faster.

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

REDIRECCIÓN

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

       Each  redirection that may be preceded by a file descriptor number may instead be preceded
       by a word of the form {varname}.  In this case, for each redirection operator  except  >&-
       and  <&-, the shell will allocate a file descriptor greater than or equal to 10 and assign
       it to varname.  If >&- or <&- is preceded by {varname}, the value of varname  defines  the
       file  descriptor  to close.  If {varname} is supplied, the redirection persists beyond the
       scope of the command, allowing the  shell  programmer  to  manage  the  file  descriptor's
       lifetime manually.  The varredir_close shell option manages this behavior.

       En  las  descripciones  siguientes,  si se omite el número del descriptor de fichero, y el
       primer carácter del operador de redirección es <, la redirección se refiere a  la  entrada
       estándar  (descriptor  de fichero 0). Si el primer carácter del operador de redirección es
       >, la redirección se refiere a la salida estándar (descriptor de fichero 1).

       La palabra tras el operador de redirección en las descripciones siguientes, a menos que se
       diga  otra  cosa,  está  sujeta a la expansión de llaves, expansión de tilde, expansión de
       parámetro, sustitución de orden, expansión aritmética, eliminación de  comillas,  división
       de  palabra  y  expansión  de  nombre  de  ruta.  Si se expande a más de una palabra, bash
       informa de un error.

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

              ls > listadir 2>&1

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

              ls 2>&1 > listadir

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

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

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

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

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

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

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

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

              [n]<palabra

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

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

              [n]>palabra

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

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

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

              [n]>>palabra

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

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

              &>palabra
       y
              >&palabra

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

              >palabra 2>&1

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

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

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

              &>>palabra

       Ésta es semánticamente equivalente a

              >>palabra 2>&1

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

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

       El formato de los documentos internos es:

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

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

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

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

              [n]<<<palabra

       The  word  undergoes  tilde  expansion,  parameter   and   variable   expansion,   command
       substitution,  arithmetic  expansion,  and  quote  removal.   Pathname  expansion and word
       splitting are not performed.  The result is supplied as a single string,  with  a  newline
       appended, to the command on its standard input (or file descriptor n if n is specified).

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

              [n]<&palabra

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

       Operador

              [n]>&palabra

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

   Mobilidad de los Descriptores de Archivo
       Operador de Redirección

              [n]<&cifra-

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

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

              [n]>&cifra-

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

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

              [n]<>palabra

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

ALIAS

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

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

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

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

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

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

FUNCIONES

       A  shell  function,  defined  as  described  above under SHELL GRAMMAR, stores a series of
       commands for later execution.  When the name of a shell  function  is  used  as  a  simple
       command  name,  the  list  of  commands  associated  with  that function name is executed.
       Functions are executed in the context of the current shell; no new process is  created  to
       interpret  them  (contrast this with the execution of a shell script).  When a function is
       executed, the arguments to the  function  become  the  positional  parameters  during  its
       execution.  The special parameter # is updated to reflect the change.  Special parameter 0
       is unchanged.  The first element of the FUNCNAME variable  is  set  to  the  name  of  the
       function while the function is executing.

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

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

       In the following description, the  current  scope  is  a  currently-  executing  function.
       Previous  scopes  consist of that function's caller and so on, back to the "global" scope,
       where the shell is not executing any shell function.  Consequently, a  local  variable  at
       the  current  scope  is  a  variable  declared  using the local or declare builtins in the
       function that is currently executing.

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

       The shell uses dynamic scoping to control a variable's visibility within functions.   With
       dynamic  scoping,  visible  variables  and  their  values  are a result of the sequence of
       function calls that caused execution to reach  the  current  function.   The  value  of  a
       variable that a function sees depends on its value within its caller, if any, whether that
       caller is the "global" scope or another shell function.  This is also  the  value  that  a
       local  variable  declaration  "shadows",  and the value that is restored when the function
       returns.

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

       The unset builtin also acts using the same dynamic scope: if a variable is  local  to  the
       current  scope,  unset will unset it; otherwise the unset will refer to the variable found
       in any calling scope as described above.  If a variable at  the  current  local  scope  is
       unset,  it  will  remain so (appearing as unset)  until it is reset in that scope or until
       the function returns.  Once the function returns,  any  instance  of  the  variable  at  a
       previous  scope will become visible.  If the unset acts on a variable at a previous scope,
       any instance of a variable with that name that had been shadowed will become visible  (see
       below how the localvar_unset shell option changes this behavior).

       The  FUNCNEST  variable,  if  set  to  a  numeric  value greater than 0, defines a maximum
       function nesting level.  Function invocations that  exceed  the  limit  cause  the  entire
       command to abort.

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

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

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

EVALUACIÓN ARITMÉTICA

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

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

       Shell  variables  are  allowed  as  operands;  parameter expansion is performed before the
       expression is evaluated.  Within an expression, shell variables may also be referenced  by
       name without using the parameter expansion syntax.  A shell variable that is null or unset
       evaluates to 0 when referenced by name without using the parameter expansion syntax.   The
       value  of  a  variable  is evaluated as an arithmetic expression when it is referenced, or
       when a variable which has been given the integer attribute using declare -i is assigned  a
       value.  A null value evaluates to 0.  A shell variable need not have its integer attribute
       turned on to be used in an expression.

       Integer constants  follow  the  C  language  definition,  without  suffixes  or  character
       constants.   Constants with a leading 0 are interpreted as octal numbers.  A leading 0x or
       0X denotes hexadecimal.  Otherwise, numbers take the form  [base#]n,  where  the  optional
       base  is  a  decimal  number between 2 and 64 representing the arithmetic base, and n is a
       number in that base.  If base# is omitted, then base 10 is used.  When specifying n, if  a
       non-digit is required, the digits greater than 9 are represented by the lowercase letters,
       the uppercase letters, @, and _, in that order.  If base is less  than  or  equal  to  36,
       lowercase  and  uppercase letters may be used interchangeably to represent numbers between
       10 and 35.

       Los operadores se evalúan en orden de precedencia. Las sub-expresiones entre paréntesis se
       evalúan primero y pueden sustituir a las reglas de precedencia anteriores.

EXPRESIONES CONDICIONALES

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

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

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

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

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

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

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

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

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

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

EXPANSIÓN DE ORDEN SIMPLE

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

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

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

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

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

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

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

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

EJECUCIÓN DE ÓRDENES

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

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

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

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

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

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

ENTORNO DE EJECUCIÓN DE ÓRDENES

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

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

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

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

       •      las trampas en curso establecidas por trap

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

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

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

       •      opciones activadas mediante shopt

       •      alias de la shell definidos con alias

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

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

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

       •      el directorio de trabajo en curso

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

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

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

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

       Una subshell es una copia del proceso de la shell.

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

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

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

ENTORNO

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

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

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

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

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

ESTADO DE SALIDA

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

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

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

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

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

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

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

SEÑALES

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

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

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

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

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

       When job control is not enabled, and bash is waiting for a foreground command to complete,
       the shell receives keyboard-generated signals such as SIGINT  (usually  generated  by  ^C)
       that  users  commonly  intend to send to that command.  This happens because the shell and
       the command are in the same process group as the terminal, and  ^C  sends  SIGINT  to  all
       processes in that process group.

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

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

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

CONTROL DE TAREAS

       El  control  de  tareas  se  refiere a la capacidad de parar selectivamente (suspender) la
       ejecución de procesos y continuar  (reanudar)  su  ejecución  posteriormente.  Un  usuario
       emplea  esta  utilidad  generalmente  a  través  de  una interfaz interactiva suministrada
       conjuntamente por el controlador del terminal del núcleo del sistema operativo y bash.

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

              [1] 25647

       indicando que este trabajo es el número 1 y que el PID del último proceso  en  la  tubería
       asociada  con él es 25647.  Todos los procesos en una misma tubería son miembros del mismo
       trabajo.  Bash emplea la abstracción del trabajo como la base para el control de tareas.

       To facilitate the implementation of the user  interface  to  job  control,  the  operating
       system  maintains  the  notion  of  a  current terminal process group ID.  Members of this
       process group (processes whose process group ID is equal to the current  terminal  process
       group ID)  receive keyboard-generated signals such as SIGINT.  These processes are said to
       be in the foreground.  Background processes are those whose process group ID differs  from
       the  terminal's; such processes are immune to keyboard-generated signals.  Only foreground
       processes are allowed to read from or, if the user so specifies with stty tostop, write to
       the  terminal.  Background processes which attempt to read from (write to when stty tostop
       is in effect) the terminal are sent a SIGTTIN (SIGTTOU) signal by  the  kernel's  terminal
       driver, which, unless caught, suspends the process.

       Si  el  sistema operativo en el que bash se está ejecutando, admite el control de tareas y
       bash da facilidades para su uso. Teclear el carácter suspender (típicamente ^Z, Control-Z)
       mientras  que  un proceso se está ejecutando, hace que ese proceso se pare y le devuelve a
       Ud. al bash.  Teclear el carácter suspensión diferida (típicamente ^Y, Control-Y) hace que
       el proceso se pare cuando intente leer entrada desde la terminal, y el control se devuelve
       a bash.  El usuario puede entonces manipular el estado de este trabajo, empleando la orden
       bg  para  continuar  con  él en segundo plano, la orden fg para continuar con él en primer
       plano, o la orden kill para matarlo. Un ^Z tiene efecto inmediatamente, y tiene el  efecto
       adicional  colateral  de  que la salida pendiente y lo que haya en el búfer de entrada del
       teclado se descartan.

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

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

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

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

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

INDICADORES

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

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

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

       Por ejemplo, el poner

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

       Except  where  noted,  readline variables can take the values On or Off (without regard to
       case).  Unrecognized variable names are ignored.  When a variable value is read, empty  or
       null  values, "on" (case-insensitive), and "1" are equivalent to On.  All other values are
       equivalent to Off.  The variables and their default values are:

       active-region-start-color
              A string variable that controls the text color and background when  displaying  the
              text  in  the  active  region  (see the description of enable-active-region below).
              This string must not take up any physical character positions on the display, so it
              should  consist  only  of  terminal escape sequences.  It is output to the terminal
              before displaying the text in the active region.  This variable  is  reset  to  the
              default  value whenever the terminal type changes.  The default value is the string
              that puts the terminal in standout mode, as obtained from the  terminal's  terminfo
              description.  A sample value might be "\e[01;33m".
       active-region-end-color
              A  string  variable  that  "undoes"  the  effects  of active-region-start-color and
              restores "normal" terminal display appearance after displaying text in  the  active
              region.   This  string  must  not  take  up any physical character positions on the
              display, so it should consist only of terminal escape sequences.  It is  output  to
              the  terminal  after  displaying  the  text in the active region.  This variable is
              reset to the default value whenever the terminal type changes.  The  default  value
              is  the  string that restores the terminal from standout mode, as obtained from the
              terminal's terminfo description.  A sample value might be "\e[0m".
       bell-style (audible)
              Controla qué pasa cuando readline quiere tocar el  pito  de  la  terminal.   Si  se
              define  como  none, readline nunca toca el pito. Si se pone a visible, readline usa
              una alerta visible si está disponible.  Si se pone como audible,  readline  intenta
              hacer sonar el pito de la terminal.
       bind-tty-special-chars (On)
              If set to On, readline attempts to bind the control characters treated specially by
              the kernel's terminal driver to their readline equivalents.
       blink-matching-paren (Off)
              If set to  On,  readline  attempts  to  briefly  move  the  cursor  to  an  opening
              parenthesis when a closing parenthesis is inserted.
       colored-completion-prefix (Off)
              If  set to On, when listing completions, readline displays the common prefix of the
              set of possible completions using a different color.   The  color  definitions  are
              taken  from  the  value of the LS_COLORS environment variable.  If there is a color
              definition       in       $LS_COLORS       for       the       custom        suffix
              "readline-colored-completion-prefix",  readline  uses  this  color  for  the common
              prefix instead of its default.
       colored-stats (Off)
              If set to On, readline displays possible  completions  using  different  colors  to
              indicate  their  file  type.  The color definitions are taken from the value of the
              LS_COLORS environment variable.
       comment-begin (“#”)
              La cadena que se inserta cuando se ejecuta la  orden  de  readline  insert-comment.
              Esta orden está enlazada a M-# en modo emacs y a # en modo vi.
       completion-display-width (-1)
              The  number  of  screen  columns  used  to display possible matches when performing
              completion.  The value is ignored if it is less than 0 or greater than the terminal
              screen  width.   A value of 0 will cause matches to be displayed one per line.  The
              default value is -1.
       completion-ignore-case (Off)
              Si se pone a On, readline realiza la  concordancia  y  terminación  de  nombres  de
              ficheros sin importar si las letras son mayúsculas o minúsculas.
       completion-map-case (Off)
              If  set  to  On, and completion-ignore-case is enabled, readline treats hyphens (-)
              and  underscores  (_)  as  equivalent  when  performing  case-insensitive  filename
              matching and completion.
       completion-prefix-display-length (0)
              The  length  in  characters  of the common prefix of a list of possible completions
              that is displayed without modification.  When set to a  value  greater  than  zero,
              common  prefixes  longer  than  this  value  are  replaced  with  an  ellipsis when
              displaying possible completions.
       completion-query-items (100)
              Esto  determina  cuándo  se  pregunta  al  usuario  si  quiere  ver  el  número  de
              terminaciones  posibles generadas por la orden possible-completions.  Puede ponerse
              a cualquier  valor  entero  mayor  o  igual  a  cero.  Si  el  número  de  posibles
              terminaciones  es  mayor  o  igual  que el valor de esta variable, al usuario se le
              pregunta si desea o no verlas; si no, simplemente se muestran en  la  terminal.  El
              valor  cero  indica  que  readline  no  debe  preguntar  nunca mientras que valores
              negativos son interpretados igual que el cero.
       convert-meta (On)
              Si se pone a On, readline convertirá caracteres con el octavo bit  definido  a  una
              secuencia de teclas ASCII recortando el octavo bit y añadiendo un carácter Esc como
              prefijo (es decir, usando Esc como el prefijo meta). Por  está  definido  como  On,
              pero  readline lo define como Off si la localización contiene caracteres de 8 bits.
              Esta variable depende de la LC_TYPE pudiendo variar según la localización empleada.
       disable-completion (Off)
              Si se pone a On, readline inhibirá la terminación de palabras. Los caracteres  para
              la terminación se insertarán en la línea como si se hubieran hecho corresponder con
              self-insert.
       echo-control-characters (On)
              When set to On, on operating systems that indicate they support it, readline echoes
              a character corresponding to a signal generated from the keyboard.
       editing-mode (emacs)
              Controla  si  readline  empieza con un conjunto de definiciones de teclas similar a
              las de Emacs o vi.  editing-mode puede ponerse a los valores emacs o vi.
       emacs-mode-string (@)
              If  the  show-mode-in-prompt  variable  is  enabled,  this  string   is   displayed
              immediately  before  the last line of the primary prompt when emacs editing mode is
              active.  The value is expanded like a key binding, so the standard set of meta- and
              control  prefixes  and  backslash escape sequences is available.  Use the \1 and \2
              escapes to begin and end sequences of non-printing characters, which can be used to
              embed a terminal control sequence into the mode string.
       enable-active-region (On)
              The  point  is  the  current  cursor  position,  and  mark refers to a saved cursor
              position.  The text between the point and mark is referred to as the region.   When
              this  variable  is  set  to  On,  readline allows certain commands to designate the
              region as active.  When the region is active, readline highlights the text  in  the
              region  using  the  value  of  the active-region-start-color, which defaults to the
              string that enables the terminal's standout mode.  The active region shows the text
              inserted  by  bracketed-paste  and  any  matching  text  found  by  incremental and
              non-incremental history searches.
       enable-bracketed-paste (On)
              When set to On, readline configures the terminal to  insert  each  paste  into  the
              editing buffer as a single string of characters, instead of treating each character
              as if it had been read from the keyboard.  This prevents  readline  from  executing
              any editing commands bound to key sequences appearing in the pasted text.
       enable-keypad (Off)
              Cuando  se  pone  a  On,  readline  intentará activar el teclado auxiliar cuando se
              llame. Algunos sistemas necesitan esto  para  activar  las  teclas  de  flechas  de
              cursor.
       enable-meta-key (On)
              Cuando se pone a On, readline intentará activar cualquier modificación con la tecla
              meta para la que el terminal tenga soporte. En muchos terminales, la tecla meta  se
              usa para escribir caracteres de 8 bits.
       expand-tilde (Off)
              Si  se  pone  a  On,  la  expansión  de tilde se realiza cuando readline intenta la
              terminación de palabras.
       history-preserve-point (Off)
              If set to On, the history code attempts to place point at the same location on each
              history line retrieved with previous-history or next-history.
       history-size (unset)
              Set  the  maximum  number  of history entries saved in the history list.  If set to
              zero, any existing history entries are deleted and no new entries  are  saved.   If
              set  to  a  value less than zero, the number of history entries is not limited.  By
              default, the number of history entries is set to the value of  the  HISTSIZE  shell
              variable.   If  an  attempt is made to set history-size to a non-numeric value, the
              maximum number of history entries will be set to 500.
       horizontal-scroll-mode (Off)
              When set to On, makes readline use a single line for display, scrolling  the  input
              horizontally  on  a single screen line when it becomes longer than the screen width
              rather than wrapping to a new line.  This  setting  is  automatically  enabled  for
              terminals of height 1.
       input-meta (Off)
              Si  se  pone  a  On, readline habilitará la entrada de 8 bits (esto es, no pondrá a
              cero el octavo bit de los caracteres que lea), sin importar lo que la terminal diga
              que  admite. El nombre meta-flag es un sinónimo para esta variable. Por defecto, su
              valor es off aunque readline lo pondrá a On si la localización contiene  caracteres
              de  8  bits. Esta variable depende de LC_TYPE pudiendo variar según la localización
              empleada.
       isearch-terminators (“C-[C-J”)
              The string of characters  that  should  terminate  an  incremental  search  without
              subsequently  executing  the character as a command.  If this variable has not been
              given a value, the characters ESC and C-J will terminate an incremental search.
       keymap (emacs)
              Establece el mapa de teclado actual para readline. El conjunto de nombres de  mapas
              de   teclado   válidos   es  emacs,  emacs-standard,  emacs-meta,  emacs-ctlx,  vi,
              vi-command, y vi-insert.  vi es equivalente a vi-command; emacs  es  equivalente  a
              emacs-standard.  El valor predeterminado es emacs; el valor de editing-mode también
              afecta al mapa de teclado predeterminado.
       keyseq-timeout (500)
              Specifies the duration readline will wait for a character when reading an ambiguous
              key  sequence  (one  that  can form a complete key sequence using the input read so
              far, or can take additional input to complete a longer key sequence).  If no  input
              is  received  within  the  timeout,  readline will use the shorter but complete key
              sequence.  The value is specified in milliseconds, so a value of  1000  means  that
              readline  will  wait one second for additional input.  If this variable is set to a
              value less than or equal to zero, or to a non-numeric  value,  readline  will  wait
              until another key is pressed to decide which key sequence to complete.
       mark-directories (On)
              Si se pone a On, los nombres de directorios completados tendrán una barra inclinada
              añadida al final.
       mark-modified-lines (Off)
              Si se pone a On, las líneas de historia que hayan sido modificadas se muestran  con
              un asterisco precediéndolas (*).
       mark-symlinked-directories (Off)
              If  set to On, completed names which are symbolic links to directories have a slash
              appended (subject to the value of mark-directories).
       match-hidden-files (On)
              This variable, when set to On, causes readline to match  files  whose  names  begin
              with  a `.' (hidden files) when performing filename completion.  If set to Off, the
              leading `.' must be supplied by the user in the filename to be completed.
       menu-complete-display-prefix (Off)
              If set to On, menu completion displays the common prefix of the  list  of  possible
              completions (which may be empty) before cycling through the list.
       output-meta (Off)
              If  set  to  On,  readline will display characters with the eighth bit set directly
              rather than as a meta-prefixed escape sequence.  The default is Off,  but  readline
              will  set  it  to On if the locale contains eight-bit characters.  This variable is
              dependent on the LC_CTYPE locale category, and may change if the locale is changed.
       page-completions (On)
              Si está a On, readline emplea un paginador interno, similar a more, para mostrar en
              la pantalla todas las posibilidades autocompletado al mismo tiempo.
       print-completions-horizontally (Off)
              Si  se  pone  a  On, readline mostrará terminaciones con concordancias clasificadas
              horizontalmente en orden alfabético, en vez de verticalmente.
       revert-all-at-newline (Off)
              If set to On, readline will undo all changes to history lines before returning when
              accept-line  is  executed.   By  default,  history lines may be modified and retain
              individual undo lists across calls to readline.
       show-all-if-ambiguous (Off)
              Esto altera el comportamiento predeterminado de las funciones de terminación. Si se
              pone  a  On,  las  palabras que tienen más de una posible terminación hacen que las
              concordancias se muestren inmediatamente en vez de tocarse el pito de la terminal.
       show-all-if-unmodified (Off)
              This alters the default behavior of the completion functions in a  fashion  similar
              to  show-all-if-ambiguous.   If  set to On, words which have more than one possible
              completion without any possible partial completion (the possible completions  don't
              share  a  common  prefix)  cause  the  matches  to be listed immediately instead of
              ringing the bell.
       show-mode-in-prompt (Off)
              If set to On, add a string to the beginning of the prompt  indicating  the  editing
              mode:  emacs,  vi  command,  or  vi  insertion.  The mode strings are user-settable
              (e.g., emacs-mode-string).
       skip-completed-text (Off)
              If set to On, this alters the default completion behavior when inserting  a  single
              match  into the line.  It's only active when performing completion in the middle of
              a word.  If enabled, readline does not insert characters from the  completion  that
              match  characters  after point in the word being completed, so portions of the word
              following the cursor are not duplicated.
       vi-cmd-mode-string ((orden))
              If  the  show-mode-in-prompt  variable  is  enabled,  this  string   is   displayed
              immediately  before  the  last  line  of the primary prompt when vi editing mode is
              active and in command mode.  The value is expanded  like  a  key  binding,  so  the
              standard  set  of  meta-  and  control  prefixes  and backslash escape sequences is
              available.  Use the \1 and \2 escapes to begin and end  sequences  of  non-printing
              characters,  which  can  be used to embed a terminal control sequence into the mode
              string.
       vi-ins-mode-string ((ins))
              If  the  show-mode-in-prompt  variable  is  enabled,  this  string   is   displayed
              immediately  before  the  last  line  of the primary prompt when vi editing mode is
              active and in insertion mode.  The value is expanded like a  key  binding,  so  the
              standard  set  of  meta-  and  control  prefixes  and backslash escape sequences is
              available.  Use the \1 and \2 escapes to begin and end  sequences  of  non-printing
              characters,  which  can  be used to embed a terminal control sequence into the mode
              string.
       visible-stats (Off)
              Si se pone a On, se añade un carácter que represente un tipo de  fichero  según  lo
              que devuelve stat(2) cuando se listan las terminaciones posibles.

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

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

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

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

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

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

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

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

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

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

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

              $include  /etc/inputrc

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

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

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

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

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

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

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

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

   Órdenes para Cambiar el Texto
       end-of-file (generalmente C-d)
              El  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  del
              trabajo en curso.  bg espectrab devuelve 0 a menos que se ejecute cuando el control
              de tareas esté deshabilitado,  o  cuando  se  ejecute  con  el  control  de  tareas
              habilitado si espectrab no se encontró, o cuando se inició sin control de tareas.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

              The return status is 0 unless no command matches pattern.

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

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

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

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

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

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

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

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

       logout Sale de la shell.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

              La lista de las opciones de shopt es:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

              0 argumentos
                     La expresión es falsa.
              1 argumento
                     La expresión es verdad si y solo si el argumento no está vacío.
              2 argumentos
                     Si el primer argumento es !, la expresión es verdad si y solo si el  segundo
                     argumento  es  nulo.   Si  el  primer  argumento  es  uno  de los operadores
                     condicionales monarios  listados  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]]
              Provides control over the resources available to the shell and to processes started
              by it, on systems that allow such control.  The -H and -S options specify that  the
              hard or soft limit is set for the given resource.  A hard limit cannot be increased
              by a non-root user once it is set; a soft limit may be increased up to the value of
              the  hard  limit.  If neither -H nor -S is specified, both the soft and hard limits
              are set.  The value of limit can be a number in the unit specified for the resource
              or  one of the special values hard, soft, or unlimited, which stand for the current
              hard limit, the current soft limit,  and  no  limit,  respectively.   If  limit  is
              omitted, the current value of the soft limit of the resource is printed, unless the
              -H option is given.  When more than one resource is specified, the limit  name  and
              unit,  if appropriate, are printed before the value.  Other options are interpreted
              as follows:
              -a     Se informa de todos los límites actuales; no se configura ninguno
              -b     El tamaño máximo de buffer del conector
              -c     El tamaño máximo de archivo de volcados de memoria (core)
              -d     El tamaño máximo del segmento de datos de un proceso
              -e     La máxima prioridad de ejecución ("nice")
              -f     El tamaño máximo de los archivos creados por la shell y sus descendientes
              -i     El número máximo de señales pendientes
              -k     El número máxima de kqueues que se pueden acomodar
              -l     El tamaño máximo que puede ser bloqueado en memoria
              -m     El tamaño máximo de memoria residente (la mayoría de sistemas  no  tiene  en
                     cuenta este valor)
              -n     EL  número  máximo  de  descriptores  de  archivos  abiertos  (la mayoría de
                     sistemas no permiten establecer este valor)
              -p     El tamaño de  una  tubería  en  bloques  de  512  B  (esto  puede  no  estar
                     establecido)
              -q     El número máximo de bytes en la cola de mensajes POSIX
              -r     La máxima prioridad de ejeución en tiempo real.
              -s     El tamaño máximo de pila
              -t     La máxima cantidad de tiempo de CPU en segundos
              -u     El número máximo de procesos disponibles para un solo usuario
              -v     La máxima cantidad de memoria virtual disponible para la shell y, en algunos
                     sistemas, para sus descendientes.
              -x     La cantidad máxima de bloqueos de archivo
              -P     The maximum number of pseudoterminals
              -R     El tiempo máximo, en microsegundos,  que  puede  ejecutarse  un  proceso  en
                     tiempo real antes de bloquearse.
              -T     La cantidad máxima de hilos

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

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

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

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

       wait [-fn] [-p nombrevariable] [id ...]
              Wait  for  each specified child process and return its termination status.  Each id
              may be a process ID or a job specification; if a job spec is given,  all  processes
              in  that  job's  pipeline  are  waited for.  If id is not given, wait waits for all
              running background jobs and the last-executed process substitution, if its  process
              id is the same as $!, and the return status is zero.  If the -n option is supplied,
              wait waits for a single job from the list of ids or, if no ids  are  supplied,  any
              job, to complete and returns its exit status.  If none of the supplied arguments is
              a child of the shell, or if  no  arguments  are  supplied  and  the  shell  has  no
              unwaited-for  children,  the exit status is 127.  If the -p option is supplied, the
              process or job identifier of the job for which  the  exit  status  is  returned  is
              assigned  to  the variable varname named by the option argument.  The variable will
              be unset initially, before any assignment.  This is useful only when the -n  option
              is  supplied.  Supplying the -f option, when job control is enabled, forces wait to
              wait for id to terminate before returning its status, instead of returning when  it
              changes  status.   If id specifies a non-existent process or job, the return status
              is 127.  If wait is interrupted by a signal, the return status will be greater than
              128,  as  described  under  SIGNALS  above.  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 arranca con el nombre rbash, o se da la opción -r en la llamada,  la  shell  se
       convierte  en restringido.  Una shell restringida se emplea para establecer un entorno más
       controlado que el que la shell estándar proporciona.  Se comporta de forma idéntica a bash
       con la excepción de que lo siguiente no está permitido o no se realiza:

       •      cambiar de directorio con cd

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

       •      especificar nombres de órdenes que contengan /

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

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

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

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

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

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

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

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

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

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

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

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

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

VÉASE TAMBIÉN

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

ARCHIVOS

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

AUTORES

       Brian Fox, Free Software Foundation
       bfox@gnu.org

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

INFORMES DE FALLOS

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

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

       TODOS los informes de fallos deben incluir:

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

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

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

ERRORES

       Es demasiado grande y demasiado lento.

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

       Los alias son confusos en algunos casos.

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

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

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

       Solo puede haber un coproceso activo a la vez.

TRADUCCIÓN

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

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

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