Provided by: manpages-es-extra_0.8a-17_all bug

NOMBRE

       bash - GNU Bourne-Again SHell (el Shell de Bourne otra vez, de GNU)

SINOPSIS

       bash [opciones] [fichero]

DERECHOS DE COPIA

       Bash es Copyright (C) 1989, 1991, 1993, 1995, 1996 por la Free Software
       Foundation, Inc.

DESCRIPCI'ON

       Bash es un interprete de un lenguaje de ordenes compatible con  sh  que
       ejecuta  ordenes  leidas  desde la entrada estandar o desde un fichero.
       Bash tambien incorpora caracteristicas utiles tomadas de los shells  de
       Korn y C (ksh y csh).

       Bash  esta  pensado con la intencion de ser una implementacion conforme
       con la especificacion POSIX de Shell y Herramientas, de la IEEE  (Grupo
       de Trabajo 1003.2 de la IEEE).

OPCIONES

       Ademas  de  las  opciones  de  un  solo  caracter  documentadas  en  la
       descripcion de la orden interna set,  bash  interpreta  las  siguientes
       opciones cuando es llamado:

       -c cadena Si  la  opcion -c esta presente, entonces las ordenes se leen
                 de cadena.  Si hay argumentos tras la cadena,  se  asignan  a
                 los parametros posicionales, empezando por $0.
       -r        Si  la  opcion  -r esta presente, entonces el shell se vuelve
                 restringido (vea SHELL RESTRINGIDO mas abajo).
       -i        Si la opcion -i esta presente, el shell es interactivo.
       -s        Si la opcion -s esta presente, o si no quedan argumentos tras
                 el  procesado  de  las opciones, entonces las ordenes se leen
                 desde la entrada estandar. Esta opcion  permite  definir  los
                 parametros   posicionales   cuando   se   llama  a  un  shell
                 interactivo.
       -D        Se muestra en la salida estandar  una  lista  de  cadenas  de
                 caracteres  entrecomilladas  precedidas por $.  Estas cadenas
                 son las que estan sujetas a traduccion cuando la localizacion
                 en  curso  no  es C ni POSIX.  Esta opcion implica tambien la
                 -n; no se ejecuta ninguna orden.
       --        Un -- senala 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 tambien interpreta una variedad de opciones multi-caracter.  Estas
       opciones deben aparecer en la linea de ordenes antes de las opciones de
       un solo caracter para que puedan ser reconocidas.

       --dump-po-strings
              Equivalente  a -D, pero la salida es en el formato de un fichero
              po (objeto portable), del gettext de GNU.
       --dump-strings
              Equivalente a -D.
       --help Muestra un mensaje de modo de empleo en  la  salida  estandar  y
              acaba con exito.
       --login
              Hace  que bash actue como si se le hubiera llamado como un shell
              de entrada (vea LLAMADA mas abajo).
       --noediting
              No utiliza la biblioteca de GNU readline  para  leer  lineas  de
              ordenes en 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  omision,  bash  lee estos
              ficheros cuando se le  llama  como  un  shell  de  entrada  (vea
              LLAMADA mas adelante).
       --norc No  lee ni ejecuta el fichero de inicio personal ~/.bashrc si el
              shell  es  interactivo.   Esta  opcion  esta  activa  de   forma
              predeterminada si el shell se llama como sh.
       --posix
              Cambia  el  comportamiento  de  bash  donde  la operacion normal
              difiera del estandar POSIX 1003.2, de forma  que  concuerde  con
              este.
       --rcfile fichero
              Ejecuta  ordenes  desde  fichero  en  vez de desde el fichero de
              inicio personal estandar ~/.bashrc si el  shell  es  interactivo
              (vea LLAMADA mas abajo).
       --restricted
              El  shell  se  vuelve  restringido  (vea  SHELL  RESTRINGIDO mas
              abajo).
       --verbose
              Equivale a  -v.
       --version
              Muestra informacion en la salida estandar sobre  la  version  de
              esta instanciacion de bash y acaba con exito.

ARGUMENTOS

       Si  quedan  argumentos  tras  el procesado de las opciones, y no se han
       dado ni la opcion -c ni la -s, se supone que el primer argumento es  el
       nombre  de un fichero que contiene ordenes del shell.  Si bash se llama
       de esta manera,  $0  se  define  con  el  nombre  del  fichero,  y  los
       parametros  posicionales se definen con los restantes argumentos.  Bash
       lee y ejecuta ordenes de este  fichero,  luego  acaba.   El  estado  de
       salida  de  bash es el de la ultima orden ejecutada en el guion.  Si no
       se ejecuta ninguna orden, el estado de salida es 0.

LLAMADA

       Un shell de entrada es aquel cuyo primer caracter del argumento cero es
       un -, o uno que ha sido llamado con la opcion --login.

       Un  shell  interactivo  es  uno  cuya entrada y salida estandares estan
       conectadas a terminales (segun determina isatty(3)), o uno que ha  sido
       llamado  con  la  opcion  -i.   Se define PS1 y $- incluye i si bash es
       interactivo, permitiendo asi a un guion del shell o  a  un  fichero  de
       arranque el comprobar este estado.

       Los  siguientes  parrafos  describen  como bash ejecuta sus ficheros de
       arranque.  Si cualquiera de los ficheros existe pero no  puede  leerse,
       bash informa de un error.  Las tildes de la n se expanden en nombres de
       ficheros como se describe mas abajo en Expansi'on  de  la  tilde  en  la
       seccion EXPANSI'ON.

       Cuando  bash se llama como un shell de entrada interactivo, primero lee
       y ejecuta ordenes desde el fichero  /etc/profile,  si  es  que  existe.
       Tras   leer   ese  fichero,  busca  ~/.bash_profile,  ~/.bash_login,  y
       ~/.profile, en ese orden, y lee y ejecuta ordenes del primero de  ellos
       que  exista  y  se  pueda  leer.  La opcion --noprofile puede emplearse
       cuando se llame al shell para inhibir este comportamiento.

       Cuando un shell de entrada termina, bash lee y ejecuta ordenes desde el
       fichero ~/.bash_logout, si existe.

       Cuando se arranca un shell interactivo que no es de entrada, bash lee y
       ejecuta ordenes desde ~/.bashrc, si es que existe.  Esto puede evitarse
       mediante la opcion --norc.  La opcion --rcfile fichero forzara a bash a
       leer y ejecutar ordenes desde fichero en vez de ~/.bashrc.

       Cuando bash se arranque de  forma  no  interactiva,  por  ejemplo  para
       ejecutar  un guion del shell, busca la variable BASH_ENV en el entorno,
       expande su valor si esta 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 ordenes:
              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 llama con el nombre sh, intenta imitar el comportamiento de
       arranque de versiones historicas de sh tanto como sea posible, pero sin
       salirse  del estandar POSIX.  Cuando se llama como un shell interactivo
       de entrada, primero intenta leer y ejecutar ordenes desde  /etc/profile
       y ~/.profile, en ese orden.  La opcion --noprofile puede emplearse para
       inhibir este comportamiento.  Cuando se llama como un shell interactivo
       con  el nombre sh, bash busca la variable ENV, expande su valor si esta
       definida, y emplea el valor expandido como el nombre de  un  fichero  a
       leer  y  ejecutar.   Como  un  shell  llamado como sh no intenta leer y
       ejecutar ordenes desde cualquier otro fichero de  arranque,  la  opcion
       --rcfile  no  tiene  efecto.   Un  shell  no interactivo llamado con el
       nombre sh no intenta leer ningun fichero de arranque.  Cuando se  llama
       como  sh,  bash  entra  en  modo  posix despues de leer los ficheros de
       arranque.

       Cuando bash se arranca en modo posix,  como  ocurre  cuando  se  da  la
       opcion  de  linea  de ordenes --posix, sigue el estandar POSIX para los
       ficheros de arranque.  En este modo, los shells  interactivos  expanden
       la  variable  ENV  y  se  leen y ejecutan ordenes desde el fichero cuyo
       nombre es el valor expandido de dicha variable.  No se lee ningun  otro
       fichero de arranque.

       Bash  intenta  determinar  cuando esta siendo llamado por el demonio de
       shell remoto, usualmente rshd.   Si  bash  determina  que  esta  siendo
       ejecutado  por  rshd,  lee  y  ejecuta  ordenes desde ~/.bashrc, si tal
       fichero existe y se puede leer.  Esto no lo hara si se le llama con  el
       nombre  sh.   La  opcion  --norc  puede  emplearse  para  inhibir  este
       comportamiento, y la opcion --rcfile puede utilizarse  para  forzar  la
       lectura  de  otro fichero, pero rshd no llama generalmente al shell con
       estas opciones ni permite que se den.

DEFINICIONES

       Las siguientes  definiciones  se  usan  a  traves  del  resto  de  este
       documento.
       blanco Un espacio en blanco o tabulacion (tab).
       palabra
              Una  secuencia  de caracteres considerados por el shell como una
              sola unidad.  Tambien se conoce como un lexema (token).
       nombre Una palabra que consiste solamente en caracteres alfanumericos y
              subrayados,   y   comienza  con  un  caracter  alfabetico  o  un
              subrayado. Tambien se llama identificador.
       metacar'acter
              Un caracter que, cuando no esta entrecomillado, separa palabras.
              Uno de los siguientes:
              |  & ; ( ) < > espacio tab
       operador de control
              Un  lexema  que  realiza  una  funcion de control. Es uno de los
              siguientes simbolos:
              || & && ; ;; ( ) | <nueva-l'inea>

PALABRAS RESERVADAS

       Palabras reservadas son palabras que  tienen  un  significado  especial
       para  el  shell.  Las  siguientes palabras se reconocen como reservadas
       cuando no van entrecomilladas y, o son la primera palabra de una  orden
       simple  (vea GRAM'ATICA DEL SHELL mas abajo) o la tercera palabra de una
       orden case o for:

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

GRAM'ATICA DEL SHELL

   'Ordenes 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. Las palabras restantes se pasan como  argumentos
       a la orden pedida.

       El  valor  devuelto de una orden simple es su estado de salida, o 128+n
       si la orden ha terminado debido a la senal n.

   Tuber'ias
       Una tuber'ia es una secuencia de una o  mas  ordenes  separadas  por  el
       caracter |.  El formato de una tuberia es:

              [time [-p]] [ ! ] orden [ | orden2 ... ]

       La salida estandar de orden se conecta a la entrada estandar de orden2.
       Esta conexion se realiza antes que cualquier  redireccion  especificada
       por la orden (vea REDIRECCI'ON mas abajo).

       Si  la palabra reservada !  precede una tuberia, el estado de salida de
       esta es el NO logico del de la ultima orden. De otro modo, el estado de
       la  tuberia  es  el  de salida de la ultima orden.  El shell espera que
       todas las ordenes de la tuberia terminen antes de devolver un valor.

       Si la palabra reservada time precede una tuberia, se informa del tiempo
       transcurrido,  asi  como  del  de  usuario  y  sistema, consumido en la
       ejecucion de la tuberia, cuando esta termina.  La opcion -p  cambia  el
       formato  de  salida  al especificado por POSIX.  La variable TIMEFORMAT
       puede  definirse  como  una  cadena  de  caracteres  de   formato   que
       especifique  como  la  informacion de tiempos deberia mostrarse; vea la
       descripcion de TIMEFORMAT bajo Variables del Shell mas abajo.

       Cada orden en una tuberia se ejecuta como un proceso separado (esto es,
       en un subshell).

   Listas
       Una  lista  es una secuencia de una o mas tuberias separadas por uno de
       los operadores ;, &, &&, o ||, y terminada opcionalmente por uno de  ;,
       &, o <nueva-l'inea>.

       De  estos  operadores  de  listas,  &&  y  || tienen igual precedencia,
       seguidos por ; y &, que tienen igual precedencia.

       Si una orden se termina mediante el operador de  control  &,  el  shell
       ejecuta  la  orden en segundo plano en un subshell.  El shell no espera
       que la orden acabe, y el estado devuelto es 0.  Las  ordenes  separadas
       por  un  ;  se ejecutan secuencialmente; el shell espera que cada orden
       termine, por orden. El estado devuelto es el estado  de  salida  de  la
       ultima orden ejecutada.

       Los  operadores  de  control  &&  y  || denotan listas Y (AND) y O (OR)
       respectivamente.  Una lista Y tiene la forma

              orden && orden2

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

       Una lista O tiene la forma

              orden || orden2

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

   'Ordenes compuestas
       Una orden compuesta es una de las siguientes:

       (lista)
              lista se ejecuta en un subshell. Despues  de  que  la  orden  se
              completa,  las  asignaciones  a variables y ordenes internas que
              afectaran al entorno del  shell  no  permanecen  en  efecto.  El
              estado de retorno es el de salida de lista.

       { lista; }
              lista  se  ejecuta simplemente en el entorno del shell en curso.
              lista debe terminarse con un salto de linea o un punto  y  coma.
              Esto se conoce como una orden de grupo.  El estado de retorno es
              el de salida de lista.

       ((expresi'on))
              La expresi'on se evalua de acuerdo a las reglas  descritas  abajo
              bajo  la  seccion  EVALUACI'ON  ARITM'ETICA.   Si  el  valor de la
              expresion es distinto de cero, el estado de  retorno  es  0;  de
              otro  modo  el  estado  de  retorno  es  1.  Esto es equivalente
              exactamente a let "expresi'on".

       [[ expresi'on ]]
              Devuelve un estado de 0 o 1 dependiendo de la evaluacion  de  la
              expresion condicional expresi'on.  Las expresiones se componen de
              las primarias descritas adelante bajo EXPRESIONES CONDICIONALES.
              No  tienen lugar division de palabras ni expansion de nombres de
              camino en las palabras entre el [[ y el ]]; si  se  realizan  la
              expansion   de  tilde,  expansion  de  parametros  y  variables,
              expansion  aritmetica,  sustitucion  de  orden,  sustitucion  de
              proceso y eliminacion de comillas.

              Cuando se emplean los operadores == y !=, la cadena a la derecha
              del operador se considera un  patron  y  se  hace  concordar  de
              acuerdo  a  las  reglas  descritas mas adelante bajo el epigrafe
              Concordancia de patrones.  El valor devuelto es 0 si  la  cadena
              concuerda  o no concuerda con el patron, respectivamente, y 1 en
              otro caso.  Cualquier parte  del  patron  puede  entrecomillarse
              para forzar la concordancia como una cadena de caracteres pura.

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

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

       Los operadores && y || no ejecutan expresi'on2 si el valor de expresi'on1
       es  suficiente  para  determinar  el  valor  de retorno de la expresion
       condicional entera.

       for nombre [ in palabra; ] do lista ; done
              La lista de palabras que va detras de in se  expande,  generando
              una  lista  de elementos. La variable nombre se define como cada
              elemento de la lista en cada iteracion, y lista se ejecuta  cada
              vez.  Si  la  palabra de in se omite, la orden for ejecuta lista
              una vez para cada parametro posicional que  este  definido  (vea
              PAR'AMETROS  mas abajo).  El estado de retorno es el de salida de
              la ultima  orden  que  se  ejecuta.   Si  la  expansion  de  los
              elementos  despues  del  in  resulta  en  una lista vacia, no se
              ejecuta ninguna orden y el estado de salida es 0.

       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 estandar de errores, cada una precedida por
              un  numero.  Si  la  palabra  del  in  se omite, se muestran los
              parametros posicionales (vea PAR'AMETROS mas abajo).  Entonces se
              muestra  el  indicador  PS3  y se lee una linea desde la entrada
              estandar.  Si la linea consiste en un numero  correspondiente  a
              una  de  las  palabras mostradas, entonces el valor de nombre se
              pone a esa palabra. Si la linea esta vacia, las  palabras  y  el
              indicador  se  muestran  de  nuevo.  Si  se lee EOF, la orden se
              completa. Cualquier otro valor leida hace que nombre se ponga  a
              un  valor  vacio. La linea leida se guarda en la variable REPLY.
              La lista se ejecuta tras cada seleccion hasta que se ejecute una
              orden break o return.  El estado de salida de select es el de la
              ultima orden ejecutada en lista, o cero si no  se  ha  ejecutado
              ninguna orden.

       case palabra in [ ( patr'on [ | patr'on ] ... ) lista ;; ] ... esac
              Una  orden  case  expande  primero  palabra,  e  intenta hacerla
              concordar contra cada patr'on por turnos,  empleando  las  mismas
              reglas  de  concordancia  que  para  la  expansion de nombres de
              caminos (vea Expansi'on de nombre de camino mas  abajo).   Cuando
              se   encuentre   una   concordancia,   se   ejecuta   la   lista
              correspondiente. Tras la primera concordancia,  no  se  intentan
              mas.  El estado de salida es cero si no concuerda ningun patron.
              De otro modo,  es  el  estado  de  salida  de  la  ultima  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 esta presente. El estado de  salida  es
              el de la ultima orden ejecutada, o cero si ninguna condicion fue
              verdadera.

       while lista; do lista; done
       until lista; do lista; done
              La orden while ejecuta continuamente la lista do siempre que  la
              ultima  orden  de  lista  devuelva  un estado de salida cero. La
              orden  until  es  identica  a  la  while,  excepto  en  que   la
              comprobacion es al reves; la lista do se ejecuta mientras que la
              ultima orden en lista devuelva un estado de salida  distinto  de
              cero.  El estado de salida de las ordenes while y until es el de
              la ultima orden de la lista  do  ejecutada,  o  cero  si  no  se
              ejecuto ninguna orden.

       [ function ] nombre () { lista; }
              Esto  define una funcion llamada nombre. El cuerpo de la funcion
              es la lista de ordenes entre { y } . Esta lista se ejecuta  cada
              vez que se especifica nombre como el nombre de una orden simple.
              El estado de salida de una funcion es  el  de  la  ultima  orden
              ejecutada en el cuerpo. (Vea FUNCIONES mas abajo.)

COMENTARIOS

       En  un  shell  no interactivo, o en uno interactivo en el que la opcion
       interactive_comments de la orden interna shopt esta activa (vea 'ORDENES
       INCORPORADAS  DEL  SHELL mas abajo), una palabra que empiece por # hace
       que esa palabra y todos los caracteres que queden en esa linea no  sean
       tenidos    en    cuenta.   Un   shell   interactivo   sin   la   opcion
       interactive_comments  habilitada,  no  admite  comentarios.  La  opcion
       interactive_comments  esta  activa  de  forma  predeterminada en shells
       interactivos.

ENTRECOMILLADO

       El entrecomillado se emplea para quitar el significado especial para el
       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 expansion
       de parametros.

       Cada uno de los metacaracteres listados a continuacion bajo el epigrafe
       DEFINICIONES  tiene  un  significado especial para el shell y deben ser
       protegidos o entrecomillados si quieren representarse a si mismos.  Hay
       3  mecanismos de proteccion: el car'acter de escape, comillas simples, y
       comillas dobles.

       Una barra inclinada inversa no entrecomillada (\)  es  el  car'acter  de
       escape.   Preserva  el  valor  literal  del  siguiente  caracter que lo
       acompana, con  la  excepcion  de  <nueva-linea>.   Si  aparece  un  par
       \<nueva-linea>  y la barra invertida no esta ella misma entre comillas,
       el \<nueva-linea> se trata como una continuacion de linea (esto es,  se
       quita del flujo de entrada y no se tiene efectivamente en cuenta).

       Encerrar  caracteres entre apostrofos preserva el valor literal de cada
       caracter 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 excepcion de  $,
       `,  y  \.   Los  caracteres $ y ` mantienen sus significados especiales
       dentro de comillas dobles. La barra invertida mantiene  su  significado
       especial  solamente  cuando  esta  seguida  por  uno  de los siguientes
       caracteres: $, `, "", \, o <nueva-l'inea>.  Una comilla doble puede  ser
       entrecomillada  entre  otras comillas dobles precediendola de una barra
       invertida.

       Los parametros especiales * y @ tienen un significado  especial  cuando
       estan entre comillas dobles (vea PAR'AMETROS mas abajo).

       Las  palabras  de  la  forma  $'cadena' se tratan de forma especial. La
       palabra se expanda a cadena, con los caracteres  protegidos  par  barra
       invertida  reemplazados segun especifica el estandar ANSI/ISO de C. Las
       secuencias de escape  con  barra  invertida,  si  estan  presentes,  se
       descodifican como sigue:
              \a     alerta (campana)
              \b     espacio-atras
              \e     un caracter de escape (ESC)
              \f     nueva pagina
              \n     nueva linea
              \r     retorno de carro
              \t     tabulacion horizontal
              \v     tabulacion vertical
              \\     barra invertida
              \nnn   el  caracter  cuyo codigo es el valor octal nnn (de uno a
                     tres digitos)
              \xnnn  el caracter cuyo codigo es el valor hexadecimal nnn

       El resultado traducido es entrecomillado con comillas simples, como  si
       el signo de dolar no hubiera estado presente.

       Una  cadena  entre  comillas dobles precedida por un signo de dolar ($)
       hara que la cadena se traduzca segun la localizacion en curso. Si  esta
       es C o POSIX, el signo de dolar no se tiene en cuenta.  Si la cadena se
       traduce y reemplaza, el reemplazo se entrecomilla con comillas dobles.

PAR'AMETROS

       Un par'ametro es una entidad que almacena valores.  Puede ser un nombre,
       un  numero,  o uno de los caracteres especiales listados a continuacion
       bajo el epigrafe Par'ametros especiales.  En lo que se refiere al shell,
       una variable es un parametro identificado por un nombre.

       Un  parametro  esta  definido  si se le ha asignado un valor. La cadena
       vacia es un valor valido. Una vez que una variable esta definida,  solo
       puede quitarse de la lista de variables mediante la orden interna unset
       (vea 'ORDENES INTERNAS DEL SHELL mas 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 vacia. Todos
       los valores estan  sujetos  a  expansion  de  tilde,  de  parametros  y
       variables,  de  cadena, de orden, aritmetica, y eliminacion de comillas
       (vea EXPANSI'ON mas abajo).  Si la variable tiene activado  su  atributo
       integer  (vea declare mas abajo en 'ORDENES INTERNAS DEL SHELL) entonces
       valor esta sujeto a expansion aritmetica incluso si  no  se  emplea  la
       expansion  $((...))  (vea  Expansi'on  aritm'etica  mas adelante).  No se
       realiza la division de palabras, con  la  excepcion  de  "$@"  como  se
       explica  mas  adelante  bajo  el  epigrafe  Par'ametros  especiales.  La
       expansion de nombres de camino no se efectua.

   Par'ametros posicionales
       Un par'ametro posicional es un parametro denotado por uno o mas digitos,
       distintos del simple 0. Los parametros posicionales se asignan a partir
       de los argumentos del shell  cuando  este  es  llamado,  y  pueden  ser
       reasignados mediante la orden interna set.  Los parametros posicionales
       no pueden ser asignados con sentencias de  asignacion.  Los  parametros
       posicionales  se reemplazan temporalmente cuando se ejecuta una funcion
       del shell (vea FUNCIONES abajo).

       Cuando un parametro posicional consistente en mas de un solo digito  se
       expande, debe rodearse por llaves (vea EXPANSI'ON abajo).

   Par'ametros especiales
       El  shell  trata  de  forma  especial  a ciertos parametros. Estos solo
       pueden referenciarse; no se permite asignarles nada.
       *      Se expande a  los  parametros  posicionales,  empezando  por  1.
              Cuando  la  expansion ocurre entre comillas dobles, se expande a
              una sola palabra con el valor de cada parametro separado por  el
              primer  caracter  de la variable especial IFS.  Esto es, "$*" es
              equivalente a "$1c$2c...", donde c es  el  primer  caracter  del
              valor  de  la  variable  IFS.   Si  IFS  no  esta  definida, los
              parametros se separan por espacios.  Si IFS es la cadena  vacia,
              los parametros se juntan sin ningun separador.
       @      Se  expande  a  los  parametros posicionales, empezando desde 1.
              Cuando la expansion  ocurre  dentro  de  comillas  dobles,  cada
              parametro  se  expande  a una palabra separada. Esto es, "$@" es
              equivalente  a  "$1"  "$2"  ...   Cuando   no   hay   parametros
              posicionales, "$@" y $@ se expanden a nada (esto es, se borran).
       #      Se expande al numero en base 10 de parametros posicionales.
       ?      Se  expande  al estado de la tuberia mas recientemente ejecutada
              en primer plano.
       -      Se expande a las opciones del shell activas actualmente segun se
              hayan especificado en la llamada, mediante la orden interna set,
              o las que haya puesto el mismo shell (como la opcion -i).
       $      Se expande al PID del shell. En un subshell (),  se  expande  al
              PID del shell actual, no al del subshell.
       !      Se  expande  al  PID  de la orden mas recientemente ejecutada en
              segundo plano (asincronamente).
       0      Se expande al nombre del shell o guion del shell. Este parametro
              se  pone en el inicio del shell. Si bash se llama con un fichero
              de ordenes, $0 se pone al nombre de  ese  fichero.  Si  bash  se
              arranca  con  la  opcion  -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.
       _      En el arranque del shell, se pone al nombre absoluto de  fichero
              del  shell o guion del shell que se esta ejecutando, tal como se
              ha pasado en  la  lista  de  argumentos.   Subsecuentemente,  se
              expande  al  ultimo  argumento  de  la  orden  anterior, tras la
              expansion.  Tambien se pone al nombre completo  del  fichero  de
              cada  orden  ejecutada,  y se pone en el entorno exportado a esa
              orden.  Cuando se esta comprobando si  hay  correo  nuevo,  este
              parametro  contiene  el nombre del fichero de correo o buzon que
              se esta comprobando actualmente.

   Variables del shell
       El shell pone automaticamente las siguientes variables:

       PPID   El PID del proceso padre del shell. Esta variable es de  lectura
              exclusiva.
       PWD    El directorio de trabajo actual como lo pone la orden cd.
       OLDPWD El directorio de trabajo anterior como lo puso la orden cd.
       REPLY  La linea de entrada leida por la orden interna read cuando no se
              le dan argumentos.
       UID    Se expande al UID del usuario en curso, puesta  en  el  arranque
              del shell. Esta variable es de lectura exclusiva.
       EUID   Se  expande  al  UID efectivo del usuario en curso, puesta en el
              arranque del shell. Esta variable es de lectura exclusiva.
       GROUPS Una variable vector conteniendo la lista de grupos de los que el
              usuario   actual   es  miembro.  Esta  variable  es  de  lectura
              exclusiva.
       BASH   Se expande al nombre completo del fichero empleado para llamar a
              esta instancia de bash.
       BASH_VERSION
              Se  expande  a  una  cadena  que  describe  la  version  de esta
              instancia de bash.
       BASH_VERSINFO
              Una  variable  vector  de  lectura  exclusiva   cuyos   miembros
              contienen  informacion  de  version para esta instancia de bash.
              Los valores asignados a los miembros del vector son como sigue:
              BASH_VERSINFO[0]        El   numero   mayor   de   version   (la
                                      distribuci'on).
              BASH_VERSINFO[1]        El numero menor de version (la versi'on).
              BASH_VERSINFO[2]        El nivel de parcheo.
              BASH_VERSINFO[3]        La version de construccion.
              BASH_VERSINFO[4]        El   estado   de  la  distribucion  (por
                                      ejemplo, beta1).
              BASH_VERSINFO[5]        El valor de MACHTYPE.

       SHLVL  Se incrementa en uno cada vez que se arranca una nueva instancia
              de bash.

       RANDOM Cada  vez  que  este  parametro  sea  referenciado, se genera un
              entero aleatorio entre  0  y  32767.  La  secuencia  de  numeros
              aleatorios  puede  iniciarse  asignando  un  valor a RANDOM.  Si
              RANDOM no esta  definido,  pierde  sus  propiedades  especiales,
              incluso si posteriormente es redefinido.

       SECONDS
              Cada  vez  que este parametro es referenciado, se devuelve en el
              el numero de segundos transcurridos desde la llamada  al  shell.
              Si   se  asigna  un  valor  a  SECONDS,  el  valor  devuelto  en
              posteriores referencias  es  el  numero  de  segundos  desde  la
              asignacion  mas el valor asignado.  Si SECONDS no esta definido,
              pierde sus propiedades especiales, incluso si posteriormente  es
              redefinido.

       LINENO Cada  vez que este parametro es referenciado, el shell sustituye
              un numero en base 10 representando el numero de linea secuencial
              actual  (empezando  por  1)  dentro de un guion o funcion. Si no
              estamos en un guion o funcion, no  se  garantiza  que  el  valor
              sustituido  tenga  significado.   Si  LINENO  no  esta definido,
              pierde sus propiedades especiales, incluso si posteriormente  es
              redefinido.

       HISTCMD
              El numero de "historia", o indice en la lista "historica", de la
              orden  actual.   Si  HISTCMD  no  esta  definido,   pierde   sus
              propiedades especiales, incluso si posteriormente es redefinido.

       DIRSTACK
              Una  variable  vector  (vea  Vectores  mas  abajo) que aloja los
              contenidos actuales de la pila de directorios.  Los  directorios
              aparecen  en  la  pila  en el orden en el que se muestran con la
              orden interna dirs.  La asignacion a  miembros  de  este  vector
              puede  emplearse  para  modificar directorios que ya esten en la
              pila, pero entonces deben utilizarse las ordenes internas  pushd
              y  popd  para anadir y quitar directorios.  La asignacion a esta
              variable no cambiara el directorio de trabajo.  Si  DIRSTACK  no
              esta  definido,  pierde  sus  propiedades especiales, incluso si
              posteriormente es redefinido.

       PIPESTATUS
              Una variable vector (vea Vectores mas abajo)  que  contiene  una
              lista  de  valores  de  estado  de  salida de los procesos en la
              tuberia en primer plano ejecutada mas recientemente  (que  puede
              contener una sola orden).

       OPTARG El valor del ultimo argumento que es una opcion procesado por la
              orden interna  getopts  (vea  'ORDENES  INTERNAS  DEL  SHELL  mas
              abajo).

       OPTIND El  indice  del siguiente argumento a ser procesado por la orden
              interna getopts (vea 'ORDENES INTERNAS DEL SHELL mas abajo).

       HOSTNAME
              Puesto automaticamente  al  nombre  del  anfitrion  (computador)
              actual.

       HOSTTYPE
              Puesto  automaticamente  a  una  cadena  que  describe  de forma
              univoca el tipo de maquina en la que bash  se  esta  ejecutando.
              El valor predefinido depende del sistema.

       OSTYPE Puesto  automaticamente  a  una  cadena  que describe el sistema
              operativo  en  el  que  bash  se  esta  ejecutando.   El   valor
              predefinido depende del sistema. En Linux es "linux".

       MACHTYPE
              Puesto  automaticamente  a una cadena que describe completamente
              el tipo de sistema en el que bash  se  esta  ejecutando,  en  el
              formato   estandar   de   GNU  cpu-compa~n'ia-sistema.   El  valor
              predefinido depende del sistema.

       SHELLOPTS
              Una lista, de elementos separados por dos  puntos,  de  opciones
              activas  del  shell.  Cada  palabra  en la lista es un argumento
              valido para la opcion -o de la orden interna  set  (vea  'ORDENES
              INTERNAS   DEL  SHELL  abajo).  Las  opciones  que  aparecen  en
              SHELLOPTS son aquellas que aparecen como on en set -o.  Si  esta
              variable  esta  en  el ambiente cuando bash empieza, cada opcion
              del shell en la  lista  se  activara  antes  de  leer  cualquier
              fichero de inicio.  Esta variable es de lectura exclusiva.

       El  shell  hace uso de las siguientes variables. En algunos casos, bash
       asigna un valor predeterminado a una variable;  estos  casos  se  dicen
       abajo.

       IFS    El  Separador Interno de Campo que se emplea para la division de
              palabras tras la expansion y para dividir lineas en palabras con
              la   orden   interna   read.    El   valor   predeterminado   es
              ``<espacio><tab><nueva-linea>''.
       PATH   El camino de busqueda para ordenes,  programas  ejecutables.  Es
              una  lista de directorios separados por dos puntos en los cuales
              el shell busca ordenes (vea EJECUCI'ON DE 'ORDENES mas abajo).  El
              camino   predeterminado  depende  del  sistema,  y  lo  pone  el
              administrador   que   instala   bash.    Un   valor   comun   es
              ``/usr/local/bin:/bin:/usr/bin:.''.
       HOME   El  directorio  inicial  de  trabajo  del  usuario  en curso; el
              argumento predeterminado para la orden interna cd.  El valor  de
              esta  variable  se usa tambien cuando se realiza la expansion de
              tilde.
       CDPATH El camino de busqueda  para  la  orden  cd.   Es  una  lista  de
              directorios  separados  por  dos  puntos  en los cuales el shell
              busca directorios destino especificados por  la  orden  cd.   Un
              valor de muestra es ``.:~:/usr''.
       BASH_ENV
              Si  este  parametro esta definido cuando bash esta ejecutando un
              guion del shell, su  valor  se  interpreta  como  un  nombre  de
              fichero  que  contiene  ordenes  para  iniciar el shell, como en
              ~/.bashrc.  El valor de BASH_ENV  esta  sujeto  a  expansion  de
              parametros, sustitucion de ordenes y expansion aritmetica, antes
              de ser interpretado como un nombre de fichero.  PATH no  se  usa
              para buscar el nombre de fichero resultante.
       MAIL   Si  este  parametro  esta  puesto  a  un  nombre de fichero y la
              variable MAILPATH no esta definida, bash informa al  usuario  de
              la llegada de correo en el fichero especificado.
       MAILCHECK
              Especifica  cuan  a  menudo  (en segundos) bash comprueba si hay
              correo nuevo. El valor predeterminado es 60 s. Cuando es  tiempo
              de comprobar si hay correo, el shell lo hace antes de mostrar el
              indicador primario. Si esta variable no esta definida, el  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/spool/mail/bfox?"Tienes  carta":~/shell-mail?"i$_
              tiene carta!"'
              Bash  proporciona  un  valor  predeterminado para esta variable,
              pero la localizacion de los ficheros de correo del  usuario  que
              emplea es dependiente del sistema (e.g., /var/spool/mail/$USER).
       PS1    El  valor de este parametro se expande (vea INDICADORES abajo) y
              se emplea como  la  cadena  del  indicador  primario.  El  valor
              predeterminado es ``\s-\v\$ ''.
       PS2    El  valor  de este parametro se expande como con PS1 y se emplea
              como la cadena del indicador secundario. El valor predeterminado
              es ``> ''.
       PS3    El  valor  de este parametro se emplea como el indicador para la
              orden select (vea GRAM'ATICA DEL SHELL mas arriba).
       PS4    El valor de este parametro se expande como con PS1 y el valor se
              imprime  antes  de cada orden que bash muestra durante una traza
              de ejecucion. El primer caracter de  PS4  se  replica  multiples
              veces,  tantas  como  sean  necesarias,  para  indicar multiples
              niveles de indireccion. El valor predeterminado es ``+ ''.
       TIMEFORMAT
              El valor de este parametro se emplea como una cadena de  formato
              para  especificar  como debe mostrarse la informacion de tiempos
              para tuberias precedidas por  la  palabra  reservada  time.   El
              caracter % introduce una secuencia de escape que se expande a un
              valor de tiempo o a otra informacion.  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 numero de segundos de CPU gastados en modo usuario.
              %[p][l]S  El numero de segundos de CPU gastados en modo sistema.
              %P        El porcentaje de CPU, computado como (%U + %S) -:- %R.

              La p opcional es un  digito  que  especifica  la  precisi'on,  el
              numero  de  decimales.   Un  valor  de  0 hace que no se muestre
              ningun 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  mas  largo, incluyendo
              minutos, en la forma MMmSS.FFs.  El valor de p determina  si  se
              incluye o no la fraccion.

              Si esta variable no esta definida, bash actua como si tuviera el
              valor  $'\nreal\t%3lR\nuser\t%3lU\nsys%3lS'.   Si  el  valor  es
              nulo, no se muestra ninguna informacion de tiempos.  Se anade un
              salto de linea al final cuando se muestra la cadena de formato.

       HISTSIZE
              El numero de ordenes a recordar en la historia de  ordenes  (vea
              HISTORIA abajo).  El valor predeterminado es 500.

       HISTFILE
              El nombre del fichero en el que se guarda la historia de ordenes
              (vea   HISTORIA   abajo).    El    valor    predeterminado    es
              ~/.bash_history.   Si no esta definido, no se guarda la historia
              de ordenes cuando se acaba un shell interactivo.

       HISTFILESIZE
              El numero maximo de lineas contenidas en el fichero de historia.
              Cuando  se  asigna  un  valor  a  esta  variable,  el fichero de
              historia se trunca, si es menester, para contener no mas de  ese
              numero  de lineas. El valor predeterminado es 500. El fichero de
              historia se trunca tambien a este tamano  tras  escribir  en  el
              cuando un shell interactivo termina.

       OPTERR Si  se pone al valor 1, bash muestra mensajes de error generados
              por la orden interna getopts (vea  'ORDENES  INTERNAS  DEL  SHELL
              abajo).   OPTERR  se inicia a 1 cada vez que se llama al shell o
              cuando se ejecuta un guion del shell.

       LANG   Empleado  para   determinar   la   categoria   de   localizacion
              ("escenario")   para   cualquier   categoria   no   seleccionada
              especificamente 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 categoria de localizacion.

       LC_COLLATE
              Esta variable  determina  el  orden  de  clasificacion  empleado
              cuando  se  ordene  el  resultado de una expansion de nombres de
              caminos, y determina el comportamiento de expresiones de  rango,
              clases  de equivalencia, y secuencias de clasificacion dentro de
              expansiones de nombres de caminos y concordancia de patrones.

       LC_CTYPE
              Esta variable determina la interpretacion  de  caracteres  y  el
              comportamiento  de clases de caracteres dentro de expansiones de
              nombres de caminos y concordancia de patrones.

       LC_MESSAGES
              Esta variable determina la localizacion empleada  para  traducir
              cadenas entrecomilladas con comillas dobles precedidas por un $.

       PROMPT_COMMAND
              Si  esta  definido,  el valor se ejecuta como una orden antes de
              mostrarse cada indicador primario.

       IGNOREEOF
              Controla la  accion  de  un  shell  interactivo  al  recibir  un
              caracter EOF como sola entrada. Si esta definido, el valor es el
              numero de caracteres EOF consecutivos que deben  teclearse  como
              los  primeros  caracteres  de  una linea de entrada antes de que
              bash acabe. Si  la  variable  existe  pero  no  tiene  un  valor
              numerico,  o  ninguno,  el  valor  predeterminado  es  10. Si no
              existe, EOF significa el final de la entrada para el shell.

       TMOUT  Si se define a un valor mayor que cero, el valor  se  interpreta
              como  el  numero  de  segundos  que  hay que esperar una entrada
              despues  de  mostrarse  el  indicador  primario.   Bash  termina
              despues  de  esperar ese numero de segundos si no recibe ninguna
              entrada.

       FCEDIT El editor predeterminado para la orden interna fc.

       FIGNORE
              Una lista de sufijos separados por dos puntos  que  no  hay  que
              tener  en cuenta cuando se realice una terminacion de nombres de
              ficheros (vea READLINE abajo).  Un nombre de fichero cuyo sufijo
              concuerde  con  una  de las entradas en FIGNORE se excluye de la
              lista de nombres de ficheros a completar.  Un valor  de  muestra
              es ``.o:~''.

       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  expansion de nombres de caminos. Si un nombre de fichero
              que concordaba en un patron de expansion de nombres  de  caminos
              tambien  concuerda  con  uno  de  los patrones en GLOBIGNORE, se
              quita de la lista de concordancias.

       INPUTRC
              El nombre de fichero para el de inicio de readline, en  vez  del
              predeterminado ~/.inputrc (vea READLINE abajo).

       HISTCONTROL
              Si se define a un valor de ignorespace, las lineas que comiencen
              con un caracter espacio no se meten en la lista de historia.  Si
              se  pone a un valor de ignoredups, las lineas que concuerden con
              la ultima linea de la  historia,  no  se  meten.   Un  valor  de
              ignoreboth  combina las dos opciones.  Si no esta definido, o si
              lo esta a otro valor distinto de los de antes, todas las  lineas
              leidas  por  el  analizador  lexico se guardan en la lista de la
              historia, sujeto esto al valor de  HISTIGNORE.   La  funcion  de
              esta variable ha sido tomada por HISTIGNORE.  La segunda linea y
              siguientes de una orden compuesta multi-linea no se  comprueban,
              y se anaden a la historia sin importar el valor de HISTCONTROL.

       HISTIGNORE
              Una  lista  de  patrones separados por dos puntos empleados para
              decidir que lineas de ordenes deben guardarse  en  la  lista  de
              historia.  Cada  patron se ancla al principio de la linea y debe
              especificar la linea completamente (no  se  anade  ningun  `*').
              Cada  patron  se  comprueba  con  la  linea  tras  aplicarse las
              comprobaciones especificadas por  HISTCONTROL.   Ademas  de  los
              caracteres  normales  de concordancia de patrones del shell, `&'
              concuerda  con  la  linea  de  historia  anterior.   `&'   puede
              protegerse  empleando  una barra inversa. Esta se quita antes de
              intentarse una concordancia.  La segunda linea y  siguientes  de
              una  orden compuesta multi-linea no se comprueban, y se anaden a
              la historia sin importar el valor de HISTIGNORE.

       histchars
              Los  dos  o  tres  caracteres  que  controlan  la  expansion   y
              separacion  en lexemas de la historia (vea EXPANSI'ON DE HISTORIA
              abajo).  El primer caracter  es  el  car'acter  de  expansi'on  de
              historia, el caracter que senala el comienzo de una expansion de
              historia, normalmente `!'.  El segundo caracter es  el  caracter
              de  sustituci'on  r'apida,  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
              caracter, opcional, es el caracter que indica que el resto de la
              linea  es  un  comentario  cuando  se  encuentra  como el primer
              caracter de una palabra, normalmente es  `#'.   El  caracter  de
              comentario  de  historia  hace que la sustitucion de historia se
              salte en  el  resto  de  palabras  de  la  linea.  No  hace  que
              necesariamente el analizador  lexico del shell trate al resto de
              la linea como un a un comentario.

       HOSTFILE
              Contiene el nombre de  un  fichero  con  el  mismo  formato  que
              /etc/hosts que deberia leerse cuando el shell necesite completar
              un nombre  de  anfitrion  (computador).  El  fichero  puede  ser
              cambiado  interactivamente;  la  siguiente  vez  que  se intente
              completar un nombre de computador, bash anade el  contenido  del
              nuevo fichero a la base de datos ya existente.

       auto_resume
              Esta  variable  controla como el shell interactua con el usuario
              para el control de trabajos. Si esta variable esta definida, las
              ordenes  simples  de  una palabra sin redireccion se tratan como
              candidatas para reanudar un  trabajo  existente  parado.  No  se
              permite ninguna ambiguedad; si hay mas de un trabajo que empiece
              con la cadena tecleada, se selecciona el trabajo al  que  se  ha
              accedido  mas recientemente.  El nombre de un trabajo parado, en
              este contexto, es la linea de ordenes 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  analoga  a  la  del
              identificador de trabajo %?  (vea CONTROL DE TRABAJOS 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 analoga a la del identificador de trabajo %.

   Vectores
       Bash   proporciona  variables  vectores,  monodimensionales.  Cualquier
       variable  puede  usarse  como  un  vector;  la  orden  interna  declare
       declarara  un  vector  explicitamente.  No  hay  un limite maximo en el
       tamano de un vector, ni ningun  requisito  para  que  los  miembros  se
       indexen  o asignen de forma contigua. Los vectores se indexan empleando
       enteros y su primer elemento es el de indice cero, como en C.

       Un vector se crea automaticamente si se asigna algo a una variable  con
       la sintaxis nombre['indice]=valor. El 'indice se trata como una expresion
       aritmetica que debe evaluarse a un numero mayor o igual  a  cero.  Para
       declarar  un  vector  explicitamente,  emplee  declare  -a  nombre (vea
       'ORDENES INTERNAS DEL  SHELL  abajo).   Tambien  se  acepta  declare  -a
       nombre['indice],  donde  el  'indice  no  se  tiene  en cuenta. Se pueden
       especificar atributos para una variable  vector  mediante  las  ordenes
       internas declare y readonly.  Cada atributo se aplica a cada uno de los
       miembros del vector.

       Se asignan valores a los vectores mediante asignaciones  compuestas  de
       la  forma  nombre=(valor1  ... valorn), donde cada valor es de la forma
       ['indice]=cadena.  Solo cadena es necesario.  Si se suministra el indice
       entre  corchetes  y  la  asignacion,  se asigna a ese indice; si no, el
       indice del elemento asignado es el ultimo indice al que la sentencia le
       asigno  algo,  mas  uno.  Los  indices  empiezan en cero. Esta sintaxis
       tambien la acepta la orden interna declare.  Se  puede  asignar  a  los
       elementos    individuales    del    vector    empleando   la   sintaxis
       nombre['indice]=valor, ya presentada antes.

       Cualquier  elemento  de  un   vector   puede   referenciarse   mediante
       ${nombre['indice]}.   Las  llaves  son necesarias para evitar conflictos
       con la expansion de nombres de caminos. Si 'indice es @ o *, la  palabra
       se  expande  a  todos  los  miembros de nombre.  Estos indices difieren
       solamente cuando la  palabra  aparece  entre  comillas  dobles.  Si  la
       palabra  esta entre comillas dobles, ${nombre[*]} se expande a una sola
       palabra con el valor de cada miembro del vector separados por el primer
       caracter  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. Esto es analogo a la expansion
       de los parametros especiales * y @ (vea Par'ametros especiales  arriba).
       ${#nombre['indice]}  se  expande a la longitud de ${nombre['indice]}.  Si
       'indice es * o @, la expansion es el numero  de  elementos  del  vector.
       Referenciar una variable vector sin indice es equivalente a referenciar
       el elemento cero.

       La orden  interna  unset  se  emplea  para  destruir  vectores.   unset
       nombre['indice]   destruye   el   elemento  del  vector  con  el  'indice
       especificado.  unset  nombre,  donde  nombre  es  un  vector,  o  unset
       nombre['indice], donde 'indice es * o @, borra el vector entero.

       Las  ordenes  internas  declare, local, y readonly aceptan cada una una
       opcion -a para especificar un vector (array).  La  orden  interna  read
       acepta  una  -a  para  asignar  una  lista  de palabras leidas desde la
       entrada estandar a un  vector.  Las  ordenes  internas  set  y  declare
       muestran  valores  de  un  vector en una manera tal que les permite ser
       reutilizadas como asignaciones.

EXPANSI'ON

       La expansion se realiza en la linea de ordenes una vez que la orden  ha
       sido  dividida en palabras. Hay siete clases de expansion: expansi'on de
       llaves,  expansi'on  de  tilde,  expansi'on  de  par'ametro  y   variable,
       sustituci'on  de  orden,  expansi'on  aritm'etica,  divisi'on  de palabras,
       expansi'on de nombre de camino.

       La orden de las expansiones es:  expansion  de  llaves,  de  tilde,  de
       parametro,  variable  y  aritmetica,  y sustitucion de orden (hechas de
       izquierda a derecha), division de palabras, y expansion  de  nombre  de
       camino.

       En   sistemas   que  puedan  admitirla,  hay  una  expansion  adicional
       disponible: sustituci'on de proceso.

       Solo la expansion de llaves,  division  de  palabras,  y  expansion  de
       nombre de camino, pueden cambiar el numero de palabras de la expansion;
       las otras expanden una palabra simple a otra palabra simple. Las unicas
       excepciones a esto son las expansiones de "$@" y "${nombre[@]}" como se
       ha explicado mas arriba (vea PAR'AMETROS).

   Expansi'on de llaves
       La expansi'on de llaves es un mecanismo por  el  cual  pueden  generarse
       cadenas arbitrarias. Este mecanismo es similar a la expansi'on de nombre
       de camino, pero los nombres  de  ficheros  no  necesitan  existir.  Los
       patrones  a ser expandidos con la expansion de llaves toman la forma de
       un pre'ambulo opcional seguido por una serie de  cadenas  separadas  por
       comas  entre  un  par de llaves, seguido por un post scriptum opcional.
       El preambulo sirve de prefijo a cada cadena de entre las llaves,  y  el
       post  scriptum  se anade 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'.

       La expansion de llaves se realiza antes que cualquier otra, y cualquier
       caracter  especial  para otras expansiones se preserva en el resultado.
       Es  estrictamente  textual.   Bash  no  aplica  ninguna  interpretacion
       sintactica al contexto de la expansion ni al texto entre las llaves.

       Una  expansion  de llaves correctamente formada debe contener llaves de
       apertura y cierre sin entrecomillar,  y  por  lo  menos  una  coma  sin
       entrecomillar. Cualquier expansion de llaves formada incorrectamente se
       deja tal cual. Una { o , puede protegerse con una barra invertida  para
       evitar que sea considerada como parte de una expansion de llaves.

       Esta  construccion se emplea normalmente como una abreviatura cuando el
       prefijo comun 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  expansion  de  llaves  introduce  una  pequena incompatibilidad con
       versiones historicas de sh.  sh no trata especialmente 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  expansion  de  llaves.  Por  ejemplo, una palabra
       introducida a sh como fichero{1,2} aparece asi mismo en la entrada.  La
       misma palabra se muestra como fichero1 fichero2 tras la expansion hecha
       por bash.  Si se desea una compatibilidad  estricta  con  sh,  arranque
       bash con la opcion +B o inhabilite la expansion de llaves con la opcion
       +B de la orden interna set (vea 'ORDENES INTERNAS DEL SHELL abajo).

   Expansi'on de tilde
       Si una palabra comienza con un caracter tilde de la n 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 estan 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
       vacia, la tilde se reemplaza con el valor del parametro del shell HOME.
       Si HOME no esta definida, se sustituye en su  lugar  el  directorio  de
       trabajo  inicial  del  usuario  que  esta ejecutando el 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 del shell PWD
       reemplaza al prefijo-tilde.  Si el prefijo-tilde es un `~-',  el  valor
       de  la  variable  del shell OLDPWD, si esta definido, se sustituye.  Si
       los caracteres que siguen a la tilde en el prefijo-tilde  consisten  en
       un  numero  N, prefijado opcionalmente por un `+' o un `-', el prefijo-
       tilde se reemplaza con  el  elemento  correspondiente  de  la  pila  de
       directorios,  como  lo  mostraria  la orden interna dirs llamada con el
       prefijo-tilde como argumento.  Si los caracteres tras la  tilde  en  el
       prefijo-tilde  consisten  en  un numero sin un `+' ni `-' iniciales, se
       supone `+'.

       Si el nombre de entrada es invalido, o si la expansion de tilde  falla,
       la palabra se deja tal cual.

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

   Expansi'on de par'ametro
       El  caracter  `$'  introduce  la expansion de parametro, sustitucion de
       orden, o expansion aritmetica. El nombre de parametro o simbolo  a  ser
       expandido  puede  estar encerrado entre llaves, que son opcionales pero
       sirven para proteger a la variable en la expansion 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  expansion  aritmetica empotrada, sustitucion de orden, o expansion
       de parametro.

       ${par'ametro}
              Se sustituye el valor de par'ametro.  Se requieren llaves  cuando
              par'ametro  es  un  parametro  posicional  de mas de un digito, o
              cuando par'ametro viene seguido  por  un  caracter  que  no  debe
              interpretarse como parte de su nombre.

       Si   el  primer  caracter  de  par'ametro  es  un  signo  de  cierre  de
       exclamacion, se introduce un nivel de indireccion  de  variable.   Bash
       emplea  el valor de la variable formada a partir del resto de par'ametro
       como el nombre de la variable; luego, esta variable se  expande  y  ese
       valor  se emplea en el resto de la sustitucion, en vez del propio valor
       de par'ametro.  Esto se conoce como expansi'on indirecta.

       En cada uno de los casos anteriores, palabra esta sujeta a expansion de
       tilde,  expansion  de  parametro,  sustitucion  de  orden,  y expansion
       aritmetica. Cuando no  se  realiza  la  expansion  de  subcadena,  bash
       comprueba  si  un parametro esta sin definir o es nulo; si omitimos los
       dos puntos la comprobacion solo es para la no definicion del parametro.

       ${par'ametro:-palabra}
              Emplear valores predeterminados.  Si par'ametro no esta  definido
              o  esta  vacio,  se  sustituye la expansion de palabra.  De otro
              modo, se sustituye el valor de par'ametro.
       ${par'ametro:=palabra}
              Asignar valores predeterminados.  Si par'ametro no esta  definido
              o  es  nulo,  la  expansion  de  palabra  se asigna a par'ametro.
              Luego, el valor de par'ametro se sustituye. No se  puede  asignar
              nada  de  esta  manera  a  los  parametros posicionales ni a los
              especiales.
       ${par'ametro:?palabra}
              Muestra un error si no est'a definido o est'a vac'io.  Si par'ametro
              es  nulo  o  no  esta  definido,  la  expansion de palabra (o un
              mensaje a tal efecto si palabra no esta presente) se escribe  en
              la  salida estandar de errores y el shell, si no es interactivo,
              acaba. De otra manera, se sustituye el valor de par'ametro.
       ${par'ametro:+palabra}
              Emplear un valor alternativo.  Si par'ametro esta vacio o no esta
              definido,  no  se  sustituye nada; de otro modo, se sustituye la
              expansion de palabra.
       ${par'ametro:desplazamiento}
       ${par'ametro:desplazamiento:longitud}
              Expansi'on de subcadena.  Expande hasta  longitud  caracteres  de
              par'ametro,   empezando   en  los  caracteres  especificados  por
              desplazamiento.  Si se  omite  la  longitud,  se  expande  a  la
              subcadena  de  par'ametro,  empezando en el caracter especificado
              por desplazamiento.  longitud y desplazamiento  son  expresiones
              aritmeticas  (vea  EVALUACI'ON  ARITM'ETICA  mas abajo).  longitud
              debe  evaluarse  a  un  numero  mayor  o  igual  a   cero.    Si
              desplazamiento se evalua a un numero menor que cero, el valor se
              emplea como un  desplazamiento  desde  el  final  del  valor  de
              par'ametro.    Si  par'ametro  es  @,  el  resultado  es  longitud
              parametros  posicionales  empezando   en   desplazamiento.    Si
              par'ametro  es  un  nombre  de  vector  indexado  por  @  o *, el
              resultado  es  longitud  miembros  del  vector   empezando   con
              ${par'ametro[desplazamiento]}.   La  indexacion  de  la subcadena
              empieza  por  cero  a  menos  que  se  empleen  los   parametros
              posicionales, en cuyo caso empieza por 1.

       ${#par'ametro}
              Se  sustituye  la longitud en caracteres del valor de par'ametro.
              Si par'ametro es * o @, el  valor  sustituido  es  el  numero  de
              parametros  posicionales.   Si  par'ametro es un nombre de vector
              indexado por *  o  @,  el  valor  sustituido  es  el  numero  de
              elementos en el vector.

       ${par'ametro#palabra}
       ${par'ametro##palabra}
              La  palabra  se  expande para producir un patron lo mismo que en
              una expansion de nombre de camino. Si el patron concuerda con el
              principio  del  valor  de par'ametro, entonces el resultado de la
              expansion es el valor expandido de par'ametro con el  patron  mas
              corto  que concuerde (el caso ``#) o con el patron mas largo que
              concuerde (el caso ``##'') eliminado.  Si par'ametro es @ o *, la
              operacion  de  borrado  del  patron  se  aplica a cada parametro
              posicional por turnos, y la expansion es  la  lista  resultante.
              Si  par'ametro  es  una  variable  vector  indexada con @ o *, la
              operacion de borrado del patron se aplica  a  cada  miembro  del
              vector por orden, y la expansion es la lista resultante.

       ${par'ametro%palabra}
       ${par'ametro%%palabra}
              La  palabra  se expande para producir un patron justo como en la
              expansion de nombre de camino.  Si el patron concuerda  con  una
              porcion  del final del valor expandido de par'ametro, entonces el
              resultado de la expansion es el valor expandido de par'ametro con
              el patron mas corto que concuerde (el caso ``%'') o el mas largo
              (el caso ``%%'') borrado.  Si par'ametro es @ o *,  la  operacion
              de  borrado del patron se aplica a cada parametro posicional por
              orden, y la expansion es la lista resultante.  Si  par'ametro  es
              una  variable vector indexada por @ o *, la operacion de borrado
              del patron se aplica a cada miembro del vector por orden,  y  la
              expansion es la lista resultante.

       ${par'ametro/patr'on/cadena}
       ${par'ametro//patr'on/cadena}
              El  patr'on  se  expande para producir un patron justo como en la
              expansion de nombre  de  camino.   par'ametro  se  expande  y  la
              concordancia  mas larga de patr'on contra este valor se reemplaza
              por cadena.  En la primera forma, solo se reemplaza  la  primera
              concordancia.  La segunda forma hace que todas las concordancias
              de patr'on se reemplacen con cadena.  Si patr'on  empieza  por  #,
              debe concordar con el principio de la cadena.  Si patr'on empieza
              por %, debe concordar con el final de la cadena.  Si cadena esta
              vacia, las concordancias de patr'on se borran y el / que sigue al
              patr'on puede omitirse.  Si par'ametro es @ o *, la  operacion  de
              sustitucion  se  aplica a cada parametro posicional por orden, y
              la expansion es  la  lista  resultante.   Si  par'ametro  es  una
              variable  vector indexada por @ o *, la operacion de sustitucion
              se aplica a cada miembro del vector por orden, y la expansion es
              la lista resultante.

   Sustituci'on de orden
       La  sustituci'on de orden permite a la salida de una orden reemplazar al
       nombre de la orden. Hay dos formas:

              $(orden)
       u
              `orden`

       Bash  realiza  la  expansion  ejecutando  orden   y   reemplazando   la
       sustitucion  de  orden con la salida estandar de la orden, quitando los
       saltos de linea finales.  Los saltos de linea empotrados no se  borran,
       pero  pueden  ser  eliminados  durante  la  division  de  palabras.  La
       sustitucion  de  orden  $(cat  fichero)  puede  reemplazarse   por   lo
       equivalente pero mas rapido $(< fichero).

       Cuando  se  emplea  la  forma  de  sustitucion  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  sustitucion  de  orden.
       Cuando  se  emplea  la  forma  $(orden), todos los caracteres entre los
       parentesis forman parte de la orden; ninguno se trata especialmente.

       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 sustitucion aparece dentro de las dobles comillas, la division de
       palabras y la expansion de nombres no se realiza en los resultados.

   Expansi'on aritm'etica
       La   expansion  aritmetica  permite  la  evaluacion  de  una  expresion
       aritmetica y la sustitucion del resultado. El formato para la expansion
       aritmetica es:

              $((expresi'on))

       La  expresi'on se trata como si estuviera entre comillas dobles, pero un
       signo  de  doble  comilla  dentro  de  los  parentesis  no   se   trata
       especialmente.   Todos  los  lexemas  en  la  expresion estan sujetos a
       expansion de parametro, expansion de cadena, sustitucion  de  orden,  y
       eliminacion   de   comillas.    Las  sustituciones  aritmeticas  pueden
       anidarse.

       La evaluacion se realiza de acuerdo a las reglas listadas mas abajo  en
       EVALUACI'ON  ARITM'ETICA.   Si  expresi'on  no  es valida, bash imprime un
       mensaje indicando el fallo y no ocurre ninguna sustitucion.

   Sustituci'on de proceso
       La sustituci'on de proceso se admite en sistemas  que  acepten  tuberias
       con  nombre  (FIFOs)  o el metodo /dev/fd de nombrar ficheros abiertos.
       Toma una de las formas siguientes: <(lista)  o  >(lista).   El  proceso
       lista  se ejecuta con su entrada o salida conectada a un FIFO o a algun
       fichero en /dev/fd.  El nombre de este fichero se pasa como argumento a
       la  orden  en  curso como el resultado de la expansion. Si se emplea la
       forma >(lista), escribir en el  fichero  proporciona  la  entrada  para
       lista.   Si  se  emplea  la  forma  <(lista),  el  fichero  pasado como
       argumento debera leerse para obtener la salida de lista.

       Cuando  este  disponible,  se  realiza  la   sustituci'on   de   proceso
       simultaneamente  con  la expansion de parametro y variable, sustitucion
       de orden y expansion aritmetica.

   Divisi'on de palabras
       El  shell  examina  los  resultados  de  la  expansion  de   parametro,
       sustitucion de orden y expansion aritmetica que no ocurrieron dentro de
       comillas dobles para realizar la divisi'on de palabras.

       El shell trata cada caracter de IFS como un delimitador, y  divide  los
       resultados  de  las  otras  expansiones en palabras separadas por estos
       caracteres. Si  IFS  no  esta  definido,  o  su  valor  es  exactamente
       <espacio><tab><nueva-l'inea>,    el   valor   predeterminado,   entonces
       cualquier secuencia de caracteres de IFS sirve para delimitar palabras.
       Si  IFS  tiene  algun  otro  valor,  entonces  las  secuencias  de  los
       caracteres blancos espacio y  tabulador  no  se  tienen  en  cuenta  al
       principio  y al final de la palabra, siempre que el caracter de espacio
       en blanco este en el valor de IFS (un caracter de espacio en blanco  de
       IFS).   Cualquier  caracter en IFS que no sea espacio en blanco de IFS,
       junto con cualquier caracter de espacio en  blanco  adyacente  de  IFS,
       delimita un campo.  Una secuencia de caracteres de espacio en blanco de
       IFS tambien se trata como un delimitador.  Si el valor de IFS es  nulo,
       no se realiza la division de palabras.

       Los  argumentos nulos explicitos ("" o '') se mantienen. Los argumentos
       nulos  no  protegidos  implicitos,  resultantes  de  la  expansion   de
       par'ametros  que  no  tienen  valores, se eliminan.  Si un parametro sin
       ningun valor se expande dentro de comillas dobles, el resultado  es  un
       argumento nulo, y es mantenido.

       Observe  que  si  no  hay  expansion, tampoco se realiza la division de
       palabras.

   Expansi'on de nombre de camino
       Tras la division de palabras, a menos que la  opcion  -f  este  puesta,
       bash examina cada palabra buscando los caracteres *, ?, (, y [.  Si uno
       de estos caracteres aparece, entonces la palabra se considera  como  un
       patr'on,  y  se  reemplaza  por  una  lista  ordenada alfabeticamente de
       nombres de ficheros que concuerden con el patron.  Si no se  encuentran
       nombres  de  ficheros concordantes, y la opcion del shell nullglob esta
       deshabilitada, la palabra se deja tal cual.  Si la opcion nullglob esta
       puesta, y no ha habido ninguna concordancia, la palabra se elimina.  Si
       la  opcion  del  shell  nocaseglob  esta  puesta,  la  busqueda  de  la
       concordancia  se realiza sin importar si los caracteres alfabeticos son
       letras mayusculas o minusculas.  Cuando un patron se usa para expansion
       de  nombre  de  camino,  el caracter ``.''  al principio de un nombre o
       inmediatamente  despues  de  una   barra   inclinada   debe   concordar
       explicitamente,  a  menos  que este puesta la opcion del shell dotglob.
       En la concordancia de  un  nombre  de  camino,  el  caracter  de  barra
       inclinada  debe  siempre  coincidir explicitamente.  En otros casos, el
       caracter ``.''  no se trata de forma especial.  Vea la  descripcion  de
       shopt  mas  abajo en 'ORDENES INTERNAS DEL SHELL para una descripcion de
       las opciones del shell nocaseglob, nullglob, y dotglob.

       La variable del shell GLOBIGNORE puede utilizarse  para  restringir  el
       conjunto  de  nombres  de  ficheros  que  concuerden con un patr'on.  Si
       GLOBIGNORE esta  definido,  cada  nombre  de  fichero  concordante  que
       tambien  coincida  con uno de los patrones en GLOBIGNORE se quita de la
       lista de concordancias.  Los nombres de fichero ``.''  y ``..''   nunca
       son  tenidos  en  cuenta,  incluso  cuando  GLOBIGNORE este puesto. Sin
       embargo, definir GLOBIGNORE tiene el efecto de activar  la  opcion  del
       shell  dotglob,  de  modo  que  todos  los otros nombres de fichero que
       comiencen con un ``.''  concordaran.  Para  obtener  el  comportamiento
       antiguo  de  no  hacer caso de nombres de ficheros que comienzan con un
       ``.'', haga que ``.*''  sea uno de  los  patrones  de  GLOBIGNORE.   La
       opcion dotglob esta deshabilitada cuando GLOBIGNORE no esta definido.

       Patrones

       Cualquier  caracter que aparezca en un patron, aparte de los especiales
       descritos mas adelante, concuerda consigo mismo.  El  caracter  NUL  no
       puede  estar  en  un  patron. Los caracteres de patron especiales deben
       protegerse si han de concordar literalmente consigo mismos.

       Los caracteres de patron especiales tienen los siguientes significados:

       *      Concuerda con cualquier cadena de caracteres, incluida la cadena
              vacia.
       ?      Concuerda con un solo caracter cualquiera.
       [...]  Concuerda  con  uno de los caracteres entre corchetes. Un par de
              caracteres  separados  por  un  signo  menos  denota  un  rango;
              cualquier   caracter  lexicamente  entre  esos  dos,  incluidos,
              concuerda. Si el primer caracter tras el [ es  un  !   o  un  ^,
              entonces la concordancia es con cualquier caracter de los que no
              esten entre los corchetes.  Un -  puede  representarse  para  la
              concordancia  incluyendolo  como el primer o ultimo caracter del
              conjunto.  Un ] puede hacerse  concordar  incluyendolo  como  el
              primer caracter del conjunto.

              Dentro  de  [  y  ],  se pueden especificar clases de caracteres
              mediante la sintaxis  [:clase:],  donde  clase  es  una  de  las
              siguientes clases definidas en el estandar POSIX.2:
              alnum  alpha  ascii  blank  cntrl  digit graph lower print punct
              space upper xdigit
              Una clase de caracteres concuerda  con  cualquier  caracter  que
              pertenezca a esa clase.

              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  clasificacion (tal como lo
              defina la localizacion en curso) que el caracter c.

              Dentro de [ y  ],  la  sintaxis  [.s'imbolo.]  concuerda  con  el
              simbolo de clasificacion s'imbolo.

       Si la opcion del shell extglob se activa usando la orden interna shopt,
       se reconocen algunos operadores de patrones extendidos. En la siguiente
       descripcion,  una  lista-patr'on  es  una  lista  de  uno o mas patrones
       separados por un |. Se pueden formar patrones compuestos usando  uno  o
       mas de los siguientes sub-patrones:

              ?(lista-patr'on)
                     Concuerda  con  ninguna  o una ocurrencia de los patrones
                     dados
              *(lista-patr'on)
                     Concuerda con ninguna o mas ocurrencias de  los  patrones
                     dados
              +(lista-patr'on)
                     Concuerda con una o mas ocurrencias de los patrones dados
              @(lista-patr'on)
                     Concuerda exactamente con uno de los patrones dados
              !(lista-patr'on)
                     Concuerda  con  cualquier  cosa  excepto  con  uno de los
                     patrones dados

   Eliminaci'on 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'ON

       Antes de que se ejecute una orden,  su  entrada  y  salida  pueden  ser
       redirigidas usando una notacion especial interpretada por el shell.  La
       redireccion tambien se puede emplear para abrir y cerrar ficheros en el
       entorno  de ejecucion del shell en curso. Los operadores de redireccion
       siguientes pueden preceder o aparecer en cualquier sitio de  una  orden
       simple  o pueden ir detras de una orden.  Las redirecciones se procesan
       en el orden en el que aparecen, de izquierda a derecha.

       En las descripciones siguientes, si se omite el numero  del  descriptor
       de  fichero,  y el primer caracter del operador de redireccion es <, la
       redireccion se refiere a la entrada estandar (descriptor de fichero 0).
       Si  el primer caracter del operador de redireccion es >, la redireccion
       se refiere a la salida estandar (descriptor de fichero 1).

       La palabra  tras  el  operador  de  redireccion  en  las  descripciones
       siguientes,  a  menos que se diga otra cosa, esta sujeta a la expansion
       de llaves, expansion de tilde, expansion de parametro,  sustitucion  de
       orden,  expansion  aritmetica,  eliminacion de comillas, y expansion de
       nombre de camino.  Si se expande a mas 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 estandar normal y la de  errores,  ambas,  al  fichero
       listadir, mientras que la orden

              ls 2>&1 > listadir

       dirige  solamente  la  salida  estandar  al fichero listadir, porque la
       salida de errores estandar se ha duplicado como salida  estandar  antes
       de que esta se redirigiera a listadir.

       Un  fallo  en  la  apertura  o  creacion  de  un  fichero  hace  que la
       redireccion fracase.

   Redirecci'on de la entrada
       La redireccion de la entrada hace que el fichero cuyo nombre resulte de
       la  expansion  de  palabra  se  abra  para  lectura en el descriptor de
       fichero n, o la entrada estandar (descriptor de fichero  0)  si  no  se
       especifico n.

       El formato general para la redireccion de la entrada es:

              [n]<palabra

   Redirecci'on de la salida
       la  redireccion de la salida hace que el fichero cuyo nombre resulte de
       la expansion de palabra se abra para  escritura  en  el  descriptor  de
       fichero  n,  o  la salida estandar (descriptor de fichero 1) si n no se
       especifico. Si el fichero no existe se crea;  si  existe  se  trunca  a
       longitud cero, se vacia.

       El formato general para la redireccion de la salida es:

              [n]>palabra

       Si  el  operador de redireccion es >, y la opcion noclobber de la orden
       interna set ha sido activada, la redireccion fallara si  el  nombre  de
       fichero  resultante  de  la  expansion  de palabra existiera y fuera un
       fichero regular.  Si el operador de redireccion es >|,  o  es  >  y  la
       opcion  noclobber  de  la  orden  interna  set  no  esta  activada,  la
       redireccion se intenta incluso  si  el  fichero  nombrado  por  palabra
       existe.

   A~nadir a la salida redirigida
       La  redireccion  de  la  salida  en esta forma hace que el fichero cuyo
       nombre resulte de la expansion de palabra se abra  para  anadir  en  el
       descriptor de fichero n, o la salida estandar (descriptor de fichero 1)
       si n no se especifico. Si el fichero no existe, se crea.

       El formato general para anadir a la salida es:

              [n]>>palabra

   Redirecci'on de la salida est'andar normal y de errores
       Bash permite que ambas salidas estandares,  la  normal  (descriptor  de
       fichero 1) y la de errores (descriptor de fichero 2) se redirijan hacia
       el  fichero  cuyo  nombre  sea  la  expansion  de  palabra   con   esta
       construccion.

       hay  dos formatos para la redireccion de la salida estandar y la salida
       de errores:

              &>palabra
       y
              >&palabra

       De las dos formas, es preferible la primera.   Esta  es  semanticamente
       equivalente a

              >palabra 2>&1

   Documentos internos
       Este  tipo  de redireccion instruye al shell a leer la entrada desde la
       fuente en curso hasta que vea una linea que contenga solamente  palabra
       (sin  blancos  detras).   Todas  las  lineas  leidas hasta ese punto se
       emplean como la entrada estandar de una orden.

       El formato de los documentos internos es como sigue:

              <<[-]palabra
                               documento-interno
              delimitador

       No  se  realiza  la  expansion  de  parametro,  sustitucion  de  orden,
       expansion  de  nombre de camino ni expansion aritmetica en palabra.  Si
       cualquier caracter de palabra esta entrecomillado, el delimitador es el
       resultado  de la eliminacion de comillas en palabra, y las lineas en el
       documento interno no se expanden.  Si palabra no  esta  entrecomillada,
       todas  las  lineas  del  documento interno estan sujetas a expansion de
       parametro, sustitucion de orden y expansion aritmetica.  En  el  ultimo
       caso,  el  par \<nueva-l'inea> no se tiene en cuenta, y debe emplearse \
       para proteger los caracteres \, $, y `.

       Si el operador de redireccion es <<-, entonces se quitan de las  lineas
       de la entrada todos los caracteres de tabulacion iniciales, asi como de
       la linea que contiene delimitador.  Esto  permite  que  los  documentos
       internos dentro de guiones del shell se sangren de manera natural.

   Duplicaci'on de descriptores de fichero
       El operador de redireccion

              [n]<&palabra

       se  emplea  para  duplicar  descriptores  de  ficheros  de entrada.  Si
       palabra se expande a uno  o  mas  digitos,  el  descriptor  de  fichero
       denotado por n se hace ser una copia de este descriptor de fichero.  Si
       los digitos en palabra no especifican un descriptor de fichero  abierto
       para entrada, se produce un error de redireccion.  Si palabra se evalua
       a -, el descriptor de fichero n se cierra. Si n no  se  especifica,  se
       emplea la entrada estandar (descriptor de fichero 0).

       El operador

              [n]>&palabra

       se  emplea  similarmente  para  duplicar  descriptores  de  ficheros de
       salida. Si n no se especifico, se emplea la salida estandar (descriptor
       de  fichero 1).  Si los digitos en palabra no especifican un descriptor
       de fichero abierto para salida, se produce  un  error  de  redireccion.
       Como  un  caso especial, si n se omite, y palabra no se expande a uno o
       mas digitos, se redirigen la salida estandar y la  salida  estandar  de
       errores como se describio con anterioridad.

   Apertura de descriptores de ficheros para lectura y escritura
       El operador de redireccion

              [n]<>palabra

       hace  que  el  fichero cuyo nombres sea la expansion 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

       Los alias permiten que una cadena se sustituya por una  palabra  cuando
       se  emplee  como  la  primera  palabra  de  una orden simple.  El shell
       mantiene una lista de alias que  pueden  ponerse  y  quitarse  con  las
       ordenes  internas  alias  y  unalias  (vea  'ORDENES  INTERNAS DEL SHELL
       abajo).  Se mira a ver si la primera palabra de cada orden, si no  esta
       entrecomillada,  tiene  un  alias. Si es asi, cada palabra se reemplaza
       con el texto del alias. El nombre del alias y  el  texto  de  reemplazo
       pueden  contener cualquier entrada valida para el shell, incluyendo los
       metacaracteres listados arriba, con la excepcion de que el  nombre  del
       alias no puede contener un =. La primera palabra del texto de reemplazo
       se comprueba si es un alias, pero si es un alias  identico  al  que  se
       esta expandiendo, no se expande una segunda vez. Esto significa que uno
       puede poner un alias ls a  ls  -F,  por  ejemplo,  y  bash  no  intenta
       expandir  recursivamente  el texto de reemplazo.  Si el ultimo caracter
       del valor del alias es un blanco, entonces la siguiente palabra  de  la
       orden que sigue al alias tambien se mira para la expansion de alias.

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

       No hay ningun mecanismo para poder  usar  argumentos  en  el  texto  de
       reemplazo.  Si  se  necesitan,  deberia emplearse mejor una funcion del
       shell.

       Los alias no se expanden cuando el shell no es interactivo, a menos que
       se  haya  puesto  la  opcion  expand_aliases  mediante  shopt  (vea  la
       descripcion de shopt bajo 'ORDENES INTERNAS DEL SHELL abajo).

       Las reglas que conciernen a la definicion y uso de los alias  son  algo
       confusas.   Bash siempre lee por lo menos una linea completa de entrada
       antes de ejecutar cualquiera de las ordenes de esa linea. Los alias  se
       expanden  cuando  se lee una orden, no cuando se ejecuta. Por lo tanto,
       una definicion de alias que aparezca en la misma linea que  otra  orden
       no  tiene  efecto  hasta que se lea la siguiente linea de entrada.  Las
       ordenes que sigan a la definicion de alias  en  esa  linea  no  se  ven
       afectadas  por  el  nuevo  alias.   Este comportamiento tambien hay que
       tenerlo en cuenta cuando se ejecutan funciones.  Los alias se  expanden
       cuando  se  lee  una  definicion  de  funcion,  no cuando la funcion se
       ejecuta, porque una definicion de funcion es  en  si  misma  una  orden
       compuesta.  Como  consecuencia,  los  alias definidos en una funcion no
       estan disponibles hasta despues de que esa  funcion  se  ejecute.  Para
       asegurarse,  ponga  siempre  las  definiciones  de  alias  en una linea
       separada, y no emplee la orden alias en ordenes compuestas.

       Para  casi  cualquier  proposito,  los  alias  pueden  sustituirse  por
       funciones del shell.

FUNCIONES

       Una  funcion  del  shell, definida como se describio anteriormente bajo
       GRAM'ATICA DEL SHELL, guarda una serie de  ordenes  para  una  ejecucion
       posterior.   Las  funciones  se  ejecutan  en  el contexto del shell en
       curso;  no  se  crea  ningun  nuevo  proceso  para  interpretarlas  (en
       contraste  con la ejecucion de un guion del shell).  Cuando una funcion
       se  ejecuta,  los  argumentos  de  la  funcion  se  convierten  en  los
       parametros  posicionales  durante su ejecucion. El parametro especial #
       se actualiza  para  reflejar  el  cambio.  El  parametro  posicional  0
       permanece  intacto.  Todos  los demas aspectos del entorno de ejecucion
       del shell son identicos entre una funcion  y  quien  la  llama  con  la
       excepcion  de  que  la  trampa  DEBUG  (vea  la descripcion de la orden
       interna trap bajo 'ORDENES  INTERNAS  DEL  SHELL  mas  adelante)  no  se
       hereda.

       Variables  locales a la funcion se pueden declarar con la orden interna
       local.  Normalmente, las variables y sus valores se comparten entre  la
       funcion y quien la llama, como variables globales.

       Si  se  ejecuta la orden interna return en una funcion, este se acaba y
       la ejecucion se reanuda con la siguiente orden tras  la  llamada  a  la
       funcion.  Cuando una funcion se completa, los valores de los parametros
       posicionales y el parametro especial # se restauran a los  valores  que
       tenian antes de la ejecucion de la funcion.

       Los nombres de funcion y sus definiciones pueden listarse con la opcion
       -f de las ordenes internas declare o typeset.  La opcion -F de  declare
       o  typeset  listara  solamente  los  nombres  de  las  funciones.   Las
       funciones pueden exportarse  de  modo  que  los  subshells  las  tengan
       definidas automaticamente con la opcion -f de la orden interna export.

       Las  funciones  pueden ser recursivas. No se impone ningun limite en el
       numero de llamadas recursivas.

EVALUACI'ON ARITM'ETICA

       El shell permite que se evaluen expresiones aritmeticas,  bajo  ciertas
       circunstancias  (vea  la orden interna let y Expansi'on aritm'etica).  La
       evaluacion  se  hace   con   enteros   largos   sin   comprobacion   de
       desbordamiento,  aunque la division por 0 se atrapa y se senala como un
       error. La lista  siguiente  de  operadores  se  agrupa  en  niveles  de
       operadores  de  igual  precedencia.   Los niveles se listan en orden de
       precedencia decreciente.

       - +    menos y mas unarios
       ! ~    negacion logica y de bits
       **     exponenciacion
       * / %  multiplicacion, division, resto
       + -    adicion, sustraccion
       << >>  desplazamientos de bits a izquierda y derecha
       <= >= < >
              comparacion
       == !=  igualdad y desigualdad
       &      Y de bits (AND)
       ^      O exclusivo de bits (XOR)
       |      O inclusivo de bits (OR)
       &&     Y logico (AND)
       ||     O logico (OR)
       expr?expr:expr
              evaluacion condicional
       = *= /= %= += -= <<= >>= &= ^= |=
              asignacion

       Se permite que las  variables  del  shell  actuen  como  operandos;  se
       realiza  la  expansion  de  parametro  antes  de  la  evaluacion  de la
       expresion.  El valor de un parametro se fuerza a un entero largo dentro
       de  una expresion. Una variable del shell no necesita tener activado su
       atributo de entero para emplearse en una expresion.

       Las constantes con un 0 inicial se interpretan  como  numeros  octales.
       Un  0x o 0X inicial denota un numero en hexadecimal.  De otro modo, los
       numeros toman la forma [base#]n, donde base es un  numero  en  base  10
       entre 2 y 64 que representa la base aritmetica, y n es un numero en esa
       base.  Si base se omite, entonces se emplea la base  10.   Los  digitos
       mayores  que  9  se  representan  por las letras minusculas, las metras
       mayusculas, _, y @, en este orden.  Si base es menor o  igual  que  36,
       las  letras  minusculas  y  mayusculas pueden emplearse indistintamente
       para representar numeros entre 10 y 35.

       Los operadores se evaluan en orden de precedencia. Las  sub-expresiones
       entre  parentesis se evaluan primero y pueden sustituir a las reglas de
       precedencia anteriores.

EXPRESIONES CONDICIONALES

       Las expresiones condicionales son empleadas por la orden compuesta [[ y
       por  las  ordenes  internas  test  y  [ para comprobar los atributos de
       ficheros y  realizar  comparaciones  de  cadenas  y  aritmeticas.   Las
       expresiones  se  forman  a  partir de las primarias monarias o binarias
       siguientes.  Si cualquier argumento fichero de una de  estas  primarias
       es  de  la  forma  /dev/fd/n,  entonces  se  comprueba el descriptor de
       fichero  n.

       -a fichero
              Verdad si fichero existe.
       -b fichero
              Verdad si fichero existe y es un fichero 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 fichero existe.
       -f fichero
              Verdad si fichero existe y es un fichero regular.
       -g fichero
              Verdad si fichero existe y tiene el bit SGID.
       -k fichero
              Verdad si fichero existe y tiene el bit ``pegajoso'' (STIcky).
       -p fichero
              Verdad si fichero existe y es una tuberia con nombre (FIFO).
       -r fichero
              Verdad si fichero existe y se puede leer.
       -s fichero
              Verdad si fichero existe y tiene un tamano mayor que cero.
       -t fd  Verdad si el descriptor de fichero fd esta abierto y se  refiere
              a una terminal.
       -u fichero
              Verdad si fichero existe y tiene el bit SUID.
       -w fichero
              Verdad si fichero existe y se puede modificar.
       -x fichero
              Verdad si fichero existe y es ejecutable.
       -O fichero
              Verdad si fichero existe y su propietario es el UID efectivo.
       -G fichero
              Verdad si fichero existe y su grupo es el GID efectivo.
       -L fichero
              Verdad si fichero existe y es un enlace simbolico o blando.
       -S fichero
              Verdad si fichero existe y es un zocalo (socket).
       -N fichero
              Verdad  si fichero existe y ha sido modificado desde que se leyo
              la ultima vez.
       fichero1 -nt fichero2
              Verdad  si  fichero1  es  mas  reciente  (segun  la   fecha   de
              modificacion) que fichero2.
       fichero1 -ot fichero2
              Verdad si fichero1 es mas antiguo que fichero2.
       fichero1 -ef fichero2
              Verdad  si  fichero1  y  fichero2  tienen  los mismos numeros de
              nodo-i y de dispositivo.
       -o nombre-opci'on
              Verdad si la opcion del shell nombre-opci'on esta activada.   Vea
              la  lista  de opciones bajo la descripcion de la opcion -o de la
              orden interna set mas abajo.
       -z cadena
              Verdad si la longitud de cadena es cero.
       -n cadena
       cadena Verdad si la longitud de cadena no es cero.
       cadena1 == cadena2
              Verdad si las cadenas son iguales.  Tambien se puede  emplear  =
              en vez de ==.
       cadena1 != cadena2
              Verdad si las cadenas no son iguales.
       cadena1 < cadena2
              Verdad  si cadena1 se ordena lexicograficamente antes de cadena2
              en la localizacion en curso.
       cadena1 > cadena2
              Verdad si cadena1 se clasifica lexicograficamente  tras  cadena2
              en la localizacion en curso.
       arg1 OP arg2
              OP  es  uno de -eq, -ne, -lt, -le, -gt, o -ge.  Estos operadores
              aritmeticos binarios devuelven verdadero si  arg1  es  igual  a,
              distinto  de,  menor  que, menor o igual a, mayor que, o mayor o
              igual a arg2, respectivamente.  Arg1 y arg2 pueden  ser  enteros
              positivos o negativos.

EXPANSI'ON DE ORDEN SIMPLE

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

       1.     Las palabras que el analizador ha marcado como  asignaciones  de
              variables  (aquellas  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  expansion quedan aun
              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 describio mas arriba bajo
              REDIRECCI'ON.

       4.     El texto tras el = en cada asignacion de variable esta sujeto  a
              expansion  de  tilde,  expansion  de  parametro,  sustitucion de
              orden, expansion aritmetica y eliminado de comillas antes de ser
              asignado a la variable.

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

       Si no resulta ningun nombre de orden, se hacen las redirecciones,  pero
       no  afectan al entorno del shell en curso. Un error de redireccion hace
       que el shell acabe con un estado distinto de cero.

       Si hay un nombre de orden tras la expansion, la ejecucion procede  como
       se  describio  antes.  De  otro  modo,  la  orden  sale.  Si una de las
       expansiones contenia una sustitucion de orden, el estado de  salida  de
       la orden es el de la ultima sustitucion de orden realizada. Si no habia
       sustituciones de ordenes, la orden acaba con un estado de cero.

EJECUCI'ON DE 'ORDENES

       Despues 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,  el  shell
       intenta  localizarla.  Si  existe una funcion del shell con ese nombre,
       esa funcion se llama como se describio  arriba  en  FUNCIONES.   Si  el
       nombre  no  coincide con el de ninguna funcion, el shell lo busca en la
       lista de ordenes internas. Si se encuentra, se llama a la orden interna
       correspondiente.

       Si  el nombre no es ni una funcion del shell ni una orden interna, y no
       contiene barras inclinadas, bash busca en  cada  elemento  de  PATH  un
       directorio  que  contenga  un  fichero ejecutable con ese nombre.  Bash
       emplea una tabla de dispersion (hash)  para  recordar  los  nombres  de
       camino  completos  de  los  ficheros  ejecutables  (vea hash en 'ORDENES
       INTERNAS DEL SHELL abajo).  Solo se realiza una  busqueda  completa  de
       los  directorios  de  PATH  si  la orden no se encuentra en la tabla de
       dispersion.  Si la busqueda no es satisfactoria, el  shell  muestra  un
       mensaje de error y devuelve un estado de salida de 127.

       Si  la  busqueda fue exitosa, o si el nombre de la orden contiene una o
       mas barras inclinadas, el shell ejecuta el programa con ese  nombre  en
       un  entorno  de  ejecucion  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  ejecucion  fallara  porque  el  fichero no tuviera un formato
       ejecutable, y el fichero no fuera un directorio, se supone  que  es  un
       gui'on  del shell, un fichero que contiene ordenes del shell. Se crea un
       subshell para ejecutarlo.  Este subshell se reinicia a  si  mismo,  asi
       que  el  efecto  es el mismo que si se hubiera llamado a un nuevo shell
       para manejar el guion, con la excepcion de  que  el  hijo  retiene  las
       localizaciones  de  ordenes  recordadas por el padre (vea hash abajo en
       'ORDENES INTERNAS DEL SHELL).

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

ENTORNO DE EJECUCI'ON DE 'ORDENES

       El shell tiene un entorno de ejecuci'on, que consiste en lo siguiente:

       o      ficheros abiertos heredados por el shell en la  llamada,  quizas
              modificada  por  redirecciones  suministradas a la orden interna
              exec

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

       o      la  mascara  de  modo  de  creacion de ficheros, establecida por
              umask o heredada del padre del shell

       o      las trampas en curso establecidas por trap

       o      parametros del shell que han sido establecidos por  asignaciones
              de  variables  o  con set, o heredados del padre del shell en el
              entorno

       o      funciones del shell definidas durante la ejecucion  o  heredadas
              del padre del shell en el entorno

       o      opciones  activadas  en  la llamada (bien por omision o mediante
              argumentos en la linea de ordenes) o por set

       o      opciones activadas mediante shopt

       o      alias del shell definidos con alias

       o      varios identificadores de proceso, incluyendo los de trabajos en
              segundo plano, el valor de $$, y el valor de $PPID

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

       o      los ficheros  abiertos  del  shell,  mas  las  modificaciones  y
              adiciones especificadas en la orden por redirecciones

       o      el directorio de trabajo en curso

       o      la mascara de modo de creacion de ficheros

       o      variables  del  shell  marcadas  para  la exportacion, junto con
              variables exportadas para la orden, pasadas en el entorno

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

       Una orden llamada en este entorno separado no puede afectar al  entorno
       de ejecucion del shell.

       La  sustitucion  de  ordenes  y  las ordenes asincronas se llaman en un
       entorno de subshell que es un duplicado del entorno del shell,  excepto
       que  las trampas capturadas por el shell se restauran a los valores que
       el shell heredo de su padre en la llamada. Las ordenes internas que  se
       llaman  como  parte de una tuberia se ejecutan tambien en un entorno de
       subshell. Los cambios hechos al entorno del subshell no pueden  afectar
       al entorno de ejecucion del shell.

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.

       El  shell le permite manipular el entorno de varias maneras. En la hora
       de la llamada, el shell escudrina el entorno y crea un  parametro  para
       cada  nombre encontrado, marcandolo automaticamente para la exportaci'on
       a procesos hijos. Las  ordenes  ejecutadas  heredan  el  entorno.   Las
       ordenes  export  y  declare  -x  permiten  anadir y quitar parametros y
       funciones del entorno. Si el valor de un parametro  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 del shell, cuyos valores pueden ser modificados
       en el shell, menos las parejas quitadas mediante la orden unset mas las
       adiciones con las ordenes export y declare -x.

       El  entorno  para  cualquier  orden  simple  o funcion puede aumentarse
       temporalmente prefijandola con  asignaciones  de  parametros,  como  se
       describio arriba en PAR'AMETROS.  Estas sentencias de asignacion afectan
       solamente al entorno visto por esa orden.

       Si la opcion -k esta puesta (vea la orden interna  set  mas  adelante),
       entonces  todas  las  asignaciones de parametros 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

       Para los propositos del shell, una orden que acabe  con  un  estado  de
       salida cero, ha tenido exito. Un estado de salida de cero indica exito.
       Un estado de salida distinto de cero indica fallo.   Cuando  una  orden
       termina  por una senal fatal, bash emplea el valor de 128+se~nal 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  expansion   o
       redireccion, el estado de salida es mayor que cero.

       Las  ordenes incorporadas en el shell devuelven un estado de 0 (verdad)
       si acaban con exito, y distinto de cero  (falso)  si  ocurre  un  error
       mientras  se  ejecutan.  Todas las ordenes internas devuelven un estado
       de salida de 2 para indicar un modo de empleo incorrecto.

       El propio bash  devuelve  el  estado  de  salida  de  la  ultima  orden
       ejecutada,  a menos que ocurra un error de sintaxis, en cuyo caso acaba
       con un estado distinto de cero.  Vea  tambien  la  orden  interna  exit
       abajo.

SE~NALES

       Cuando  bash es interactivo, en la ausencia de trampas, no hace caso de
       SIGTERM (de modo que kill 0 no mata un shell interactivo), 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
       trabajos  tiene  efecto,  bash  no  hace  caso  de  SIGTTIN, SIGTTOU, y
       SIGTSTP.

       Los trabajos sincronos empezados por bash tienen manejadores  de  senal
       puestos  a  los  valores heredados por el shell de su padre.  Cuando el
       control de trabajo no esta en efecto, las  ordenes  internas  no  hacen
       caso  de  SIGINT  ni  SIGQUIT  tampoco.   Las  ordenes  ejecutadas como
       resultado de sustitucion de orden no  hacen  caso  de  las  senales  de
       control  de  trabajo generadas mediante el teclado SIGTTIN, SIGTTOU, ni
       SIGTSTP.

       El shell, de  forma  predeterminada,  acaba  cuando  recibe  una  senal
       SIGHUP.   Antes de salir, reenvia la senal SIGHUP a todos los trabajos,
       en ejecucion o parados.  A los trabajos parados se  les  envia  SIGCONT
       para  asegurarse  de que reciben la senal SIGHUP.  Para prevenir que el
       shell envie la senal a un trabajo particular, deberia  quitarse  de  la
       lista de trabajos con la orden interna disown (vea 'ORDENES INTERNAS DEL
       SHELL mas abajo) o marcarlo para no recibir SIGHUP empleando disown -h.

       Si la opcion del shell huponexit se  ha  puesto  mediante  shopt,  bash
       envia  una senal SIGHUP a todos los trabajos cuando un shell de entrada
       interactivo se acaba.

       Cuando bash recibe una senal para  la  que  se  ha  puesto  una  trampa
       mientras  se  se esta esperando que una orden se complete, la trampa no
       se ejecutara  hasta  que  la  orden  se  complete.   Cuando  bash  esta
       esperando  una  orden  asincrona  mediante  la  orden  interna wait, la
       recepcion de una senal para la que se ha definido una trampa, hara  que
       la  orden  interna  wait regrese inmediatamente con un estado de salida
       mayor que 128, inmediatamente tras que se ejecute la trampa.

CONTROL DE TRABAJOS

       El  control  de  trabajos  se  refiere  a   la   capacidad   de   parar
       selectivamente   (suspender)  la  ejecucion  de  procesos  y  continuar
       (reanudar)  su  ejecucion  posteriormente.  Un  usuario   emplea   esta
       facilidad tipicamente a traves de una interfaz interactiva suministrada
       conjuntamente por el controlador de terminal del sistema y bash.

       El shell asocia un trabajo con cada  tuberia.  Mantiene  una  tabla  de
       trabajos  ejecutandose  actualmente,  que  pueden listarse con la orden
       jobs.  Cuando  bash  arranca  un  trabajo  asincronamente  (en  segundo
       plano), imprime una linea con un aspecto como esta:

              [1] 25647

       indicando  que  este  trabajo  es  el  numero 1 y que el PID del ultimo
       proceso en la tuberia asociada con el es 25647.  Todos los procesos  en
       una  misma  tuberia  son  miembros  del  mismo trabajo.  Bash emplea la
       abstraccion del trabajo como la base para el control de trabajos.

       Para facilitar la implementacion de la interfaz del usuario al  control
       de  trabajos, el sistema mantiene la nocion de un identificador (ID) de
       grupo de procesos de la terminal en curso.  Los miembros de este  grupo
       de  procesos  (procesos  cuyo  PGID  es igual al PGID de la terminal en
       curso) reciben senales generadas por el teclado como SIGINT.   Se  dice
       que  estos  procesos  estan  en  primer plano.  Los procesos en segundo
       plano son aquellos cuyo PGID difiere del de la terminal; tales procesos
       son inmunes a senales generadas desde el teclado.  Solo los procesos en
       primer plano tienen permitido leer o escribir en  la  terminal.  A  los
       procesos  en  segundo  plano  que  intenten  leer de (o escribir en) la
       terminal, el controlador  de  terminal  les  manda  una  senal  SIGTTIN
       (SIGTTOU) que, a menos que  sea capturada, suspende el proceso.

       Si  el  sistema  operativo en el que bash se esta ejecutando, admite el
       control de trabajos (Linux lo admite, por supuesto),  bash  le  permite
       usarlo.   Teclear  el  caracter  suspender  (tipicamente ^Z, Control-Z)
       mientras que un proceso se esta ejecutando, hace  que  ese  proceso  se
       pare  y  le  devuelve  a  Ud.  al bash.  Teclear el caracter suspensi'on
       diferida (tipicamente ^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 el en segundo plano, la orden
       fg para continuar con el 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  bufer  de
       entrada del teclado se descartan.

       Hay varias formas de referirse a un trabajo en el shell.  El caracter %
       introduce  un  nombre  de  trabajo.  El  trabajo  numero  n  puede  ser
       referenciado  como %n.  Un trabajo puede ser referenciado utilizando un
       prefijo del nombre empleado para arrancarlo, o usando una subcadena que
       aparezca  en  su  linea  de ordenes.  Por ejemplo.  %ce se refiere a un
       trabajo ce parado. Si un prefijo concuerda con mas de un trabajo,  bash
       informa  de un error. Usar %?ce, por otra parte, se refiere a cualquier
       trabajo que contenga la cadena  ce  en  su  linea  de  ordenes.  Si  la
       subcadena  concuerda  con  mas de un trabajo, bash informa de un error.
       Los simbolos %% y %+ se refieren a la nocion que  tiene  el  shell  del
       trabajo  en  curso,  que es el ultimo trabajo parado mientras estaba en
       primer plano o se arranco en segundo plano.  El trabajo anterior  puede
       referenciarse  usando  %-.   En la salida relativa a trabajos (e.g., la
       salida de la orden jobs), el trabajo actual se marca siempre con un  +,
       y el anterior con un -.

       Si  simplemente  damos  el  nombre  de un trabajo, esto puede traerlo a
       primer plano: %1 es un sinonimo de  ``fg  %1'',  que  trae  el  trabajo
       numero  1  desde  el  segundo plano al primero.  Similarmente, ``%1 &''
       reanuda el trabajo 1 en el segundo plano, equivalente a ``bg %1''.

       El shell se entera  inmediatamente  de  cuando  un  trabajo  cambia  de
       estado.   Normalmente, bash espera hasta que esta a punto de mostrar un
       indicador antes de informar de cambios en el estado de un trabajo, para
       no  interrumpir  cualquier  otra  salida.  Si  la opcion -b de la orden
       interna  set   esta   activada,   bash   informa   de   tales   cambios
       inmediatamente.

       Si  se  intenta  salir  de bash mientras hay trabajos parados, el shell
       muestra un mensaje de aviso. La orden jobs se puede usar entonces  para
       inspeccionar  sus  estados.  Si se hace un segundo intento de salir sin
       ninguna otra orden intermedia, el shell no muestra ningun otro aviso, y
       los trabajos parados se hacen terminar.

INDICADORES

       Cuando  se ejecuta interactivamente, bash muestra el indicador primario
       PS1 cuando esta dispuesto para leer una  orden,  y  el  secundario  PS2
       cuando necesita mas entrada para completar una orden.  Bash permite que
       estas cadenas indicadoras  se  personalicen  insertando  un  numero  de
       caracteres   especiales   protegidos  con  la  barra  inversa,  que  se
       interpretan como sigue:
              \a     un caracter de alerta ASCII (07)
              \d     la fecha en el formato  "Dia-Semana  Mes  Dia"  (ejemplo,
                     "Tue May 26") en ingles
              \e     un caracter de escape (ESC) ASCII (033)
              \h     el nombre del computador anfitrion hasta el primer `.'
              \H     el nombre del computador anfitrion completo
              \n     salto de linea
              \r     retorno de carro
              \s     el nombre del shell, el nombre base de $0 (la porcion que
                     sigue a la ultima 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
              \u     el nombre de usuario del usuario en curso
              \v     la version de bash (e.g., 2.00)
              \V     la  distribucion  de  bash,  version  +  nivel de parcheo
                     (e.g., 2.00.0)
              \w     el directorio de trabajo en curso
              \W     el nombre base del directorio de trabajo
              \!     el numero de historia de esta orden
              \#     el numero de orden de esta orden
              \$     si el UID efectivo es 0 (el super-usuario), un #,  si  no
                     un $
              \nnn   el caracter correspondiente al numero 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  numero  de orden y el numero de historia son usualmente diferentes:
       el numero de historia de una orden  es  su  posicion  en  la  lista  de
       historia,  que  puede  incluir  ordenes restauradas desde el fichero de
       historia (vea HISTORIA mas abajo), mientras que el numero de  orden  es
       la  posicion en la secuencia de ordenes ejecutadas durante la sesion de
       shell actual.  Despues de que la cadena es  descodificada,  se  expande
       mediante  la expansion de parametros, sustitucion de ordenes, expansion
       aritmetica, expansion de cadena, y eliminacion de comillas,  sujeta  al
       valor de la opcion del shell promptvars (vea la descripcion de la orden
       shopt bajo 'ORDENES INTERNAS DEL SHELL mas adelante).

READLINE

       Readline (leer linea) es la biblioteca que  maneja  la  lectura  de  la
       entrada cuando se usa un shell interactivo, a menos que se haya dado la
       opcion --noediting cuando  se  llamo.   De  forma  predeterminada,  las
       ordenes  de  edicion de la linea son similares a las de emacs.  Tambien
       se dispone de una interfaz de edicion de lineas al estilo de vi.   Para
       desactivar la edicion de lineas una vez que el shell esta en ejecucion,
       use las opciones +o emacs o +o vi de la orden interna set (vea  'ORDENES
       INTERNAS DEL SHELL abajo).

   Notaci'on de Readline
       En  esta seccion, se emplea la notacion al estilo de emacs para denotar
       las teclas.  Las teclas de control se representan por medio de C-tecla;
       asi,  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  combinacion  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  ordenes de readline pueden recibir argumentos numericos que actuan
       normalmente como un numero de repeticion.  Algunas  veces,  empero,  lo
       que  tiene  significado  es  el signo del argumento. Pasar un argumento
       negativo a una orden que  actua  en  la  direccion  adelante  (p.  ej.,
       kill-line)  hace  que  esa orden actue en la direccion contraria, hacia
       atras.  Las ordenes cuyo comportamiento con  argumentos  se  desvie  de
       esto se senalan mas adelante.

       Cuando  una orden se describe como que corta texto, el texto borrado se
       guarda para una posible futura recuperacion (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  ordenes  que  no  cortan  texto  separan los trozos de texto en el
       anillo de corte.

   Inicio de Readline
       Readline se personaliza poniendo ordenes en un fichero  de  inicio  (el
       fichero  inputrc).   El  nombre de este fichero se toma del valor de la
       variable  INPUTRC.   Si  esta  variable  no  esta  definida,  el  valor
       predeterminado  es  ~/.inputrc.   Cuando un programa que hace uso de la
       biblioteca readline  arranca,  el  fichero  de  inicio  se  lee,  y  se
       establecen  las  definiciones  de teclas y variables.  Solo se permiten
       unas pocas construcciones basicas en el fichero de inicio de  readline.
       Las  lineas en blanco no se tienen en cuenta.  Las lineas que comiencen
       con un # son comentarios.  Las lineas que comiencen con  un  $  indican
       construcciones condicionales.  Otras lineas 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
       anadir sus propias ordenes y definiciones.

       Por ejemplo, el poner

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

       Se  reconocen  los siguientes nombres simbolicos de caracteres: RUBOUT,
       DEL, ESC, LFD, NEWLINE, RET, RETURN, SPC, SPACE, y TAB.  Ademas de  los
       nombres de ordenes, 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  simbolico de tecla, posiblemente con prefijos Meta- o Control-,
       o como una secuencia  de  teclas.   Cuando  se  use  la  forma  nombre-
       tecla:nombre-funci'on o macro, nombre-tecla es el nombre de una tecla en
       ingles. 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 funcion universal-argument,
       M-DEL  se vincula a la funcion backward-kill-word, y C-o se define como
       que se ejecute la  macro  expresada  en  la  parte  derecha  (esto  es,
       insertar el texto > salida en la linea).

       En  la  segunda  forma,  "sectecla":nombre-funci'on  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. Asi se pueden utilizar algunas  teclas
       de escape al estilo de GNU Emacs, como en el siguiente ejemplo.

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

       En   este   ejemplo,   C-u   se   enlaza   de   nuevo   a   la  funcion
       universal-argument.  C-x C-r se vincula a la funcion re-read-init-file,
       y  ESC  [ 1 1 ~ se define como que se inserte el texto Tecla de Funci'on
       1.  El conjunto completo de las secuencias de escape al estilo  de  GNU
       Emacs es
              \C-    prefijo de control
              \M-    prefijo meta
              \e     un caracter de Escape
              \\     barra inclinada inversa
              \"     una " literal
              \'     un ' literal

       Ademas  de  las secuencias de escape al estilo de GNU Emacs, se dispone
       de un segundo conjunto de escapes con la barra invertida:
              \a     alerta (campana)
              \b     espacio atras
              \d     borrado
              \f     salto de pagina
              \n     salto de linea
              \r     retorno de carro
              \t     tabulador horizontal
              \v     tabulador vertical
              \nnn   el caracter cuyo codigo es el valor octal nnn (de 1  a  3
                     digitos)
              \xnnn  el caracter cuyo codigo es el valor hexadecimal nnn (de 1
                     a 3 digitos)

       Cuando se mete el texto de una macro, se deben emplear comillas simples
       o   dobles   para  indicar  una  definicion  de  macro.   El  texto  no
       entrecomillado se supone un nombre de funcion.   En  el  cuerpo  de  la
       macro,  los  escapes con barra inversa de arriba se expanden.  La barra
       inversa protegera a cualquier otro caracter 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  edicion  puede  cambiarse
       durante  una  sesion  interactiva  empleando  la  opcion -o de la orden
       interna set (vea 'ORDENES INTERNAS DEL SHELL abajo).

   Variables de Readline
       Readline tiene variables que se pueden usar para personalizar  mas  aun
       su  comportamiento. Una variable se puede definir en el fichero inputrc
       con una sentencia de la forma

              set nombre-variable valor

       Excepto cuando se diga, las variables  de  readline  pueden  tomar  los
       valores On u Off.  Las variables y sus valores predeterminados son:

       bell-style (audible)
              Controla  que  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 esta
              disponible.  Si se pone como  audible,  readline  intenta  hacer
              sonar el pito de la terminal.
       comment-begin (``#'')
              La  cadena que se inserta cuando se ejecuta la orden de readline
              insert-comment.  Esta orden esta enlazada a M-# en modo emacs  y
              a # en modo vi.
       completion-ignore-case (Off)
              Si  se pone a On, readline realiza la concordancia y terminacion
              de nombres de ficheros sin importar si las letras son mayusculas
              o minusculas.
       completion-query-items (100)
              Esto  determina  cuando  se pregunta al usuario si quiere ver el
              numero  de  terminaciones  posibles  generadas  por   la   orden
              possible-completions.   Puede  ponerse  a cualquier valor entero
              mayor o igual a cero. Si el numero 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.
       convert-meta (On)
              Si  se  pone  a On, readline convertira caracteres con el octavo
              bit a uno a una secuencia de teclas ASCII poniendo el octavo bit
              a  cero y prefijando un caracter Esc (en efecto, usando Esc como
              el prefijo meta).
       disable-completion (Off)
              Si se pone a On, readline inhibira la terminacion  de  palabras.
              Los  caracteres  para  la  terminacion se insertaran en la linea
              como si se hubieran hecho corresponder con self-insert.
       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.
       enable-keypad (Off)
              Cuando se pone a  On,  readline  intentara  activar  el  teclado
              auxiliar  cuando  se llame. Algunos sistemas necesitan esto para
              activar las teclas de flechas de cursor.
       expand-tilde (Off)
              Si se pone a  on,  la  expansion  de  tilde  se  realiza  cuando
              readline intenta la terminacion de palabras.
       horizontal-scroll-mode (Off)
              Cuando  se  pone a On, esto hace que readline use una sola linea
              para pantalla, haciendo rodar la entrada horizontalmente en  una
              sola  linea  de  la  pantalla  cuando  esta  es mas larga que la
              anchura  de  la  pantalla;  en  lugar  de  seguir  en  la  linea
              siguiente.
       input-meta (Off)
              Si  se pone a On, readline habilitara la entrada de 8 bits (esto
              es, no pondra 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 sinonimo para esta variable.
       keymap (emacs)
              Establece el mapa de teclado actual para readline.  El  conjunto
              de nombres de mapas de teclado validos 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
              tambien afecta al mapa de teclado predeterminado.
       mark-directories (On)
              Si  se pone a On, los nombres de directorios completados tendran
              una barra inclinada anadida al final.
       mark-modified-lines (Off)
              Si se  pone  a  On,  las  lineas  de  historia  que  hayan  sido
              modificadas se muestran con un asterisco precediendolas (*).
       output-meta (Off)
              Si  se  pone a On, readline mostrara directamente los caracteres
              con el octavo bit a uno, en vez de como una secuencia de  escape
              prefijada con meta.
       print-completions-horizontally (Off)
              Si   se   pone   a   On,  readline  mostrara  terminaciones  con
              concordancias clasificadas horizontalmente en orden  alfabetico,
              en vez de verticalmente.
       show-all-if-ambiguous (Off)
              Esto altera el comportamiento predeterminado de las funciones de
              terminacion. Si se pone a on, las palabras que tienen mas de una
              posible  terminacion  hacen  que  las  concordancias se muestren
              inmediatamente en vez de tocarse el pito de la terminal.
       visible-stats (Off)
              Si se pone a On, se anade un caracter que represente un tipo  de
              fichero  segun  lo  que  devuelve  stat(2)  cuando se listan las
              terminaciones posibles.

   Construcciones condicionales de Readline
       Readline  implementa  una  facilidad  similar   en   espiritu   a   las
       caracteristicas  de  compilacion condicional del preprocesador de C que
       permite que las definiciones de  teclas  y  variables  se  realicen  en
       funcion  de pruebas o condiciones. Hay cuatro directivas del analizador
       que se usan.

       $if    La construccion $if permite que las definiciones se hagan  segun
              el modo de edicion, la terminal en uso, o la aplicacion que haga
              uso de readline.  El texto de la condicion se extiende hasta  el
              final de la linea; no se requieren caracteres para aislarla.

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

              term   La  forma term= puede emplearse para incluir definiciones
                     de teclas especificas de una terminal determinada, quizas
                     para  enlazar  las secuencias de teclas generadas por las
                     teclas de funcion de la terminal. La palabra en la  parte
                     derecha  del  = se prueba contra el nombre completo de la
                     terminal y contra la porcion del nombre  de  la  terminal
                     antes  del  primer  -. Esto permite que sun concuerde con
                     sun y con sun-cmd, por ejemplo.

              application
                     La  construccion  application  se  emplea  para   incluir
                     definiciones  especificas de la aplicacion. Cada programa
                     que usa la biblioteca readline define  el  nombre  de  la
                     aplicaci'on,   y  en  un  fichero  de  arranque  se  puede
                     comprobar si existe un  valor  en  particular.   Esto  se
                     podria  emplear  para  enlazar  secuencias  de  teclas  a
                     funciones  utiles  para  un  programa   especifico.   Por
                     ejemplo, la orden siguiente anade 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

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

       $else  Las ordenes en esta rama de la directiva $if se ejecutan  si  la
              comprobacion falla.

       $include
              Esta  directiva  toma como argumento un solo nombre de fichero y
              lee ordenes y definiciones  de  ese  fichero.  Por  ejemplo,  la
              siguiente directiva leeria de /etc/inputrc:

              $include  /etc/inputrc

   B'usquedas
       Readline  proporciona  ordenes  para  buscar a traves de la historia de
       ordenes  (vea  HISTORIA  abajo)  lineas  que   contengan   una   cadena
       especificada.  Hay dos modos de busqueda: incremental y no incremental.

       La  busqueda  incremental comienza antes de que el usuario haya acabado
       de teclear la cadena a buscar.  Tan pronto como se teclea cada caracter
       de  la  cadena de busqueda, readline muestra la siguiente entrada de la
       historia que concuerde con la cadena que se este tecleando  hasta  este
       punto.  Una  busqueda  incremental requiere solamente tantos caracteres
       como se necesiten para encontrar la entrada  deseada  en  la  lista  de
       historia.   El  caracter  Escape  se  emplea para terminar una busqueda
       incremental.   Control-J  tambien  dara  por  terminada  la   busqueda.
       Control-G  parara abruptamente una busqueda incremental y restaurara la
       linea original.  Cuando la  busqueda  se  termine,  la  entrada  de  la
       historia  que contuviera la cadena de busqueda se convierte en la linea
       en curso.  Para encontrar otras  entradas  en  la  lista  de  historia,
       teclee  Control-S o Control-R, segun sea apropiado.  Esto buscara hacia
       atras o  adelante en la historia la siguiente entrada  concordante  con
       la  cadena  de  busqueda  tecleada  hasta  este  punto.  Cualquier otra
       secuencia de teclas asociada a  una  orden  de  readline  terminara  la
       busqueda y ejecutara esa orden.  Por ejemplo, una nueva-l'inea terminara
       la busqueda y aceptara la linea, ejecutando de ese modo la orden de  la
       lista de historia.

       Las  busquedas no incrementales leen la cadena de busqueda entera antes
       de empezar a buscar en las lineas de la lista de historia. La cadena de
       busqueda  puede  ser  tecleada  por  el  usuario  o  ser  parte  de los
       contenidos de la linea en curso.

   Nombres de 'ordenes de Readline
       Lo siguiente es  una  lista  de  los  nombres  de  las  ordenes  y  las
       secuencias  de  teclas  predeterminadas a las que estan asociadas.  Los
       nombres de ordenes sin una secuencia de tecla acompanante pertenecen  a
       ordenes  que  no estan asociadas a ninguna secuencia de teclas de forma
       predeterminada.

   'Ordenes para el movimiento
       beginning-of-line (C-a)
              Mover al principio de la linea en curso.
       end-of-line (C-e)
              Mover al final de la linea.
       forward-char (C-f)
              Mover un caracter hacia adelante.
       backward-char (C-b)
              Mover un caracter hacia atras.
       forward-word (M-f)
              Mover adelante hasta el  final  de  la  siguiente  palabra.  Las
              palabras  se  componen  de  caracteres  alfanumericos  (letras y
              digitos).
       backward-word (M-b)
              Mover atras hasta el principio de esta palabra  o  la  anterior.
              Las  palabras  se componen de caracteres alfanumericos (letras y
              digitos).
       clear-screen (C-l)
              Limpiar la pantalla dejando la linea en curso al principio de la
              pantalla.  Con  un  argumento,  refresca  la  linea en curso sin
              borrar la pantalla.
       redraw-current-line
              Refrescar la linea en curso.

   'Ordenes para manipular la lista de historia
       accept-line (Nueva-l'inea, Intro)
              Aceptar la linea sin importar donde  este  el  cursor.  Si  esta
              linea  no esta vacia, anadirla a la lista de historia de acuerdo
              con el estado de la variable HISTCONTROL.  Si la linea es una de
              las  de  la historia, modificada, entonces restaurar la linea de
              la historia a su estado original.
       previous-history (C-p)
              Obtener la orden anterior de la lista  de  historia,  moviendose
              hacia atras en ella.
       next-history (C-n)
              Obtener  la  orden siguiente de la lista de historia, moviendose
              hacia delante en ella.
       beginning-of-history (M-<)
              Mover a la primera linea de la lista de historia.
       end-of-history (M->)
              Mover al final de la historia de entrada; esto es, la linea  que
              esta siendo introducida en la actualidad.
       reverse-search-history (C-r)
              Buscar  hacia  atras empezando en la linea en curso y moviendose
              `arriba' a traves de la lista de historia si es necesario.  Esta
              busqueda es incremental.
       forward-search-history (C-s)
              Buscar   hacia  adelante  empezando  en  la  linea  en  curso  y
              moviendose `abajo' a traves  de  la  lista  de  historia  si  es
              necesario. Esta busqueda es incremental.
       non-incremental-reverse-search-history (M-p)
              Buscar hacia atras a traves de la lista de historia empezando en
              la linea en curso empleando una busqueda no incremental  de  una
              cadena suministrada por el usuario.
       non-incremental-forward-search-history (M-n)
              Buscar  hacia delante a traves de la lista de historia empezando
              en la linea en curso empleando una busqueda  no  incremental  de
              una cadena suministrada por el usuario.
       history-search-forward
              Buscar hacia delante a traves de la lista de historia una cadena
              de caracteres entre el comienzo  de  la  linea  en  curso  y  la
              posicion  actual  del  cursor  (el  punto).  Esta busqueda no es
              incremental.
       history-search-backward
              Buscar hacia atras a traves de la lista de historia  una  cadena
              de  caracteres  entre  el  comienzo  de  la  linea en curso y la
              posicion actual del cursor  (el  punto).  Esta  busqueda  no  es
              incremental.
       yank-nth-arg (M-C-y)
              Insertar  el  primer argumento de la orden anterior (normalmente
              la segunda palabra de la linea previa) en el punto (la  posicion
              actual  del  cursor).  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.
       yank-last-arg (M-., M-_)
              Insertar el ultimo argumento de la  orden  anterior  (la  ultima
              palabra  de la entrada anterior de la lista de historia). Con un
              argumento, se comporta exactamente como yank-nth-arg.   Llamadas
              sucesivas  a  yank-last-arg  mueven  hacia  atras en la lista de
              historia, insertando cada vez el ultimo argumento de cada linea.
       shell-expand-line (M-C-e)
              Expandir la linea como hace el shell. Esto realiza la  expansion
              de alias y de historia asi como todas las expansiones de palabra
              del shell. Vea EXPANSI'ON DE HISTORIA abajo para una  descripcion
              de la expansion de historia.
       history-expand-line (M-^)
              Realizar  la  expansion  de  historia en la linea en curso.  Vea
              EXPANSI'ON DE HISTORIA abajo para una descripcion de la expansion
              de historia.
       magic-space
              Efectuar  la  expansion  de  historia  en  la  linea  en curso e
              insertar un espacio.  Vea EXPANSI'ON DE HISTORIA abajo  para  una
              descripcion de la expansion de historia.
       alias-expand-line
              Realizar  la expansion de alias en la linea en curso.  Vea ALIAS
              arriba para una descripcion de la expansion de alias.
       history-and-alias-expand-line
              Realizar la expansion de historia y alias en la linea en curso.
       insert-last-argument (M-., M-_)
              Un sinonimo para yank-last-arg.
       operate-and-get-next (C-o)
              Aceptar la linea en curso para la ejecucion y obtener  la  linea
              siguiente  relativa a la actual desde la lista de historia, para
              la edicion. Cualquier argumento no se tiene en cuenta.

   'Ordenes para cambiar el texto
       delete-char (C-d)
              Borrar el caracter bajo el cursor. Si el punto esta al principio
              de la linea, no hay caracteres en la linea, y el ultimo caracter
              tecleado no estaba asociado  a  delete-char,  entonces  devolver
              EOF.
       backward-delete-char (<X], DEL)
              Borrar  el  caracter  tras  el cursor. Cuando se da un argumento
              numerico, guardar el texto borrado en el anillo de corte.
       quoted-insert (C-q, C-v)
              Anadir el siguiente caracter tecleado a la linea tal  cual.  Asi
              es como se pueden insertar caracteres como C-q, por ejemplo.
       tab-insert (C-v TAB)
              Insertar un caracter de tabulacion.
       self-insert (a, b, A, 1, !, ...)
              Insertar el caracter tecleado.
       transpose-chars (C-t)
              Arrastrar  el  caracter  antes del punto hacia adelante sobre el
              caracter en el punto. El punto se mueve adelante tambien. Si  el
              punto  esta  al  final  de  la linea, entonces transpone los dos
              caracteres  antes  del  punto.  Los  argumentos   negativos   no
              funcionan.
       transpose-words (M-t)
              Arrastrar  la  palabra tras el cursor al lugar pasado la palabra
              enfrente del  cursor,  moviendo  el  cursor  tambien  sobre  esa
              palabra.
       upcase-word (M-u)
              Poner en mayusculas 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 minusculas 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  mayuscula  la  inicial  de  la palabra en curso (o la
              siguiente).  Con un argumento negativo, pone la  anterior,  pero
              no mueve el punto.

   Cortar y pegar
       kill-line (C-k)
              Cortar  el  texto  desde  la posicion actual del cursor hasta el
              final de la linea.
       backward-kill-line (C-x DEL)
              Cortar hacia atras hasta el principio de la linea.
       unix-line-discard (C-u)
              Cortar hacia atras desde el  punto  hasta  el  principio  de  la
              linea. El texto cortado se guarda en el anillo de corte.

       kill-whole-line
              Cortar  todos  los caracteres de la linea en curso, sin importar
              donde este el cursor.
       kill-word (M-d)
              Cortar desde el cursor 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-DEL)
              Cortar  la  palabra tras el cursor. Los extremos de las palabras
              son los mismos que los empleados por backward-word.
       unix-word-rubout (C-w)
              Cortar la palabra tras el cursor, empleando el espacio en blanco
              como  un  limite  de  palabra.  Los extremos de las palabras son
              diferentes de los de backward-kill-word.
       delete-horizontal-space (M-\)
              Borrar todos los espacios y tabuladores alrededor del punto.
       kill-region
              Cortar el texto entre el punto y la marca  (posicion  registrada
              del cursor). Este texto se conoce como la regi'on.
       copy-region-as-kill
              Copiar el texto en la region al anillo de corte.
       copy-backward-word
              Copiar  la  palabra  antes  del  punto  al  bufer de corte.  Los
              extremos de palabras son los mismos que con backward-word.
       copy-forward-word
              Copiar la palabra que sigue al punto al  bufer  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 bufer en donde este el
              cursor.
       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'ericos
       digit-argument (M-0, M-1, ..., M--)
              Anadir este digito al argumento, acumulandolo, o comenzar con un
              nuevo argumento.  M-- empieza un argumento negativo.
       universal-argument
              Esta es otra forma de especificar un argumento.  Si  esta  orden
              se  hace seguir de uno o mas digitos, opcionalmente con un signo
              menos inicial, estos digitos definen  el  argumento.   Si  a  la
              orden  siguen  digitos,  ejecutar  de  nuevo  universal-argument
              finaliza el argumento numerico, pero  si  no,  no  se  tiene  en
              cuenta.    Como   un  caso  especial,  si  a  esta  orden  sigue
              inmediatamente un caracter que no es ni un digito  ni  un  signo
              menos,  el  numero  del  argumento  para  la  siguiente orden se
              multiplica por cuatro.  El numero del argumento es  inicialmente
              uno,  asi  que ejecutar esta funcion por primera vez hace que el
              numero del  argumento  sea  cuatro,  una  segunda  vez  lo  hace
              dieciseis, y asi sucesivamente.

   Terminaci'on
       complete (TAB)
              Intentar  realizar  una  terminacion  del texto antes del punto.
              Bash intenta la terminacion 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 computador anfitrion (si
              el  texto  comienza con @), o como una orden (incluyendo alias y
              funciones), por este  orden.  Si  nada  de  esto  concuerda,  se
              intenta la terminacion 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
              habrian sido generadas por possible-completions.
       menu-complete
              Similar a complete, pero reemplaza la palabra a  ser  completada
              con una sola concordancia de la lista de terminaciones posibles.
              La ejecucion repetida de menu-complete camina por  la  lista  de
              terminaciones posibles, insertando cada concordancia por turnos.
              Al final de la lista de terminaciones, se hace sonar el pito  de
              la  terminal  y  el  texto original se restaura.  Un argumento n
              mueve n posiciones hacia delante en la lista  de  concordancias;
              un  argumento negativo se puede emplear para moverse hacia atras
              en la lista.  Esta orden esta pensada para ser asociada  a  TAB,
              pero no esta asociada a ninguna tecla de forma predeterminada.
       complete-filename (M-/)
              Intentar  la  terminacion  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,
              tratandolo como un nombre de fichero.
       complete-username (M-~)
              Intentar  la  terminacion  del texto antes del punto, tratandolo
              como un nombre de usuario.
       possible-username-completions (C-x ~)
              Listar las posibles terminaciones del  texto  antes  del  punto,
              tratandolo como un nombre de usuario.
       complete-variable (M-$)
              Intentar  la  terminacion  del texto antes del punto, tratandolo
              como una variable del shell.
       possible-variable-completions (C-x $)
              Listar las posibles terminaciones del  texto  antes  del  punto,
              tratandolo como una variable del shell.
       complete-hostname (M-@)
              Intentar  la  terminacion  del texto antes del punto, tratandolo
              como un nombre de computador anfitrion.
       possible-hostname-completions (C-x @)
              Listar las posibles terminaciones del  texto  antes  del  punto,
              tratandolo como un nombre de computador anfitrion.
       complete-command (M-!)
              Intentar  la  terminacion  del texto antes del punto, tratandolo
              como un nombre de orden. La terminacion de orden  intenta  hacer
              concordar el texto con alias, palabras reservadas, funciones del
              shell, ordenes internas  del  shell,  y  finalmente  nombres  de
              ficheros ejecutables, en ese orden.
       possible-command-completions (C-x !)
              Listar  las  posibles  terminaciones  del texto antes del punto,
              tratandolo como un nombre de orden.
       dynamic-complete-history (M-TAB)
              Intentar la terminacion del texto antes del punto, comparando el
              texto  con lineas de la lista de historia buscando concordancias
              para la terminacion.
       complete-into-braces (M-{)
              Efectuar la terminacion de nombres de  ficheros  y  devolver  la
              lista  de terminaciones posibles encerrada entre llaves de forma
              que la lista este disponible al shell (vea Expansi'on  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 definicion.
       call-last-kbd-macro (C-x e)
              Reejecutar la ultima macro de teclado definida, haciendo que los
              caracteres en la macro aparezcan como si se hubieran pulsado  en
              el teclado.

   Miscel'anea
       re-read-init-file (C-x C-r)
              Leer   los   contenidos   del   fichero  inputrc,  e  incorporar
              cualesquiera definiciones de teclas o asignaciones de  variables
              que se hubieran encontrado en el.
       abort (C-g)
              Terminar  abruptamente  la  orden de edicion en curso y tocar el
              pito de la terminal (segun el establecimiento de bell-style).
       do-uppercase-version (M-a, M-b, M-x, ...)
              Si el caracter meta x esta en minuscula, ejecutar la  orden  que
              este asociada al caracter correspondiente en mayuscula.
       prefix-meta (ESC)
              Convertir  en  meta  el  siguiente  caracter tecleado.  ESC f es
              equivalente a Meta-f.
       undo (C-_, C-x C-u)
              Deshacer de forma incremental, recordado separadamente para cada
              linea.
       revert-line (M-r)
              Deshacer  todos  los  cambios  hechos a esta linea. Esto es como
              ejecutar la orden undo las veces suficientes como para  devolver
              la linea a su estado inicial.
       tilde-expand (M-~)
              Efectuar la expansion de tilde en la palabra en curso.
       set-mark (C-@, M-<espacio>)
              Establecer  la  marca  en el punto actual. Si se da un argumento
              numerico, la marca se establece en esa posicion.
       exchange-point-and-mark (C-x C-x)
              Cambia el punto con la marca. La posicion actual del  cursor  se
              pone  en la posicion guardada, y la vieja posicion del cursor se
              guarda como la marca.
       character-search (C-])
              Se lee un caracter y el punto se mueve a la siguiente ocurrencia
              de  ese  caracter.  Un  argumento  numerico negativo hace que la
              busqueda sea de las ocurrencias anteriores.
       character-search-backward (M-C-])
              Se lee un caracter y el punto se mueve a la anterior  ocurrencia
              de  ese  caracter.  Un  argumento  numerico negativo hace que la
              busqueda sea de las ocurrencias siguientes.
       insert-comment (M-#)
              El valor de la variable de readline comment-begin se inserta  al
              principio  de la linea en curso, y la linea se acepta como si se
              hubiera tecleado Intro (nueva-linea). Esto convierte la linea en
              curso en un comentario del shell.
       glob-expand-word (C-x *)
              La  palabra  antes  del  punto  se  trata como un patron para la
              expansion de nombres de caminos y la lista de nombres de fichero
              concordantes se inserta, reemplazando a la palabra.
       glob-list-expansions (C-x g)
              Mostrar  la  lista de expansiones que habrian sido generadas por
              glob-expand-word y redibujar la linea.
       dump-functions
              Mostrar todas las funciones y sus asociaciones de teclas  en  el
              flujo  de salida de readline. Si se da un argumento numerico, 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 estos, en el flujo de salida de readline.  Si
              se da un argumento numerico, 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 numerico, la salida  se  formatea  de  tal
              manera que pueda formar parte de un fichero inputrc.
       display-shell-version (C-x C-v)
              Mostrar  informacion de version acerca de la instancia actual de
              bash.

HISTORIA

       Cuando se habilita la opcion -o history de la  orden  interna  set,  el
       shell da acceso a la historia de 'ordenes, la lista de ordenes tecleadas
       con anterioridad. El  texto  de  los  ultimos  HISTSIZE  mandatos  (por
       omision,  500)  se  guarda  en una lista de historia. El shell almacena
       cada orden en la lista de historia antes de la expansion de  parametros
       y  variables  (vea EXPANSI'ON arriba) pero tras efectuar la expansion de
       historia, sujeta a los valores de las variables del shell HISTIGNORE  e
       HISTCONTROL.   En  el  arranque,  la  historia  se  inicia a partir del
       fichero nombrado en la variable HISTFILE (por omision ~/.bash_history).
       HISTFILE   se  trunca,  si  es  necesario,  para  contener  no  mas  de
       HISTFILESIZE lineas.  Cuando un shell interactivo termina, las  ultimas
       HISTSIZE  lineas  se  copian de la lista de historia a HISTFILE.  Si la
       opcion del shell histappend esta activa (vea la  descripcion  de  shopt
       bajo  'ORDENES INTERNAS DEL SHELL mas adelante), las lineas se anaden al
       fichero de historia; si no, el fichero de historia se sobreescribe.  Si
       HISTFILE  no  esta definido, o si no se puede escribir en el fichero de
       historia, la historia no  se  guarda.  Tras  guardar  la  historia,  el
       fichero  de  historia  se  trunca  para contener no mas de HISTFILESIZE
       lineas. Si HISTFILESIZE no esta definido, no se trunca.

       La orden interna fc  (vea  'ORDENES  INTERNAS  DEL  SHELL  abajo)  puede
       emplearse para listar o editar y re-ejecutar una porcion de la lista de
       historia.  La orden interna history se puede utilizar  para  mostrar  o
       modificar  la  lista  de  historia  y manipular el fichero de historia.
       Cuando se emplea la edicion de lineas de ordenes, estan disponibles las
       ordenes  de  busqueda en cada modo de edicion que proporcionan acceso a
       la lista de historia.

       El shell permite el control sobre que ordenes se guarden en la lista de
       historia.  Las  variables HISTCONTROL y HISTIGNORE se pueden definir de
       forma que el shell guarde  solamente  un  subconjunto  de  las  ordenes
       introducidas.   La  opcion  del shell cmdhist, si esta habilitada, hace
       que el shell intente guardar cada linea de una orden multi-linea en  la
       misma  entrada  de  la  historia,  anadiendo  punto  y  comas donde sea
       necesario para preservar la correccion sintactica.  La opcion del shell
       lithist  hace  que  el  shell  guarde  la  orden  con  saltos  de linea
       empotrados en vez de punto y comas. Vea  la  descripcion  de  la  orden
       interna  shopt  abajo  en  'ORDENES  INTERNAS DEL SHELL para informacion
       sobre como establecer y anular opciones del shell.

EXPANSI'ON DE HISTORIA

       El shell admite una caracteristica de  expansion  de  historia  que  es
       parecida  a la expansion de historia en csh.  Esta seccion describe que
       caracteristicas sintacticas estan disponibles. Esta caracteristica esta
       habilitada  de forma predeterminada en shells interactivos, y puede ser
       desactivada mediante la opcion +H de la orden interna set (vea  'ORDENES
       INTERNAS  DEL  SHELL  abajo). Los shells no interactivos no realizan la
       expansion de la historia de forma predeterminada.

       Las expansiones de historia  introducen  palabras  desde  la  lista  de
       historia  en  el  flujo  de  entrada,  facilitando asi la repeticion de
       ordenes, la insercion de argumentos de una orden anterior en  la  linea
       de  entrada  en  curso,  o la correccion rapida de errores en una orden
       anterior.

       La expansion de historia se realiza inmediatamente tras la  lectura  de
       una  linea completa, antes de que el shell la divida en palabras. Tiene
       lugar en dos fases.  En la primera se determina que linea de  la  lista
       de  historia  hay que emplear durante la sustitucion.  En la segunda se
       seleccionan porciones de esa linea para su inclusion en la actual.   La
       linea  seleccionada desde la historia es el evento, y la porcion de esa
       linea sobre la que  se  actua  son  palabras.   Se  dispone  de  varios
       modificadores  para  manipular  las palabras seleccionadas. La linea 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  de  historia
       se  introducen  por la aparicion del caracter de expansion de historia,
       que es por omision !.  Solo las barras  inversas  (\)  y  las  comillas
       simples pueden proteger al caracter de expansion de historia.

       Se  pueden  emplear  ciertas opciones que se ponen con la orden interna
       shopt para cambiar el comportamiento de la expansion de  historia.   Si
       la  opcion  del  shell histverify esta activa (vea la descripcion de la
       orden interna shopt), y se esta usando readline, las  sustituciones  de
       historia no se pasan inmediatamente al analizador del shell.  En vez de
       eso, la linea expandida se vuelve a cargar en el bufer  de  edicion  de
       readline para una modificacion posterior.  Si se esta usando readline y
       la opcion del  shell  histreedit  esta  activada,  una  sustitucion  de
       historia fallida se volvera a cargar en el bufer de edicion de readline
       para su correccion.  La opcion -p de la orden interna history se  puede
       emplear  para  ver  que hara una expansion de historia antes de usarse.
       La opcion -s de la orden interna history se puede emplear  para  anadir
       ordenes  al final de la lista de historia sin ejecutarlas realmente, de
       modo que esten disponibles para rellamadas posteriores.

       El shell permite el control de los diversos caracteres empleados por el
       mecanismo  de  expansion  de  historia (vea la descripcion de histchars
       arriba en Variables del shell).

   Designadores de eventos
       Un designador de evento es una referencia a una  entrada  de  linea  de
       orden en la lista de historia.

       !      Comenzar  una sustitucion de historia, excepto cuando le siga un
              blanco, salto de linea, = o (.
       !n     Referirse a la linea de ordenes numero n.
       !-n    Referirse a la linea de orden en curso menos n.
       !!     Referirse a la orden anterior. Esto es lo mismo que `!-1'.
       !cadena
              Referirse a la orden mas reciente que comience con cadena.
       !?cadena[?]
              Referirse a la orden mas reciente que contenga cadena.  El ? del
              final  puede  omitirse  si  a  cadena le sigue inmediatamente un
              salto de linea.
       ^cadena1^cadena2^
              Sustitucion  rapida.  Repetir  la  ultima  orden,   reemplazando
              cadena1  con  cadena2.   Equivalente a ``!!:s/cadena1/cadena2/''
              (vea Modificadores abajo).
       !#     La linea 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 especificacion 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 linea, con la primera palabra denotada  por  0  (cero).
       Las  palabras  se  insertan en la linea en curso separadas por espacios
       simples.

       0 (cero)
              La palabra numero 0. Para el shell, esta es  la  palabra  de  la
              orden.
       n      La n-sima palabra.
       ^      El primer argumento. Esto es, la palabra numero 1.
       $      El ultimo argumento.
       %      La  palabra  que  concordaba  con  la  mas reciente busqueda con
              `?cadena?'.
       x-y    Un rango de palabras; `-y' abrevia `0-y'.
       *      Todas las palabras menos la numero cero. Esto es un sinonimo  de
              `1-$'.   No  es un error emplear * si solo hay una palabra en el
              evento; en este caso se devuelve la cadena vacia.
       x*     Abreviatura de x-$.
       x-     Abrevia x-$ como x*, pero omite la ultima palabra.

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

   Modificadores
       Tras  el  designador  opcional de palabra, puede haber una secuencia de
       uno o mas de los siguientes modificadores, precedido cada  uno  por  un
       `:'.

       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 ultima 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  romper
              entre palabras en los blancos y saltos de linea.
       s/viejo/nuevo/
              Substituir  nuevo por la primera ocurrencia de viejo en la linea
              de evento. Se puede emplear cualquier delimitador en vez  de  /.
              El  delimitador final es opcional si es el ultimo caracter de la
              linea 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 protegera
              el  &. Si viejo esta vacio, se pone al ultimo viejo substituido,
              o, si no tuvo lugar ninguna sustitucion de historia previa, a la
              ultima cadena en una busqueda del tipo !?cadena[?].
       &      Repetir la sustitucion anterior.
       g      Hace  que  los  cambios  se  apliquen  sobre  la linea entera de
              evento.  Esto  se  emplea  en  conjuncion   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  ultimo  caracter de la linea de
              evento.

'ORDENES INTERNAS DEL SHELL

       A menos que se diga otra cosa, cada orden interna documentada  en  esta
       seccion  que  acepte  opciones  precedidas por - tambien acepta -- para
       significar el final de las opciones.
        : [argumentos]
              Sin efecto; la orden no hace nada mas que expandir argumentos  y
              realizar  cualquier  redireccion  que  se  haya especificado. Se
              devuelve un codigo de salida cero.

        .  nombre-fichero [argumentos]
       source nombre-fichero [argumentos]
              Lee y ejecuta ordenes desde nombre-fichero en el entorno  actual
              del  shell  y  devuelve  el  estado de salida de la ultima orden
              ejecutada desde nombre-fichero.  Si nombre-fichero  no  contiene
              una barra inclinada, se usan los nombres de fichero en PATH para
              encontrar el  directorio  que  contenga  a  nombre-fichero.   El
              fichero  que  se  busca  en  PATH no necesita ser ejecutable. Se
              busca en el directorio de trabajo si no se encontro  el  fichero
              en PATH.  Si la opcion sourcepath de la orden interna shopt esta
              desactivada,  la  busqueda  en  PATH  no  se  realiza.   Si   se
              suministran   argumentos,   se   convierten  en  los  parametros
              posicionales  cuando  se  ejecuta  nombre-fichero.  Si  no,  los
              parametros  posicionales  permanecen  inalterados.  El estado de
              retorno es el de la ultima orden de dentro del guion (0 si no se
              ejecuto  ninguna  orden),  y  `falso'  si  nombre-fichero  no se
              encontro o no se pudo leer.

       alias [-p] [nombre[=valor] ...]
              Alias sin argumentos o con la opcion  -p  muestra  la  lista  de
              alias  en  la  forma  alias  nombre=valor en la salida estandar.
              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 sustitucion 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 de
              un nombre para el que no se haya definido un alias.

       bg [espectrab]
              Reanuda el trabajo suspendido espectrab en segundo  plano,  como
              si  se  hubiera arrancado con &.  Si espectrab no esta presente,
              se emplea la nocion que tiene el shell del trabajo en curso.  bg
              espectrab devuelve 0 a menos que se ejecute cuando el control de
              trabajos este deshabilitado, o cuando se ejecute con el  control
              de  trabajos habilitado si espectrab no se encontro, o cuando se
              hubo arrancado sin control de trabajos.

       bind [-m mapatecl] [-lpsvPSV]
       bind [-m mapatecl] [-q funci'on] [-u funci'on] [-r sectecl]
       bind [-m mapatecl] -f nombre-fichero
       bind [-m mapatecl] sectecl:nombre-funci'on
              Muestra las  asociaciones  actuales  de  readline  de  teclas  y
              funciones,  o  asocia  una  secuencia  de teclas a una funcion o
              macro de readline.  La sintaxis aceptada es  identica  a  la  de
              .inputrc,  pero  cada  asociacion 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
                     Usar  mapatecl  como  el  mapa  de teclado que va a verse
                     afectado por  subsiguientes  asociaciones.   Los  nombres
                     aceptables   de   mapatecl   son  emacs,  emacs-standard,
                     emacs-meta, emacs-ctlx, vi, vi-command y  vi-insert.   vi
                     equivale   a   vi-command;   emacs   es   equivalente   a
                     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 leidas.
              -P     Lista los nombres de funciones de readline actuales y las
                     asociaciones.
              -v     Muestra los  nombres  de  variables  de  readline  y  los
                     valores de tal manera que puedan volver a ser leidas.
              -V     Lista los nombres de variables de readline actuales y los
                     valores.
              -s     Muestra las secuencias de teclas de readline asociadas  a
                     macros  y  las cadenas correspondientes de tal manera que
                     puedan ser leidas de nuevo.
              -S     Muestra las secuencias de teclas de readline asociadas  a
                     macros y las cadenas de caracteres correspondientes.
              -f nombre-fichero
                     Lee las asociaciones de teclas desde nombre-fichero.
              -q funci'on
                     Pregunta que teclas llaman a la funci'on especificada.
              -u funci'on
                     Desenlaza   todas  las  teclas  asociadas  a  la  funci'on
                     nombrada.
              -r sectecl
                     Borra cualquier asociacion actual de sectecl.

              El valor devuelto  es  0  a  menos  que  se  de  una  opcion  no
              reconocida o que ocurra un error.

       break [n]
              Sale  de un bucle for, while, until, o select.  Si se especifica
              n, sale de n niveles.  n debe ser >= 1.  Si n es  mayor  que  el
              numero  de  bucles,  se  sale de todos. El valor devuelto es 0 a
              menos que el shell no este ejecutando un bucle cuando se ejecute
              break.

       builtin orden-interna [argumentos]
              Ejecuta  la  orden interna del shell especificada, pasandole los
              argumentos, y devuelve su estado de salida.  Esto es util cuando
              se  define  una  funcion  cuyo  nombre es el mismo que una orden
              interna del shell, reteniendo  la  funcionalidad  de  esa  orden
              interna  dentro de la funcion.  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
              del shell.

       cd [-LP] [dir]
              Cambia el directorio de trabajo en curso  a  dir.   La  variable
              HOME  contiene  el nombre del directorio predeterminado dir.  La
              variable CDPATH define el camino de busqueda del directorio  que
              contenga dir.  Los nombres de directorios alternativos en CDPATH
              se separan por dos puntos (:). Un nombre de directorio vacio  en
              CDPATH es lo mismo que el directorio de trabajo en curso, o sea,
              ``.''. Si dir comienza con una  barra  inclinada  (/),  entonces
              CDPATH  no  se  usa.  La  opcion  -P dice que se va a emplear la
              estructura fisica  de  directorios  en  vez  de  seguir  enlaces
              simbolicos  (vea  tambien la opcion -P de la orden interna set);
              la opcion -L hace que se sigan siempre los  enlaces  simbolicos.
              El argumento - es equivalente a $OLDPWD.  El valor de retorno es
              `verdad' si el  directorio  de  trabajo  se  cambio  con  exito;
              `falso' en otro caso.

       command [-pVv] orden [arg ...]
              Ejecuta  orden  con  args  suprimiendo  la  busqueda  normal  de
              funciones del shell. Solo se ejecutaran ordenes incorporadas  en
              el  shell o programas encontrados en la variable PATH.  Si se da
              la  opcion  -p,  se  busca  la  orden   empleandose   un   valor
              predeterminado  para  PATH  que  garantiza  encontrar  todas las
              utilidades estandar del sistema.  Si se da la opcion -V o la -v,
              se  muestra  una descripcion de orden.  La opcion -v muestra una
              sola palabra que indica la orden o nombre de fichero  ejecutable
              empleado  para  la  llamada  a  orden;  la opcion -V produce una
              descripcion algo mas prolija.  Si se dan las opciones -V  o  -v,
              el  estado de salida es 0 si orden se encontro, y 1 si no. Si no
              se da ninguna de las dos opciones y ocurrio un error u orden  no
              se  encontro,  el  estado  de salida es 127. Si no, el estado de
              salida de command es el estado de salida de orden.

       continue [n]
              Reanuda la siguiente iteracion del bucle for,  while,  until,  o
              select  donde estamos.  Si se especifica n, la reanudacion es en
              el n-simo bucle que nos rodea.  n debe ser >= 1.  Si n es  mayor
              que  el numero de bucles que nos rodean, se reanuda el bucle mas
              exterior (el de ``mas alto nivel''). El valor de retorno es 0  a
              menos que el shell no este ejecutando un bucle cuando se ejecute
              continue.

       declare [-afFirx] [-p] [nombre[=valor]]
       typeset [-afFirx] [-p] [nombre[=valor]]
              Declaran variables o les dan atributos.  Si no se  dan  nombres,
              entonces  muestran  los  valores de las variables.  La opcion -p
              mostrara los atributos y valores  de  cada  nombre.   Cuando  se
              emplee  -p,  otras  opciones  que  se hayan dado no se tienen en
              cuenta.  La opcion -F inhibe la presentacion de las definiciones
              de  funciones;  solo  se  muestran  sus nombres y atributos.  La
              opcion -F implica -f.  Se pueden emplear las siguientes opciones
              para   restringir   la   salida  a  variables  con  el  atributo
              especificado o para dar atributos a variables:
              -a     Cada nombre es una variable vector (vea Vectores arriba).
              -f     Usar solamente nombres de funciones.
              -i     La variable se  trata  como  un  entero;  se  realiza  la
                     evaluacion  aritmetica (vea EVALUACI'ON ARITM'ETICA) cuando
                     a la variable se le asigne un valor.
              -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
                     definicion con unset.
              -x     Marca  nombres para la exportacion a ordenes subsecuentes
                     a traves del entorno.

              Usar `+'  en  vez  de  `-'  desactiva  el  atributo  en  vez  de
              activarlo,  con  la  excepcion de que no puede emplearse +a para
              destruir una variable vector. Cuando se usa en una funcion, hace
              local cada nombre, como con la orden interna local.  El valor de
              retorno es 0 a menos que se encuentre una  opcion  invalida,  se
              intente  definir una funcion utilizando "-f fuu=bar", se intente
              asignar un valor a una variable de lectura exclusiva, se intente
              asignar  un  valor a una variable vector sin emplear la sintaxis
              de asignacion  compuesta  (vea  Vectores  arriba),  uno  de  los
              nombres  no  sea  un  nombre  valido  de  variable del shell, se
              intente desactivar el  estado  de  lectura  exclusiva  para  una
              variable  de  solo  lectura,  se intente desactivar el estado de
              vector para una  variable  vector,  o  se  intente  mostrar  una
              funcion no existente con -f.

       dirs [-clpv] [+n] [-n]
              Sin  opciones,  muestra  la  lista  de  directorios  actualmente
              recordados.  La forma predeterminada de  mostrarlos  es  en  una
              sola   linea  con  los  nombres  de  directorios  separados  por
              espacios.  Los directorios se anaden a la  lista  (en  realidad,
              una  pila)  con  la  orden  pushd; la orden popd los quita de 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.
              -c     Limpia  la  pila  de  directorios  borrando   todas   las
                     entradas.
              -l     Produce  un  listado mas largo; el formato predeterminado
                     de listado emplea una tilde de la  ene  para  senalar  el
                     directorio inicial de trabajo (el "hogar").
              -p     Muestra  la  pila de directorios con una entrada por cada
                     linea.
              -v     Muestra la pila de directorios con una entrada por linea,
                     prefijando cada entrada con su indice en la pila.

              El valor de retorno es 0 a menos que se de una opcion invalida o
              que n indexe mas alla del final de la pila de directorios.

       disown [-ar] [-h] [espectrab ...]
              Sin opciones, cada espectrab se quita de la  tabla  de  trabajos
              activos.   Si  se da la opcion -h, cada espectrab no se quita de
              la tabla, sino que se marca de manera que no se  le  enviara  la
              senal  SIGHUP  si  el  shell recibe una senal SIGHUP.  Si no hay
              ningun espectrab presente, y ni se dan las opciones -a ni -r, se
              utiliza  el trabajo en curso.  Si no se suministra espectrab, la
              opcion -a significa quitar  o  marcar  todos  los  trabajos;  la
              opcion  -r  sin  un argumento espectrab restringe la operacion a
              los trabajos en ejecucion.  El valor de retorno es 0 a menos que
              espectrab no se refiera a un trabajo valido.

       echo [-neE] [arg ...]
              Repite   los args, separados por espacios, seguidos por un salto
              de linea.  El estado de retorno es siempre 0.  Si se  especifica
              -n,  se suprime el salto de linea final.  Si se da la opcion -e,
              se activa la interpretacion  de  los  siguientes  caracteres  de
              escape   (con   barra   inversa).  La  opcion  -E  desactiva  la
              interpretacion  de  estos  caracteres  de  escape,  incluso   en
              sistemas  donde se interpreten de forma predeterminada.  echo no
              interpreta -- como el fin de las opciones.  echo interpreta  las
              siguientes secuencias de escape:
              \a     alerta (pito)
              \b     espacio atras
              \c     suprime el salto de linea final
              \e     un caracter Escape
              \f     salto de pagina
              \n     nueva linea
              \r     retorno de carro
              \t     tabulador horizontal
              \v     tabulador vertical
              \\     barra inclinada invertida
              \nnn   el  caracter  cuyo codigo es el valor octal nnn (de uno a
                     tres digitos)
              \xnnn  el caracter cuyo codigo es el valor hexadecimal  nnn  (de
                     uno a tres digitos)

       enable [-adnps] [-f nombre-fichero] [nombre ...]
              Activa  y  desactiva  ordenes internas incorporadas en el shell.
              Desactivar una orden incorporada en  el  shell  permite  que  un
              programa  cuya  imagen  ejecutable este en el disco con el mismo
              nombre, se ejecute sin tener que especificar un camino completo,
              aun cuando el shell normalmente busca las ordenes internas antes
              que las ordenes externas en disco.  Si se da -n, cada nombre  se
              desactiva;  si no, nombres se activan. Por ejemplo, para emplear
              el programa binario test encontrado en el  PATH  en  vez  de  la
              version  incorporada  en  el  shell, ejecute enable -n test.  La
              opcion -f significa cargar la  nueva  orden  incorporada  nombre
              desde  el  objeto  compartido  nombre-fichero,  en  sistemas que
              admiten la carga  dinamica.  La  opcion  -d  borrara  una  orden
              interna  cargada  previamente  con  -f.  Si no se dan argumentos
              nombre, o si se da la opcion -p, se muestra una lista de ordenes
              internas  del  shell.  Sin ninguna opcion mas, la lista consiste
              en todas las ordenes internas activas.  Si se  da  -n,  solo  se
              muestran  las  ordenes  desactivadas.   Si  se  da  -a, la lista
              impresa incluye todas las ordenes internas, con  una  indicacion
              en cada una de si esta activada o no.  Si se da -s, la salida se
              restringe a las ordenes internas especiales de POSIX.  El  valor
              de  retorno  es 0 a menos que un nombre no sea una orden interna
              del shell o que  haya  un  problema  cargando  una  nueva  orden
              incorporada desde un objeto compartido.

       eval [arg ...]
              Los args se leen y concatenan juntos para formar una sola orden.
              Entonces el 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 vacios, eval devuelve 0.

       exec [-cl] [-a nombre] [orden [argumentos]]
              Si se especifica orden, reemplaza al shell.  No se  crea  ningun
              proceso nuevo. Los argumentos se convierten en los argumentos de
              orden.  Si se da la opcion -l, el shell  pone  un  guion  en  el
              argumento  numero  cero  pasado  a  orden.   Esto es lo que hace
              login(1).  La opcion -c hace que orden se ejecute con un entorno
              vacio.  Si  se  da  -a  , el shell pasa nombre como el argumento
              numero cero de la orden ejecutada. Si orden no puede  ejecutarse
              por  alguna razon, un shell no interactivo se acaba, a menos que
              se haya activado la opcion del  shell  execfail,  en  cuyo  caso
              devuelve  `fallo'.   Un shell interactivo devuelve `fallo' si el
              fichero  no  puede  ejecutarse.   Si  orden  no  se  especifica,
              cualquier  redireccion  tiene  efecto en el shell en curso, y el
              estado devuelto es 0. Si hay un error de redireccion, el  estado
              de retorno es 1.

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

       export [-fn] [nombre[=palabra]] ...
       export -p
              Los  nombres suministrados se marcan para exportacion automatica
              al entorno de ordenes que se ejecuten de ahi en adelante. Si  la
              opcion -f se da, los nombres se referiran a funciones.  Si no se
              dan nombres, o si se da la opcion -p, se muestra  una  lista  de
              todos los nombres que estan exportados en este shell.  La opcion
              -n hace  que  la  propiedad  de  exportacion  se  quite  de  las
              variables  nombradas;  o sea, que se quiten del entorno.  export
              devuelve un estado de salida de 0 a menos que se  encuentre  una
              opcion  invalida,  uno de los nombres no sea un nombre valido de
              variable del shell, o que se de -f no siendo nombre una funcion.

       fc [-e editor] [-nlr] [primero] ['ultimo]
       fc -s [pat=rep] [ord]
              Corrige orden (Fix Command). En la primera forma, se  selecciona
              un  rango  de  ordenes desde primero hasta 'ultimo de la lista de
              historia.  Primero y 'ultimo pueden especificarse como una cadena
              de  caracteres  (para localizar la ultima orden que empezara con
              esa cadena) o como un numero (un indice en la lista de historia,
              donde  un  numero  negativo  se  emplea como un desplazamiento a
              partir del numero de orden actual). Si no se da 'ultimo, se  pone
              a  la  orden  en  curso  para un listado (de forma que fc -l -10
              muestra las 10 ultimas ordenes) o a primero en otro caso.  Si no
              se  especifica  primero,  se  pone  a  la  orden previa para una
              edicion y a -16 para un listado.

              La opcion -n suprime los numeros de  orden  en  un  listado.  La
              opcion  -r invierte el orden de los mandatos. Si se da la opcion
              -l , las ordenes se listan en la  salida  estandar.  Si  no,  se
              llama  al  editor dado por editor en un fichero conteniendo esas
              ordenes.  Si no se da editor, se emplea el valor de la  variable
              FCEDIT,  o  el valor de EDITOR si FCEDIT no esta definido. Si no
              esta definida ni una variable ni otra, vi es el  editor  que  se
              empleara.  Cuando  la  edicion  se  haya completado, las ordenes
              editadas se muestran y ejecutan.

              En la segunda forma, orden se re-ejecuta tras que cada instancia
              de  pat se reemplace por rep.  Un alias de utilidad para emplear
              con esto es ``r=fc -s'', de tal modo que al teclear ``r cc''  se
              ejecute la ultima orden que empezara con ``cc'' y que al teclear
              ``r'' se re-ejecute la ultima orden.

              Si se usa la primera forma, el valor de retorno es 0 a menos que
              se  encuentre  una  opcion  invalida  o  que  primero  o  'ultimo
              especifiquen  lineas  de  historia  fuera  de  rango.    Si   se
              suministra  la opcion -e, el valor de retorno es el de la ultima
              orden ejecutada, o `fallo' si ocurre un  error  con  el  fichero
              temporal de ordenes. Si se emplea la segunda forma, el estado de
              retorno  es  de  la  orden  reejecutada,  a  menos  que  ord  no
              especifique  una  linea  valida  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  esta  presente, se usa la nocion que
              tiene el 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  esta  desactivado  o,  cuando  se
              ejecuta  con  el  control  de trabajos activado, si espectrab no
              especifica un trabajo  valido  o  espectrab  se  refiere  a  una
              trabajo que se arranco sin control de trabajos.

       getopts cadenaopcs nombre [args]
              getopts  se  usa  en  procedimientos del shell para analizar los
              parametros posicionales.   cadenaopcs  contiene  las  letras  de
              opcion  que  se reconoceran; si a una letra le sigue un signo de
              dos puntos, se espera que la  opcion  tenga  un  argumento,  que
              deberia  estar separado de ella por espacio en blanco.  Cada vez
              que se llama, getopts pone la siguiente opcion  en  la  variable
              del shell nombre, inicializando nombre si no existe, y el indice
              del siguiente argumento a ser procesado en la  variable  OPTIND.
              OPTIND  se  inicializa  a  1 cada vez que se llama al shell o al
              guion del  shell.  Cuando  una  opcion  requiera  un  argumento,
              getopts  pone  ese argumento en la variable OPTARG.  El shell no
              pone a cero OPTIND  automaticamente;  debe  ser  puesto  a  cero
              manualmente  entre  llamadas  multiples  a  getopts dentro de la
              misma llamada al shell si hubiera que usar un nuevo conjunto  de
              parametros.

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

              getopts normalmente analiza los parametros posicionales, pero si
              se dan mas argumentos en args, getopts analiza  aquellos  en  su
              lugar.

              getopts  puede  informar de errores de dos maneras. Si el primer
              caracter de optstring es dos puntos, se  emplea  un  informe  de
              error  silencioso.   En  un modo normal de operacion se muestran
              mensajes de diagnosticos cuando se encuentran opciones invalidas
              o  faltan  argumentos  de  opciones  que  los  requieran.  Si la
              variable OPTERR se pone a 0, no se mostrara  ningun  mensaje  de
              error,  incluso  si  el  primer  caracter de optstring no es dos
              puntos.

              Si se ve una opcion invalida, 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  caracter  de
              opcion  encontrado  se  pone  en  OPTARG  y no se muestra ningun
              mensaje de diagnostico.

              Si no se encuentra un  argumento  necesario,  y  getopts  no  es
              silencioso,  se  pone un signo de cierre de interrogacion (?) en
              nombre, OPTARG se anula, y se muestra un mensaje de diagnostico.
              Si  getopts  es  silencioso,  entonces  se  pone un signo de dos
              puntos (:) en nombre y OPTARG toma  el  valor  del  caracter  de
              opcion encontrado.

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

       hash [-r] [-p nombre-fichero] [nombre]
              Para  cada  nombre,  se determina el nombre completo del fichero
              correspondiente buscando los directorios en $PATH y dicho nombre
              completo  se  registra.  Si se da la opcion -p no se busca en el
              PATH, y se emplea en su  lugar  nombre-fichero  como  el  nombre
              completo  de  fichero  para  la orden.  La opcion -r hace que el
              shell se olvide de todas las localizaciones registradas.  Si  no
              se  dan argumentos, se muestra informacion acerca de las ordenes
              recordadas. El estado de salida  es  `verdad'  a  menos  que  un
              nombre no se encuentre o se de una opcion invalida.

       help [patr'on]
              Muestra  informacion  de ayuda sobre las ordenes internas. Si se
              especifica patr'on, help  da  ayuda  detallada  sobre  todas  las
              ordenes  que concuerden con patr'on; si no, se muestra ayuda para
              todas las ordenes internas y estructuras de control  del  shell.
              El  estado  de  retorno es 0 a menos que ninguna orden concuerde
              con patr'on.

       history [-c] [n]
       history -anrw [nombre-fichero]
       history -p arg [arg ...]
       history -s arg [arg ...]
              Sin opciones, muestra  la  lista  de  historia  de  ordenes  con
              numeros  de  linea.  Las  lineas  marcadas  con  un  *  han sido
              modificadas. Un argumento de n lista  solamente  las  ultimas  n
              lineas.   Si  nombre-fichero se da, se emplea como el nombre del
              fichero de historia; si no, se usa el valor  de  HISTFILE.   Las
              opciones, si se dan, tienen los siguientes significados:
              -a     Anade las lineas de historia ``nuevas'' (las introducidas
                     desde el inicio de la sesion de bash en curso) al fichero
                     de historia.
              -n     Lee las lineas de historia que aun no han sido leidas del
                     fichero de historia y las mete en la  lista  de  historia
                     actual.  Estas  son  las  lineas  anadidas  al fichero de
                     historia desde el comienzo de la sesion de bash actual.
              -r     Lee los contenidos del fichero de historia y los usa como
                     la historia en curso.
              -w     Escribe  la  historia en curso en el fichero de historia,
                     sobreescribiendo sus contenidos.
              -c     Limpia la lista de historia borrando todas las entradas.
              -p     Realiza la sustitucion de historia de los siguientes args
                     y  muestra  el  resultado  en  la  salida  estandar.   No
                     almacena los resultados en el fichero de historia.   Cada
                     arg  debe  protegerse  para  deshabilitar la expansion de
                     historia normal.
              -s     Almacena los args en la lista de historia como  una  sola
                     entrada.  La  ultima  orden  en  la  lista de historia se
                     elimina antes de que se anadan los args.

              El valor de retorno es 0 a menos que  se  encuentre  una  opcion
              invalida  o  que ocurra un error mientras se lee o se escribe el
              fichero de historia.

       jobs [-lnprs] [ espectrab ... ]
       jobs -x orden [ args ... ]
              La primera forma lista los trabajos activos. Las opciones tienen
              los significados siguientes:
              -l     Lista PIDs ademas de la informacion normal.
              -p     Lista solamente el PID del lider del grupo de proceso del
                     trabajo.
              -n     Muestra informacion  solamente  sobre  trabajos  que  han
                     cambiado  de  estado desde que se notifico al usuario por
                     ultima vez de su estado.
              -r     Restringe la salida a los trabajos en ejecucion.
              -s     Restringe la salida a los trabajos parados.

              Si se da espectrab, la salida  se  restringe  a  la  informacion
              sobre  ese trabajo.  El estado de retorno es cero a menos que se
              encuentre una opcion  invalida  o  se  suministre  un  espectrab
              invalido.

              Si  se  da  la  opcion  -x,  jobs  reemplaza cualquier espectrab
              encontrado en orden o  args  con  el  ID  de  grupo  de  proceso
              correspondiente,  y ejecuta orden pasandole args, devolviendo su
              estado de salida.

       kill [-s nombre-se~nal | -n numse~nal | -nombre-se~nal] [pid |  espectrab]
       ...
       kill -l [nombre-se~nal | status_salida]
              Envia  la  senal  especificada por nombre-se~nal o numse~nal a los
              procesos nombrados por pid o espectrab.  nombre-se~nal es o  bien
              un  nombre  de senal como SIGKILL o un numero de senal; numse~nal
              es un numero de senal. Si nombre-se~nal es un  nombre  de  senal,
              este  puede  darse con o sin el prefijo SIG.  Si nombre-se~nal no
              esta presente, entonces se supone SIGTERM.  Un argumento  de  -l
              lista  los nombres de senales.  Si se suministran mas argumentos
              cuando  se  da  -l,  se  listan  los  nombres  de  las   senales
              correspondientes  a los argumentos, y el estado de retorno es 0.
              El argumento status_salida de -l es un numero que  especifica  o
              bien  un  numero  de  senal  o el estado de salida de un proceso
              terminado por una senal.  kill devuelve  ``verdad''  si  por  lo
              menos  se  envio  con exito una senal, o ``falso'' si ocurrio un
              error o se encontro una opcion invalida.

       let arg [arg ...]
              Cada arg  es  una  expresion  aritmetica  a  ser  evaluada  (vea
              EVALUACI'ON  ARITM'ETICA).   Si  el  ultimo arg se evalua a 0, let
              devuelve 1; si no, devuelve 0.

       local [nombre[=valor] ...]
              Para cada argumento, se crea una variable local llamada  nombre,
              y se le asigna el valor valor.  Cuando local se emplea dentro de
              una funcion, hace que la variable nombre tenga  una  visibilidad
              restringida  a  esa  funcion  y sus hijas.  Sin operandos, local
              escribe en  la  salida  estandar  una  lista  de  las  variables
              locales.  Es  un  error  emplear  local fuera de una funcion. El
              estado de retorno es 0 a menos que local se  use  fuera  de  una
              funcion, o se de un nombre invalido.

       logout Hace terminar un shell de entrada.

       popd [-n] [+n] [-n]
              Quita  entradas  de  la  pila  de  directorios.  Sin argumentos,
              desapila el directorio de la cima de la pila, y realiza un cd al
              nuevo directorio de la pila.  Los argumentos, si se suministran,
              tienen los siguientes significados:
              +n     Quita la n-sima entrada contando desde la izquierda de la
                     lista mostrada por dirs, empezando por cero. Por ejemplo:
                     ``popd +0'' quita el primer directorio,  ``popd  +1''  el
                     segundo.
              -n     Quita  la  n-sima entrada contando desde la derecha de la
                     lista mostrada por dirs, empezando por cero. Por ejemplo:
                     ``popd  -0''  quita  el ultimo directorio, ``popd -1'' el
                     penultimo.
              -n     Suprime  el  normal  cambio  de  directorio   cuando   se
                     desapilan  directorios, de forma que solamente la pila se
                     manipula.

              Si la orden popd es exitosa, tambien se realiza un  dirs,  y  el
              estado  de  retorno es 0.  popd devuelve `falso' si se encuentra
              una opcion invalida, la  pila  de  directorios  esta  vacia,  se
              especifica una entrada de la pila de directorios no existente, o
              falla el cambio de directorio.

       printf formato [argumentos]
              Escribe los argumentos formateados en la salida estandar bajo el
              control del formato.  El formato es una cadena de caracteres que
              contiene  tres  tipos  de  objetos:  caracteres  normales,   que
              simplemente  se  copian  en  la  salida  estandar, caracteres de
              secuencias de escape, que se convierten y copian  en  la  salida
              estandar,  y especificaciones de formato, cada una de las cuales
              causa la impresion  del  siguiente  argumento  sucesivo  de  una
              determinada  manera.  Ademas de los formatos estandares normales
              de printf(1), %b hace  que  printf  expanda  las  secuencias  de
              escape  de barras inversas en el correspondiente argumento, y %q
              causa  que  printf   muestre   en   la   salida   el   argumento
              correspondiente en un formato tal que pueda ser reutilizado como
              entrada para el shell.

              El formato se reutiliza tanto como sea necesario  para  consumir
              todos los argumentos.  Si el formato requiere mas argumentos que
              los que se suministran, las especificaciones de formato extra se
              comportan  como  si  se  hubiera dado un valor cero o una cadena
              vacia, segun lo apropiado.

       pushd [-n] [dir]
       pushd [-n] [+n] [-n]
              Anade 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,  intercambia  los  dos
              directorios  de  mas arriba y devuelve 0, a menos que la pila de
              directorios este vacia.   Los  argumentos,  si  se  suministran,
              tienen los siguientes significados:
              +n     Rota  la pila de forma que el n-simo directorio (contando
                     desde  la  izquierda  de  la  lista  mostrada  por  dirs,
                     empezando por cero) este 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) este en la cima.
              -n     Suprime  el  cambio normal de directorio cuando se anaden
                     directorios a la pila, de forma que solamente se manipula
                     la pila.
              dir    Anade dir a la pila de directorios en la cima, haciendolo
                     el nuevo directorio de trabajo.

              Si la orden pushd acaba con exito, se realiza un  dirs  tambien.
              Si  se  emplea  la  primera  forma, pushd devuelve 0 a menos que
              falle el cambio a dir.  Con la segunda forma, pushd devuelve 0 a
              menos  que la pila de directorios este vacia, que se especifique
              un elemento de la pila de  directorios  inexistente,  o  que  el
              cambio de directorio falle.

       pwd [-LP]
              Muestra  el nombre de fichero absoluto del directorio de trabajo
              en curso.  El nombre de fichero  mostrado  no  contiene  enlaces
              simbolicos  si  se  da  la  opcion -P o esta puesta la opcion -o
              physical de la orden interna set.  Si se usa la opcion  -L,  los
              enlaces simbolicos se siguen.  El estado de retorno es 0 a menos
              que ocurra un error mientras se lea  el  nombre  del  directorio
              actual o se de una opcion invalida.

       read [-er] [-a array] [-p prompt] [nombre ...]
              Se lee una linea desde la entrada estandar, y la primera palabra
              se asigna al  primer  nombre,  la  segunda  palabra  al  segundo
              nombre,  y  asi sucesivamente, con las palabras que sobren y sus
              separadores intervinientes asignadas al ultimo nombre.   Si  hay
              menos  palabras leidas de la entrada estandar que nombres, a los
              sobrantes  se  les  asignan  valores  vacios.   Se  emplean  los
              caracteres  en  IFS  para  dividir  la  linea  en palabras.  Las
              opciones, si se dan, tienen los siguientes significados:
              -r     Un par formado por una barra inclinada inversa y un salto
                     de  linea  a  continuacion  si  es tenido en cuenta, y la
                     barra inversa se considera parte de la linea.
              -p     Muestra prompt, sin un salto de linea al final, antes  de
                     intentar leer nada de la entrada. El indicador se muestra
                     solamente si la entrada viene de una terminal.
              -a     Las palabras se asignan secuencialmente a  los  elementos
                     de  la  variable vector array, empezando por 0.  Se anula
                     la posible previa definicion de array  antes  de  que  se
                     asignen  nuevos  valores.   Otros argumentos nombre no se
                     tienen en consideracion.
              -e     Si la entrada estandar viene de una terminal,  se  emplea
                     readline (vea READLINE arriba) para obtener la linea.

              Si  no  se  suministran  nombres,  la linea leida se asigna a la
              variable REPLY.  El codigo de retorno es cero, a  menos  que  se
              llegue al fin de la entrada.

       readonly [-apf] [nombre ...]
              Los  nombres  dados  se  marcan  como  de lectura exclusiva; los
              valores de estos nombres no  pueden  cambiarse  por  posteriores
              asignaciones.   Si  se  da  la  opcion  -f,  se  marcan  asi las
              funciones  correspondientes  a  los  nombres.   La   opcion   -a
              restringe  las  variables  a  vectores.   Si  no  se  da  ningun
              argumento nombre, o si se da la opcion -p, se muestra una  lista
              de  todos  los  nombres de lectura exclusiva.  La opcion -p hace
              que la salida se muestre en un formato que puede ser reutilizado
              como entrada. El estado de retorno es 0 a menos que se encuentre
              una opcion invalida, uno de los nombres no sea un nombre  valido
              de  variable  del  shell, o se de -f con un nombre que no es una
              funcion.

       return [n]
              Hace que una funcion acabe y devuelva el valor especificado  por
              n.   Si  n se omite, el estado devuelto es el de la ultima orden
              ejecutada en el cuerpo de la funcion. Si se emplea fuera de  una
              funcion,  pero  durante  la ejecucion de un guion por la orden .
              (source), hace que el shell pare la ejecucion  de  ese  guion  y
              devuelva  o n o el estado de salida de la ultima orden ejecutada
              dentro del guion como el estado  de  salida  del  guion.  Si  se
              emplea  fuera  de  una  funcion  y no durante la ejecucion de un
              guion por ., el estado de salida es `falso'.

       set [--abefhkmnptuvxBCHP] [-o opci'on] [arg ...]
              Sin opciones, se muestra el nombre y valor de cada variable  del
              shell  en un formato que puede ser reutilizado como entrada.  La
              salida se clasifica segun la localizacion en curso.   Cuando  se
              dan  opciones,  se  establecen  o  quitan  atributos  del shell.
              Cualesquier argumentos que  queden  tras  que  se  procesen  las
              opciones se tratan como valores para los parametros posicionales
              y se asignan, en orden, a $1, $2, ...  $n.  Las opciones, si  se
              especifican, tienen los siguientes significados:
              -a      Automaticamente  marca  variables,  que  se modifiquen o
                      creen,  para  exportacion  al  entorno  de  las  ordenes
                      subsiguientes.
              -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  esta
                      habilitado.
              -e      Sale  inmediatamente  si una orden simple (vea GRAM'ATICA
                      DEL SHELL arriba) acaba con un estado distinto de  cero.
                      El  shell  no acaba si la orden que falle es parte de un
                      bucle until o while, parte de una sentencia if, parte de
                      una  lista  && o ||, o si el valor devuelto por la orden
                      se invierte mediante !.
              -f      Deshabilita la expansion de nombres de caminos.
              -h      Recuerda la localizacion  de  ordenes  una  vez  que  se
                      buscan  para  la  1a  ejecucion. Esto esta habilitado de
                      forma predeterminada.
              -k      Todos  los  argumentos  en  forma   de   sentencias   de
                      asignacion  se  ponen  en  el entorno para una orden, no
                      solamente aquellos que precedan al nombre de la orden.
              -m      Modo de monitor.  Se habilita el  control  de  trabajos.
                      Esta  opcion  esta  puesta  de forma predeterminada para
                      shells interactivos en  sistemas  que  lo  admitan  (vea
                      CONTROL  DE  TRABAJOS  arriba).  Los procesos en segundo
                      plano se ejecutan en un grupo de proceso separado, y  se
                      imprime  cuando  se  completan  una linea conteniendo su
                      estado de salida.
              -n      Lee ordenes pero no las ejecuta.  Esto  puede  emplearse
                      para  comprobar  si  un guion del shell tiene errores de
                      sintaxis. Para shells interactivos esta opcion no  tiene
                      efecto.
              -o nombre-opci'on
                      El nombre-opci'on puede ser uno de los siguientes:
                      allexport
                              Lo miso que -a.
                      braceexpand
                              Lo miso que -B.
                      emacs   Emplea  una  interfaz  de  edicion  de lineas de
                              ordenes al estilo de emacs. Esto esta activo  de
                              forma   predeterminada   cuando   el   shell  es
                              interactivo, a menos que se haya  arrancado  con
                              la opcion --noediting.
                      errexit Lo mismo que -e.
                      hashall Lo mismo que -h.
                      histexpand
                              Lo mismo que -H.
                      history Habilita   la  historia  de  ordenes,  segun  se
                              describio arriba  bajo  HISTORIA.   Esta  opcion
                              esta    habilitada   por   omision   en   shells
                              interactivos.
                      ignoreeof
                              El efecto es como si  se  hubiera  ejecutado  la
                              orden  del shell IGNOREEOF=10 (vea Variables del
                              shell arriba).
                      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.
                      notify  Lo mismo que -b.
                      nounset Lo mismo que -u.
                      onecmd  Lo mismo que -t.
                      physical
                              Lo mismo que -P.
                      posix   Cambia  el  comportamiento  de  bash  donde   la
                              operacion  predeterminada  difiera  del estandar
                              POSIX 1003.2, de forma que se siga este.
                      privileged
                              Lo mismo que -p.
                      verbose Lo mismo que -v.
                      vi      Emplea una interfaz de edicion de  la  linea  de
                              ordenes al estilo de vi.
                      xtrace  Lo mismo que -x.
                      Si  se  da  -o sin ningun nombre-opci'on, se muestran los
                      valores de las opciones activas.  Si se da +o sin ningun
                      nombre-opci'on,  se  muestra  en  la  salida estandar una
                      serie de ordenes set para  recrear  las  opciones  segun
                      estan puestas o no actualmente.
              -p      Activa  el  modo privilegiado.  En este modo, el fichero
                      correspondiente a $ENV no es  procesado,  las  funciones
                      del  shell  no se heredan desde el entorno,y la variable
                      SHELLOPTS, si aparece en el  entorno,  no  se  tiene  en
                      consideracion.  Esta opcion se activa automaticamente en
                      el arranque si el identificador efectivo del usuario  (o
                      grupo)  no es igual al identificador real del usuario (o
                      grupo).    Desactivar   esta   opcion   hace   que   los
                      identificadores  efectivos  de usuario y grupo se pongan
                      con los valores de los identificadores reales de usuario
                      y grupo respectivamente.
              -t      Sale tras leer y ejecutar una sola orden.
              -u      Trata  las  variables  no definidas como un error cuando
                      realiza la expansion de parametros. Si la  expansion  se
                      intenta  hacer  sobre una variable no definida, el shell
                      muestra un mensaje de error y,  si  no  es  interactivo,
                      sale con un estado distinto de cero.
              -v      Repite en la salida las lineas de entrada del shell tras
                      leerlas.
              -x      Tras  expandir  cada  orden  simple,  muestra  el  valor
                      expandido  de PS4, seguido por la orden y sus argumentos
                      expandidos.
              -B      El shell realiza la expansion de llaves  (vea  Expansi'on
                      de   llaves   arriba).   Esto  esta  activado  de  forma
                      predeterminada.
              -C      Si  esta  activo,  bash  no  sobreescribe   un   fichero
                      existente  con  los  operadores de redireccion >, >&, ni
                      <>.  Esto puede cambiarse cuando se  crean  ficheros  de
                      salida mediante el empleo del operador >| en vez de >.
              -H      Permite  la  sustitucion  de  historia mediante !.  Esta
                      opcion esta activada por  omision  cuando  el  shell  es
                      interactivo.
              -P      Si  esta  activada, el shell no sigue enlaces simbolicos
                      cuando ejecuta ordenes como cd que cambian el directorio
                      de   trabajo.  En  su  lugar  emplea  la  estructura  de
                      directorio fisica. De forma predeterminada,  bash  sigue
                      la  cadena  logica de directorios cuando ejecuta ordenes
                      que cambian el directorio de trabajo.
              --      Si a esta opcion no sigue ningun argumento mas, entonces
                      los  parametros  posicionales  se  anulan.  Si  no,  los
                      parametros posicionales se ponen con los  valores  dados
                      por los args, incluso si alguno de ellos comienza con un
                      -.
              -       Senala el final de las opciones, haciendo que  el  resto
                      de  args  se  asignen a los parametros posicionales. Las
                      opciones -x y -v se desactivan.  Si no hay mas args, los
                      parametros posicionales permanecen sin cambios.

              Las  opciones estan desactivadas de forma predeterminada a menos
              que se diga otra cosa. Usar  +  en  vez  de  -  hace  que  estas
              opciones  se desactiven.  Las opciones tambien 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 opcion invalida.

       shift [n]
              Los parametros posicionales desde n+1 ... se renombran a $1  ...
              Los  parametros  representados  por  los  numeros desde $# hasta
              $#-n+1 se anulan.  n debe ser un  numero  no  negativo  menor  o
              igual  a $#.  Si n es 0, no se cambia ningun parametro.  Si n no
              se da, se supone 1.  Si  n  es  mayor  que  $#,  los  parametros
              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 ...]
              Cambia  los valores de variables que controlan un comportamiento
              determinado opcional del shell. Sin opciones, o  con  la  opcion
              -p,  se muestra una lista de todas las opciones disponibles, con
              una indicacion en cada una de si esta activa o no.  La opcion -p
              hace  que  la  salida  se  muestre  de  una  forma tal que pueda
              reutilizarse  como   entrada.    Otras   opciones   tienen   los
              significados siguientes:
              -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 esta activado o no.  Si  se
                     dan  varios  argumentos  nombreopc  con  -q, el estado de
                     salida es cero si todos los nombreopcs  estan  activados;
                     distinto de cero en otro caso.
              -o     Restringe  los  valores de nombreopc a aquellos definidos
                     para la opcion -o de la orden interna set.

              Si se emplean  -s  o  -u  sin  argumentos  nombreopc,  la  lista
              mostrada  se  limita  a  aquellas opciones que estan activadas o
              desactivadas, respectivamente.  A menos que se diga  otra  cosa,
              las   opciones   de  shopt  estan  inactivas  (unset)  de  forma
              predeterminada.

              El estado de retorno cuando se listan opciones es cero si  todos
              los  nombreopcs  estan  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 opcion del shell
              valida.

              La lista de las opciones de shopt es:

              cdable_vars
                      Si esta 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  esta  activa,  se  corregiran  pequenos  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 caracter  que  falte,  y  un
                      caracter  que sobre.  Si se encuentra una correccion, se
                      muestra el  nombre  de  fichero  corregido  y  la  orden
                      procede.    Esta   opcion   solo  se  emplea  en  shells
                      interactivos.
              checkhash
                      Si esta activa, bash comprueba que una orden  encontrada
                      en  la  tabla  de  dispersion  existe  antes de intentar
                      ejecutarlo. Si una orden en la tabla de dispersion ya no
                      existe, se realiza una busqueda normal en el PATH.
              checkwinsize
                      Si esta activa, bash comprueba el tamano de ventana tras
                      cada orden y, si es necesario, actualiza los valores  de
                      LINES y COLUMNS.
              cmdhist Si esta activa, bash intenta guardar todas las lineas de
                      una orden de  varias  lineas  en  la  misma  entrada  de
                      historia.  Esto  permite  una re-edicion facil de dichas
                      ordenes.
              dotglob Si esta activa, bash incluye los nombres de ficheros que
                      comiencen  con  un `.' en los resultados de la expansion
                      de nombres de caminos.
              execfail
                      Si esta activa, un shell no interactivo no acabara si no
                      puede ejecutar el fichero especificado como un argumento
                      de la orden interna exec.  Un shell interactivo no acaba
                      si exec falla.
              expand_aliases
                      Si  esta activa, los alias se expanden como se describio
                      arriba bajo ALIAS.  Esta opcion esta habilitada de forma
                      predeterminada para shells interactivos.
              extglob Si  esta  activa,  se  habilitan  las caracteristicas de
                      concordancia de patrones extendidas descritas mas arriba
                      en Expansi'on de nombres de camino.
              histappend
                      Si esta activa, la lista de historia se anade al fichero
                      nombrado segun el valor de la variable  HISTFILE  cuando
                      el shell acaba, en vez de sobreescribir el fichero.
              histreedit
                      Si  esta activa, y readline se esta utilizando, se le da
                      al usuario la oportunidad de re-editar la sustitucion de
                      historia fallida.
              histverify
                      Si  esta  activa,  y  readline  se  esta utilizando, los
                      resultados de la sustitucion de  historia  no  se  pasan
                      inmediatamente  al  analizador del shell. En vez de eso,
                      la linea resultante se carga en el bufer de  edicion  de
                      readline, permitiendo asi una modificacion posterior.
              hostcomplete
                      Si  esta  activa,  y  readline  se esta utilizando, bash
                      intentara terminar de escribir un nombre  de  computador
                      anfitrion  cuando  se  este  completando una palabra que
                      contenga una @ (vea Terminaci'on bajo  READLINE  arriba).
                      Esto esta activado de forma predeterminada.
              huponexit
                      Si  esta  activa,  bash enviara una senal SIGHUP a todos
                      los trabajos cuando  un  shell  de  entrada  interactivo
                      finalice.
              interactive_comments
                      Si  esta activa, permite a una palabra que empiece por #
                      hacer que esa palabra y todos los  caracteres  restantes
                      de  esa  linea  no  sean  tenidos  en cuenta en un shell
                      interactivo (vea COMENTARIOS arriba). Esta  opcion  esta
                      habilitada por omision.
              lithist Si esta activa, y la opcion cmdhist tambien lo esta, las
                      ordenes multi-linea se guardan en la historia con saltos
                      de  linea empotrados en vez de emplear como separador el
                      punto y coma, donde sea posible.
              mailwarn
                      Si esta activa, y a un fichero donde bash esta  buscando
                      correo  nuevo  se ha accedido desde la ultima vez que se
                      busco, se muestra el mensaje ``The mail in mailfile  has
                      been read'', o su equivalente en el idioma local, que en
                      espanol seria ``El correo en buz'on ha sido leido''.
              nocaseglob
                      Si esta activa, bash busca concordancias de  nombres  de
                      ficheros  sin  importar  mayusculas  o minusculas cuando
                      realice  la  expansion  de  nombres  de   caminos   (vea
                      Expansi'on de nombres de caminos arriba).
              nullglob
                      Si  esta  activa,  bash  permite que los patrones que no
                      concuerden con ningun fichero (vea Expansi'on de  nombres
                      de  caminos  arriba)  se expandan a una cadena vacia, en
                      vez de a si mismos.
              promptvars
                      Si esta activa, las cadenas de caracteres que sirven  de
                      indicadores  estan  sujetas  a  expansion  de variable y
                      parametro tras  ser  expandidas  como  se  describio  en
                      INDICADORES  arriba.   Esta  opcion esta activa de forma
                      predeterminada.
              shift_verbose
                      Si esta  activa,  la  orden  interna  shift  muestra  un
                      mensaje  de error cuando el numero de shift excede al de
                      parametros posicionales.
              sourcepath
                      Si esta activa, la orden interna source  (.)  emplea  el
                      valor  de PATH para buscar el directorio que contenga al
                      fichero suministrado como argumento.  Esta  opcion  esta
                      activa por omision.
       suspend [-f]
              Suspende  la  ejecucion de este shell hasta que reciba una senal
              SIGCONT.  La opcion -f dice que no hay que protestar si este  es
              un shell de entrada; simplemente suspenderlo de todas formas. El
              estado de retorno es 0 a menos que el shell sea de entrada y  la
              opcion  -f  no se haya dado, o si el control de trabajos no esta
              habilitado.
       test expr
       [ expr ]
              Devuelve un estado de 0 o 1 dependiendo de la evaluacion  de  la
              expresion  condicional  expr.  Cada operador y operando debe ser
              un argumento separado.   Las  expresiones  se  componen  de  las
              primarias descritas mas arriba bajo EXPRESIONES CONDICIONALES.

              Las  expresiones  se  pueden  combinar  mediante  los operadores
              siguientes, listados en orden decreciente de precedencia.
              ! 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 [ evaluan expresiones condicionales segun un conjunto de
              reglas basadas en el numero de argumentos.

              0 argumentos
                     La expresion es falsa.
              1 argumento
                     La expresion es verdad si y solo si el argumento no  esta
                     vacio.
              2 argumentos
                     Si  el primer argumento es !, la expresion es verdad si y
                     solo si el segundo  argumento  es  nulo.   Si  el  primer
                     argumento es uno de los operadores condicionales monarios
                     listados  arriba   en   EXPRESIONES   CONDICIONALES,   la
                     expresion  es verdad si el test monario es verdad.  Si el
                     primer argumento no es un  operador  condicional  monario
                     valido, la expresion es falsa.
              3 argumentos
                     Si   el  segundo  argumento  es  uno  de  los  operadores
                     condicionales binarios  listados  arriba  en  EXPRESIONES
                     CONDICIONALES,   el  resultado  de  la  expresion  es  el
                     resultado del test binario empleando el primer  y  tercer
                     argumentos  como operandos.  Si el primer argumento es !,
                     el valor es  la  negacion  del  test  de  dos  argumentos
                     empleando  el  segundo y tercer argumentos.  Si el primer
                     argumento es exactamente  (  y  el  tercer  argumento  es
                     exactamente  ),  el  resultado es el test de un argumento
                     del segundo argumento.  De otro  modo,  la  expresion  es
                     falsa.   Los  operadores  -a  y  -o  se  consideran  como
                     operadores binarios en este caso.
              4 argumentos
                     Si el primer argumento es !, el resultado es la  negacion
                     de  la  expresion  de  tres  argumentos compuesta por los
                     argumentos restantes.  De otra  forma,  la  expresion  se
                     analiza y evalua de acuerdo con la precedencia utilizando
                     las reglas listadas arriba.
              5 o mas argumentos
                     La expresion se  analiza  y  evalua  de  acuerdo  con  la
                     precedencia usando las reglas mencionadas arriba.

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

       trap [-lp] [arg] [nombre-se~nal ...]
              La  orden  arg  va  a leerse y ejecutarse cuando el shell reciba
              la(s) senal(es) especificada(s) por nombre-se~nal.  Si  arg  esta
              ausente  o es -, todas las senales especificadas se reestablecen
              a sus valores originales (los que tenian cuando se entro  en  el
              shell).   Si  arg  es la cadena vacia, la senal especificada por
              cada nombre-se~nal no se tiene en cuenta por parte del shell y de
              las  ordenes  que  se llamen desde el.  Si arg es -p entonces se
              muestran las ordenes de las trampas asociadas con  cada  nombre-
              se~nal.   Si  no  se  pasan  argumentos  o si solo se da -p, trap
              muestra la lista de ordenes asociadas con cada numero de  senal.
              Cada  nombre-se~nal es o bien un nombre de senal de los definidos
              en <signal.h>, o un numero de senal.  Si un nombre-se~nal es EXIT
              (0),  la  orden  arg  se ejecuta cuando se sale del shell. Si un
              nombre-se~nal es DEBUG, la orden arg se ejecuta tras  cada  orden
              simple  (vea GRAM'ATICA DEL SHELL arriba).  La opcion -l hace que
              el shell muestre una lista de nombres de  senal  y  sus  numeros
              correspondientes.   Las  senales  que  no se tienen en cuenta ya
              cuando  se  entra  en  el  shell  no  pueden  ser  atrapadas  ni
              restablecidas.   Las  senales  atrapadas  se  reestablecen a sus
              valores originales en un proceso hijo cuando se crea.  El estado
              de retorno es `falso' si cualquier nombre-se~nal no es valido; de
              otro modo, trap devuelve `verdad'.

       type [-atp] nombre [nombre ...]
              Sin opciones, indica como sera interpretado cada  nombre  si  se
              usa  como  un  nombre de orden.  Si se emplea la opcion -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  del  shell,  una  funcion,  una
              orden  interna  incorporada en el shell, o un fichero 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
              opcion -p, type devuelve o bien el nombre del fichero  de  disco
              que  se  ejecutaria  si se especificara nombre como un nombre de
              orden, o bien nada si type -t nombre no devolviera file.  Si una
              orden  esta  en  la  tabla de dispersion, -p muestra el valor de
              dicha tabla, no necesariamente el fichero que  aparezca  primero
              en  PATH.   Si  se  emplea  la opcion -a, type muestra todos los
              sitios que contengan un ejecutable llamado nombre.  Esto incluye
              alias  y  funciones,  si  y  solo si la opcion -p no se ha usado
              tambien.  La tabla de dispersion de las ordenes no  se  consulta
              cuando  se  emplea  -a.  type devuelve `verdad' si cualquiera de
              los argumentos se encuentra, `falso' si no se encuentra ninguno.

       ulimit [-SHacdflmnpstuv [l'imite]]
              Proporciona control sobre los recursos disponibles para el shell
              y  para los procesos arrancados por el, en sistemas que permitan
              tal control (Linux por ejemplo, y por  supuesto).  El  valor  de
              l'imite  puede  ser  un  numero en la unidad especificada para el
              recurso, o el valor unlimited, o sea, ilimitado.   Las  opciones
              -H  y -S especifican que el limite para el recurso dado va a ser
              duro o blando.  Un  limite  duro  es  aquel  que  no  puede  ser
              aumentado  una  vez puesto; un limite blando puede incrementarse
              hasta el valor dado por el limite duro. Si no se especifican  ni
              -H  ni  -S, se establecen ambos limites.  Si l'imite se omite, se
              muestran los valores del limite blando del recurso, a menos  que
              se  de  la opcion -H. Cuando se especifica mas de un recurso, se
              imprime el nombre del limite y la unidad antes del valor.  Otras
              opciones se interpretan como sigue:
              -a     Se informa de todos los limites actuales
              -c     El  tamano  maximo  de  ficheros  de  volcados de memoria
                     (core)
              -d     El tamano maximo del segmento de datos de un proceso
              -f     El tamano maximo de ficheros creados por el shell
              -l     El tamano maximo que puede ser bloqueado en memoria
              -m     El tamano del maximo conjunto residente (memoria)
              -n     EL numero maximo de descriptores de ficheros abiertos (la
                     mayoria de sistemas no permiten establecer este valor)
              -p     El  tamano de una tuberia en bloques de 512 B (esto puede
                     no estar establecido)
              -s     El tamano maximo de pila
              -t     La maxima cantidad de tiempo de CPU en segundos
              -u     El numero maximo de procesos  disponibles  para  un  solo
                     usuario
              -v     La  maxima cantidad de memoria virtual disponible para el
                     shell

              Si se da l'imite, es el nuevo valor del recurso especificado  (la
              opcion  -a  es  solo  para  mostrar  los  valores).  Si no se da
              ninguna opcion, entonces se supone -f.   Los  valores  estan  en
              incrementos  de  1024  B, excepto para -t, que esta en segundos,
              -p, que esta en unidades de bloques de 512 B, y -n y -u, que son
              valores adimensionales. El estado de retorno es 0 a menos que se
              encuentre una opcion invalida, se de como l'imite un argumento no
              numerico  distinto de unlimited, o bien ocurra un error mientras
              se establece un nuevo limite.

       umask [-p] [-S] [modo]
              La mascara de creacion de ficheros del usuario  se  establece  a
              modo.   Si  modo  empieza  con  un digito, se interpreta como un
              numero octal; si  no,  se  interpreta  como  un  modo  simbolico
              similar  al aceptado por chmod(1).  Si modo se omite, o si se da
              la opcion -S, se muestra el valor  actual  de  la  mascara.   La
              opcion  -S hace que la mascara se imprima en forma simbolica; la
              salida predeterminada es como un numero  octal.   Si  se  da  la
              opcion  -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  cambio  exitosamente  o  si  no  se dio el argumento modo, y
              `falso' en otra circunstancia.

       unalias [-a] [nombre ...]
              Quita nombres de la lista de alias definidos. Si se da la opcion
              -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] [nombre ...]
              Para  cada  nombre, borra la variable o funcion correspondiente.
              Si no se dan opciones, o se da la  opcion  -v,  cada  nombre  se
              refiere  a  una  variable  del  shell.  Las variables de lectura
              exclusiva no pueden borrarse.  Si se especifica -f, cada  nombre
              se  refiere a una funcion del shell, y se borra la definicion de
              la funcion.  Cada variable o funcion se quita del entorno pasado
              a  ordenes  subsiguientes.   Si  se  quita cualquiera de RANDOM,
              SECONDS,  LINENO,  HISTCMD,  o  DIRSTACK,  pierde  su  propiedad
              especial,  incluso  aunque  mas adelante se vuelva a definir. El
              estado de salida es `verdad' a menos que nombre no exista o  sea
              de lectura exclusiva.

       wait [n]
              Espera   al   proceso  especificado  y  devuelve  su  estado  de
              terminacion.  n puede ser un identificador de  proceso  (PID)  o
              una  especificacion  de trabajo; si se da una espec. de trabajo,
              se espera a todos los procesos en la tuberia de ese trabajo.  Si
              n  no  se  da,  se  espera  a  todos  los procesos hijos activos
              actualmente, y el estado de retorno es cero. Si n especifica  un
              proceso  o trabajo no existente, el estado de retorno es 127. De
              otro modo, el estado de retorno  es  el  estado  de  salida  del
              ultimo proceso o trabajo al que se espero.

SHELL RESTRINGIDA

       Si  bash  se  arranca  con  el nombre rbash, o se da la opcion -r en la
       llamada, el shell se convierte en restringido.  Un shell restringido se
       emplea  para  establecer un ambiente mas controlado que el que el shell
       estandar proporciona.  Se comporta de forma  identica  a  bash  con  la
       excepcion de que lo siguiente no esta permitido o no se realiza:

       o      cambiar de directorio con cd

       o      establecer o anular los valores de SHELL o de PATH

       o      especificar nombres de ordenes que contengan /

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

       o      importar definiciones de funciones desde el entorno del shell en
              el arranque

       o      analizar  el valor de SHELLOPTS desde el entorno del shell en el
              arranque

       o      redirigir la salida usando los operadores de redireccion >,  >|,
              <>, >&, &>, y >>

       o      utilizar la orden interna exec para reemplazar el shell por otro
              programa

       o      anadir o eliminar ordenes incorporadas con las opciones -f o  -d
              de la orden interna enable.

       o      dar la opcion -p a la orden interna command.

       o      desactivar el modo restringido con set +r o set +o restricted.

       Estas restricciones entran en vigor despues de que se lean los ficheros
       de arranque que hubiera.

       Cuando se ejecuta una orden que resulta ser un  guion  del  shell  (vea
       EJECUCI'ON  DE  'ORDENES arriba), rbash desactiva todas las restricciones
       en el shell lanzado para ejecutar el guion.

V'EASE TAMBI'EN

       Bash Features (Caracteristicas de Bash), Brian Fox & Chet Ramey
       The Gnu Readline Library (La Biblioteca Readline de GNU), Brian  Fox  &
       Chet Ramey
       The Gnu History Library (La Biblioteca de Historia de GNU), Brian Fox &
       Chet Ramey
       Portable Operating System Interface (POSIX) Part 2: Shell and Utilities
       (Interfaz  para  Sistemas  Operativos  Transportables  (POSIX) Parte 2:
       Shell y Utilidades), IEEE
       zsh(1), ash(1), sh(1), ksh(1), csh(1), tcsh(1).
       emacs(1), vi(1)
       readline(3)

FICHEROS

       /bin/bash
              La imagen ejecutable de bash
       /etc/profile
              El fichero de inicio general, leido en shells de entrada
       ~/.bash_profile
              El fichero de inicio personal, leido para shells de entrada
       ~/.bashrc
              El fichero individual de arranque para shells interactivos
       ~/.inputrc
              El fichero de inicio individual de readline

AUTORES

       Brian Fox, Free Software Foundation
       bfox@gnu.ai.MIT.Edu

       Chet Ramey, Case Western Reserve University
       chet@ins.CWRU.Edu

       Traduccion al espanol: Gerardo  Aburruzaga  Garcia,  para  el  proyecto
       PAMELI.
       Gerardo@CICA.es

INFORMES DE FALLOS

       Si  Ud.  encuentra  un  fallo  en  bash, deberia informar de ello. Pero
       primero deberia asegurarse de que realmente  es  un  fallo,  y  de  que
       aparece en la ultima version de bash que tenga.

       Una  vez  que Ud. ha determinado que realmente existe un fallo, utilice
       la orden bashbug para enviar el informe  correspondiente.   Si  Ud.  ha
       encontrado  como  corregirlo,  ise  le anima a que nos mande tambien la
       correccion!  Las sugerencias y los informes de fallos `filosoficos'  se
       pueden  enviar  por  correo  electronico 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 numero de version de bash
       El tipo de computador (hardware) y el sistema operativo
       El compilador que se empleo para compilarlo
       Una descripcion del comportamiento del fallo
       Un corto guion o `receta' para reproducir el fallo

       bashbug  inserta  automaticamente  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 pagina de
       manual deben dirigirse a chet@ins.CWRU.Edu.

       Los relativos  a  la  traduccion  de  esta  pagina  deben  dirigirse  a
       gerardo@cica.es  o discutirse en el marco del proyecto PAMELI; contacte
       con nosotros en http://elcano.dif.um.es/~piernas/manpages-es.

FALLOS

       Es demasiado grande y demasiado lento.

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

       Los alias son confusos en algunos casos.

       Las   ordenes   internas   del   shell   y   las   funciones   no   son
       interrumpibles/rearrancables.

       Las ordenes compuestas y las secuencias de ordenes de la forma `a ; b ;
       c'  no  se manejan de forma muy elegante cuando se intenta suspender el
       proceso. Cuando un proceso es parado, el shell  ejecuta  inmediatamente
       la  siguiente  orden de la secuencia.  Para remediar esto es suficiente
       poner la secuencia de ordenes  entre  parentesis;  asi  la  forzamos  a
       ejecutarse en un subshell, que puede pararse como una unidad.

       Las  ordenes  dentro  de  una sustitucion de orden de tipo $(...) no se
       analizan hasta que se intenta la sustitucion. Esto provocara un retraso
       en  la  aparicion  de  mensajes  posibles  de  error hasta algun tiempo
       despues de que se introduzca la orden.

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