Available in

(1) (1)/es (1)/fr (1)/it (1)/ja (1)/ko (1)/nl (1)/pl (1)/zh_CN (1)/zh_TW

TOC

BASH(1)                                                                BASH(1)



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.

DESCRIPCIN

       Bash es un intrprete de un lenguaje de rdenes  compatible  con  sh  que
       ejecuta rdenes ledas desde la entrada estndar o desde un fichero.  Bash
       tambin incorpora caractersticas tiles tomadas de los shells de Korn y C
       (ksh y csh).

       Bash  est pensado con la intencin de ser una implementacin conforme con
       la especificacin POSIX de Shell y Herramientas, de la  IEEE  (Grupo  de
       Trabajo 1003.2 de la IEEE).

OPCIONES

       Adems  de las opciones de un solo carcter documentadas en la descripcin
       de la orden interna set, bash interpreta las siguientes opciones cuando
       es llamado:

       -c cadena Si  la  opcin -c est presente, entonces las rdenes se leen de
                 cadena.  Si hay argumentos tras la cadena, se asignan  a  los
                 parmetros posicionales, empezando por $0.
       -r        Si  la  opcin  -r  est  presente, entonces el shell se vuelve
                 restringido (vea SHELL RESTRINGIDO ms abajo).
       -i        Si la opcin -i est presente, el shell es interactivo.
       -s        Si la opcin -s est presente, o si no quedan  argumentos  tras
                 el  procesado  de  las  opciones, entonces las rdenes se leen
                 desde la entrada estndar.  Esta  opcin  permite  definir  los
                 parmetros  posicionales  cuando  se llama a un shell interac-
                 tivo.
       -D        Se muestra en la salida estndar una lista de cadenas de  car-
                 acteres  entrecomilladas precedidas por $.  Estas cadenas son
                 las que estn sujetas a traduccin  cuando  la  localizacin  en
                 curso  no es C ni POSIX.  Esta opcin implica tambin la -n; no
                 se ejecuta ninguna orden.
       --        Un -- seala el fin de las  opciones  e  inhabilita  cualquier
                 posterior  procesado de opciones. Cualesquier argumentos tras
                 -- se tratan como nombres de fichero y argumentos.  Un  argu-
                 mento - es equivalente a --.

       Bash  tambin  interpreta una variedad de opciones multi-carcter.  Estas
       opciones deben aparecer en la lnea de rdenes antes de las  opciones  de
       un solo carcter 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  estndar  y
              acaba con xito.
       --login
              Hace  que  bash acte como si se le hubiera llamado como un shell
              de entrada (vea LLAMADA ms abajo).
       --noediting
              No utiliza la biblioteca de GNU  readline  para  leer  lneas  de
              rdenes 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  omisin,  bash  lee  estos
              ficheros cuando se le llama como un shell de entrada  (vea  LLA-
              MADA ms adelante).
       --norc No  lee ni ejecuta el fichero de inicio personal ~/.bashrc si el
              shell es interactivo.  Esta opcin est activa de forma  predeter-
              minada si el shell se llama como sh.
       --posix
              Cambia  el  comportamiento  de  bash  donde  la  operacin normal
              difiera del estndar POSIX 1003.2, de  forma  que  concuerde  con
              ste.
       --rcfile fichero
              Ejecuta  rdenes desde fichero en vez de desde el fichero de ini-
              cio personal estndar ~/.bashrc si el shell es  interactivo  (vea
              LLAMADA ms abajo).
       --restricted
              El shell se vuelve restringido (vea SHELL RESTRINGIDO ms abajo).
       --verbose
              Equivale a  -v.
       --version
              Muestra informacin en la salida estndar sobre la versin de  esta
              instanciacin de bash y acaba con xito.

ARGUMENTOS

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

LLAMADA

       Un shell de entrada es aqul cuyo primer carcter del argumento  cero  es
       un -, o uno que ha sido llamado con la opcin --login.

       Un shell interactivo es uno cuya entrada y salida estndares estn conec-
       tadas a terminales (segn determina isatty(3)), o uno que ha  sido  lla-
       mado con la opcin -i.  Se define PS1 y $- incluye i si bash es interac-
       tivo, permitiendo as a un guin del shell o a un fichero de arranque  el
       comprobar este estado.

       Los  siguientes  prrafos  describen  cmo  bash  ejecuta sus ficheros de
       arranque.  Si cualquiera de los ficheros existe pero no  puede  leerse,
       bash  informa de un error.  Las tildes de la  se expanden en nombres de
       ficheros como se describe ms abajo en Expansin de la tilde en la seccin
       EXPANSIN.

       Cuando  bash se llama como un shell de entrada interactivo, primero lee
       y ejecuta rdenes 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 rdenes del primero de ellos que exista  y
       se pueda leer.  La opcin --noprofile puede emplearse cuando se llame al
       shell para inhibir este comportamiento.

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

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

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

       Si  bash se llama con el nombre sh, intenta imitar el comportamiento de
       arranque de versiones histricas de sh tanto como sea posible, pero  sin
       salirse  del  estndar POSIX.  Cuando se llama como un shell interactivo
       de entrada, primero intenta leer y ejecutar rdenes desde /etc/profile y
       ~/.profile,  en  ese  orden.  La opcin --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 est
       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 eje-
       cutar rdenes  desde  cualquier  otro  fichero  de  arranque,  la  opcin
       --rcfile  no tiene efecto.  Un shell no interactivo llamado con el nom-
       bre sh no intenta leer ningn fichero de arranque.  Cuando se llama como
       sh, bash entra en modo posix despus de leer los ficheros de arranque.

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

       Bash intenta determinar cundo est siendo  llamado  por  el  demonio  de
       shell remoto, usualmente rshd.  Si bash determina que est siendo ejecu-
       tado por rshd, lee y ejecuta rdenes desde  ~/.bashrc,  si  tal  fichero
       existe  y  se  puede leer.  Esto no lo har si se le llama con el nombre
       sh.  La opcin --norc puede emplearse para inhibir este  comportamiento,
       y  la  opcin  --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 travs del resto de este docu-
       mento.
       blanco Un espacio en blanco o tabulacin (tab).
       palabra
              Una secuencia de caracteres considerados por el shell  como  una
              sola unidad.  Tambin se conoce como un lexema (token).
       nombre Una  palabra que consiste solamente en caracteres alfanumricos y
              subrayados, y comienza con un carcter alfabtico o un  subrayado.
              Tambin se llama identificador.
       metacarcter
              Un  carcter  que, cuando no est entrecomillado, separa palabras.
              Uno de los siguientes:
              |  & ; ( ) < > espacio tab
       operador de control
              Un lexema que realiza una funcin de control. Es uno de los sigu-
              ientes smbolos:
              || & && ; ;; ( ) | <nueva-lnea>

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 GRAMTICA DEL SHELL ms 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 [[ ]]

GRAMTICA DEL SHELL

   rdenes simples
       Una orden simple es una secuencia de asignaciones opcionales  de  vari-
       ables  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, 128+n  si
       la orden ha terminado debido a la seal n.

   Tuberas
       Una tubera es una secuencia de una o ms rdenes separadas por el carcter
       |.  El formato de una tubera es:

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

       La salida estndar de orden se conecta a la entrada estndar  de  orden2.
       Esta conexin se realiza antes que cualquier redireccin especificada por
       la orden (vea REDIRECCIN ms abajo).

       Si la palabra reservada !  precede una tubera, el estado de  salida  de
       sta es el NO lgico del de la ltima orden. De otro modo, el estado de la
       tubera es el de salida de la ltima orden.  El shell  espera  que  todas
       las rdenes de la tubera terminen antes de devolver un valor.

       Si  la palabra reservada time precede una tubera, se informa del tiempo
       transcurrido, as como del de usuario y sistema, consumido  en  la  eje-
       cucin  de la tubera, cuando sta termina.  La opcin -p cambia el formato
       de salida al especificado por  POSIX.   La  variable  TIMEFORMAT  puede
       definirse  como una cadena de caracteres de formato que especifique cmo
       la informacin de tiempos debera mostrarse; vea la descripcin  de  TIME-
       FORMAT bajo Variables del Shell ms abajo.

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

   Listas
       Una lista es una secuencia de una o ms tuberas separadas por uno de los
       operadores ;, &, &&, o ||, y terminada opcionalmente por uno de ;, &, o
       <nueva-lnea>.

       De estos operadores de listas, && y || tienen igual precedencia, segui-
       dos 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 rdenes separadas por
       un ; se ejecutan secuencialmente; el shell espera que cada  orden  ter-
       mine,  por orden. El estado devuelto es el estado de salida de la ltima
       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 slo si orden devuelve un estado de salida 0.

       Una lista O tiene la forma

              orden || orden2


       orden2  se  ejecuta si y slo si orden devuelve un estado de salida dis-
       tinto de cero. El estado de salida de las listas Y y  O  es  el  de  la
       ltima orden ejecutada en la lista.

   rdenes compuestas
       Una orden compuesta es una de las siguientes:

       (lista)
              lista  se ejecuta en un subshell. Despus de que la orden se com-
              pleta, las asignaciones a variables y rdenes internas que  afec-
              taran 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 lnea o un punto y coma.
              Esto se conoce como una orden de grupo.  El estado de retorno es
              el de salida de lista.

       ((expresin))
              La  expresin  se  evala  de acuerdo a las reglas descritas abajo
              bajo la seccin EVALUACIN ARITMTICA.  Si el valor de la  expresin
              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
              "expresin".

       [[ expresin ]]
              Devuelve  un  estado  de  0  1 dependiendo de la evaluacin de la
              expresin condicional expresin.  Las expresiones se  componen  de
              las primarias descritas adelante bajo EXPRESIONES CONDICIONALES.
              No tienen lugar divisin de palabras ni expansin  de  nombres  de
              camino  en  las  palabras  entre el [[ y el ]]; s se realizan la
              expansin de tilde, expansin de parmetros y  variables,  expansin
              aritmtica,  sustitucin  de orden, sustitucin de proceso y elimi-
              nacin de comillas.

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

              Las expresiones pueden combinarse mediante los siguientes  oper-
              adores, listados en orden decreciente de precedencia:

              ( expresin )
                     Devuelve el valor de expresin.  Esto puede emplearse para
                     cambiar la precedencia normal de los operadores.
              ! expresin
                     Verdad si expresin es falsa.
              expresin1 && expresin2
                     Verdad si ambas expresin1 y expresin2 son verdaderas.
              expresin1 || expresin2
                     Verdad si una al menos de expresin1 o expresin2  es  ver-
                     dad.

       Los  operadores  && y || no ejecutan expresin2 si el valor de expresin1
       es suficiente para determinar el valor de retorno de la expresin condi-
       cional entera.

       for nombre [ in palabra; ] do lista ; done
              La  lista  de  palabras que va detrs de in se expande, generando
              una lista de elementos. La variable nombre se define  como  cada
              elemento  de  la lista en cada iteracin, y lista se ejecuta cada
              vez. Si la palabra de in se omite, la orden  for  ejecuta  lista
              una  vez  para  cada  parmetro  posicional que est definido (vea
              PARMETROS ms abajo).  El estado de retorno es el de salida de la
              ltima  orden  que  se  ejecuta.  Si la expansin de los elementos
              despus del in resulta en una lista vaca, 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  mues-
              tra  en  la salida estndar de errores, cada una precedida por un
              nmero. Si la palabra del in se omite, se muestran los  parmetros
              posicionales  (vea  PARMETROS ms abajo).  Entonces se muestra el
              indicador PS3 y se lee una lnea desde la entrada estndar.  Si la
              lnea  consiste en un nmero correspondiente a una de las palabras
              mostradas, entonces el valor de nombre se pone a esa palabra. Si
              la  lnea  est  vaca,  las palabras y el indicador se muestran de
              nuevo. Si se lee EOF, la orden se completa. Cualquier otro valor
              leda  hace  que nombre se ponga a un valor vaco. La lnea leda se
              guarda en la variable REPLY.  La  lista  se  ejecuta  tras  cada
              seleccin  hasta  que  se  ejecute  una orden break o return.  El
              estado de salida de select es el de la ltima orden ejecutada  en
              lista, o cero si no se ha ejecutado ninguna orden.

       case palabra in [ ( patrn [ | patrn ] ... ) lista ;; ] ... esac
              Una  orden  case expande primero palabra, e intenta hacerla con-
              cordar contra cada patrn por turnos, empleando las mismas reglas
              de  concordancia que para la expansin de nombres de caminos (vea
              Expansin de nombre de camino ms abajo).  Cuando se encuentre una
              concordancia,  se  ejecuta  la  lista  correspondiente.  Tras la
              primera concordancia, no se intentan ms. El estado de salida  es
              cero  si no concuerda ningn patrn. De otro modo, es el estado de
              salida de la ltima orden ejecutada en lista.

       if lista; then lista; [ elif lista; then lista; ] ... [ else  lista;  ]
       fi
              La lista if se ejecuta. Si su estado de salida es cero, se  eje-
              cuta  la  lista  then.  De  otro modo, se ejecuta por turno cada
              lista elif, y si su estado de salida  es  cero,  se  ejecuta  la
              lista  then  correspondiente  y  la orden se completa. Si no, se
              ejecuta la lista then si est presente. El estado de salida es el
              de la ltima orden ejecutada, o cero si ninguna condicin fue ver-
              dadera.

       while lista; do lista; done
       until lista; do lista; done
              La orden while ejecuta continuamente la lista do siempre que  la
              ltima orden de lista devuelva un estado de salida cero. La orden
              until es idntica a la while, excepto en que la comprobacin es al
              revs;  la  lista  do  se  ejecuta mientras que la ltima orden en
              lista devuelva un estado de salida distinto de cero.  El  estado
              de salida de las rdenes while y until es el de la ltima orden de
              la lista do ejecutada, o cero si no se ejecut ninguna orden.

       [ function ] nombre () { lista; }
              Esto define una funcin llamada nombre. El cuerpo de la funcin es
              la  lista de rdenes 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 funcin es el de la ltima orden ejecutada
              en el cuerpo. (Vea FUNCIONES ms abajo.)

COMENTARIOS

       En un shell no interactivo, o en uno interactivo en  el  que  la  opcin
       interactive_comments  de  la orden interna shopt est activa (vea RDENES
       INCORPORADAS DEL SHELL ms abajo), una palabra que empiece  por  #  hace
       que  esa  palabra y todos los caracteres que queden en esa lnea no sean
       tenidos en cuenta. Un shell interactivo sin la  opcin  interactive_com-
       ments  habilitada, no admite comentarios. La opcin interactive_comments
       est 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 expansin de
       parmetros.

       Cada uno de los metacaracteres listados a continuacin bajo  el  epgrafe
       DEFINICIONES  tiene  un  significado especial para el shell y deben ser
       protegidos o entrecomillados si quieren representarse a s mismos. Hay 3
       mecanismos  de  proteccin:  el  carcter  de escape, comillas simples, y
       comillas dobles.

       Una barra inclinada inversa no entrecomillada  (\)  es  el  carcter  de
       escape.   Preserva  el valor literal del siguiente carcter que lo acom-
       paa, con la excepcin de <nueva-lnea>.  Si aparece un par  \<nueva-lnea>
       y la barra invertida no est ella misma entre comillas, el \<nueva-lnea>
       se trata como una continuacin de linea (esto es, se quita del flujo  de
       entrada y no se tiene efectivamente en cuenta).

       Encerrar  caracteres  entre apstrofos preserva el valor literal de cada
       carcter 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 excepcin  de  $,
       `,  y  \.   Los  caracteres $ y ` mantienen sus significados especiales
       dentro de comillas dobles. La barra invertida mantiene  su  significado
       especial  solamente cuando est seguida por uno de los siguientes carac-
       teres: $, `, "", \, o <nueva-lnea>.  Una comilla doble puede ser entre-
       comillada  entre otras comillas dobles precedindola de una barra inver-
       tida.

       Los parmetros especiales * y @ tienen un  significado  especial  cuando
       estn entre comillas dobles (vea PARMETROS ms abajo).

       Las palabras de la forma $'cadena' se tratan de forma especial. La pal-
       abra se expanda a cadena,  con  los  caracteres  protegidos  par  barra
       invertida  reemplazados  segn  especifica el estndar ANSI/ISO de C. Las
       secuencias de escape con barra invertida, si estn presentes, se descod-
       ifican como sigue:
              \a     alerta (campana)
              \b     espacio-atrs
              \e     un carcter de escape (ESC)
              \f     nueva pgina
              \n     nueva linea
              \r     retorno de carro
              \t     tabulacin horizontal
              \v     tabulacin vertical
              \\     barra invertida
              \nnn   el  carcter  cuyo  cdigo  es el valor octal nnn (de uno a
                     tres dgitos)
              \xnnn  el carcter cuyo cdigo es el valor hexadecimal nnn

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

       Una cadena entre comillas dobles precedida por un signo de dlar ($) har
       que la cadena se traduzca segn la localizacin en curso. Si sta es  C  o
       POSIX, el signo de dlar no se tiene en cuenta.  Si la cadena se traduce
       y reemplaza, el reemplazo se entrecomilla con comillas dobles.

PARMETROS

       Un parmetro es una entidad que almacena valores.  Puede ser un  nombre,
       un  nmero,  o  uno  de los caracteres especiales listados a continuacin
       bajo el epgrafe Parmetros especiales.  En lo que se refiere  al  shell,
       una variable es un parmetro identificado por un nombre.

       Un  parmetro est definido si se le ha asignado un valor. La cadena vaca
       es un valor vlido. Una vez que una variable  est  definida,  slo  puede
       quitarse  de la lista de variables mediante la orden interna unset (vea
       RDENES INTERNAS DEL SHELL ms 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 vaca. Todos los
       valores estn sujetos a expansin de tilde, de parmetros y variables,  de
       cadena,  de orden, aritmtica, y eliminacin de comillas (vea EXPANSIN ms
       abajo).  Si la variable tiene activado su atributo integer (vea declare
       ms  abajo  en  RDENES  INTERNAS  DEL SHELL) entonces valor est sujeto a
       expansin aritmtica incluso si no se emplea la  expansin  $((...))  (vea
       Expansin aritmtica ms adelante).  No se realiza la divisin de palabras,
       con la excepcin de "$@" como se explica ms  adelante  bajo  el  epgrafe
       Parmetros especiales.  La expansin de nombres de camino no se efecta.

   Parmetros posicionales
       Un  parmetro  posicional  es  un parmetro denotado por uno o ms dgitos,
       distintos del simple 0. Los parmetros posicionales se asignan a  partir
       de los argumentos del shell cuando ste es llamado, y pueden ser reasig-
       nados mediante la orden interna set.   Los  parmetros  posicionales  no
       pueden  ser  asignados con sentencias de asignacin. Los parmetros posi-
       cionales se reemplazan temporalmente cuando se ejecuta una  funcin  del
       shell (vea FUNCIONES abajo).

       Cuando  un  parmetro  posicional  consistente en ms de un solo dgito se
       expande, debe rodearse por llaves (vea EXPANSIN abajo).

   Parmetros especiales
       El shell trata de forma especial a ciertos parmetros. stos  slo  pueden
       referenciarse; no se permite asignarles nada.
       *      Se expande a los parmetros posicionales, empezando por 1. Cuando
              la expansin ocurre entre comillas dobles, se expande a una  sola
              palabra  con  el  valor  de cada parmetro separado por el primer
              carcter de la variable especial IFS.  Esto es, "$*"  es  equiva-
              lente  a  "$1c$2c...", donde c es el primer carcter del valor de
              la variable IFS.  Si IFS no est definida, los parmetros se sepa-
              ran  por  espacios.   Si IFS es la cadena vaca, los parmetros se
              juntan sin ningn separador.
       @      Se expande a los  parmetros  posicionales,  empezando  desde  1.
              Cuando  la  expansin  ocurre  dentro  de  comillas  dobles, cada
              parmetro se expande a una palabra separada.  Esto  es,  "$@"  es
              equivalente  a  "$1"  "$2"  ...   Cuando  no hay parmetros posi-
              cionales, "$@" y $@ se expanden a nada (esto es, se borran).
       #      Se expande al nmero en base 10 de parmetros posicionales.
       ?      Se expande al estado de la tubera ms recientemente ejecutada  en
              primer plano.
       -      Se  expande a las opciones del shell activas actualmente segn se
              hayan especificado en la llamada, mediante la orden interna set,
              o las que haya puesto el mismo shell (como la opcin -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  ms  recientemente  ejecutada  en
              segundo plano (asncronamente).
       0      Se  expande  al nombre del shell o guin del shell. Este parmetro
              se pone en el inicio del shell. Si bash se llama con un  fichero
              de  rdenes,  $0  se  pone  al  nombre de ese fichero. Si bash se
              arranca con la opcin -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 guin del shell que se est ejecutando, tal como se ha
              pasado  en la lista de argumentos.  Subsecuentemente, se expande
              al ltimo argumento de la orden anterior, tras la expansin.  Tam-
              bin  se pone al nombre completo del fichero de cada orden ejecu-
              tada, y se pone en el entorno exportado a esa orden.  Cuando  se
              est  comprobando  si hay correo nuevo, este parmetro contiene el
              nombre del fichero de correo  o  buzn  que  se  est  comprobando
              actualmente.

   Variables del shell
       El shell pone automticamente 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 lnea de entrada leda 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  exclu-
              siva.
       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 versin de esta instancia
              de bash.
       BASH_VERSINFO
              Una  variable  vector  de  lectura exclusiva cuyos miembros con-
              tienen informacin de versin para esta instancia  de  bash.   Los
              valores asignados a los miembros del vector son como sigue:
              BASH_VERSINFO[0]        El   nmero  mayor  de  versin  (la  dis-
                                      tribucin).
              BASH_VERSINFO[1]        El nmero menor de versin (la versin).
              BASH_VERSINFO[2]        El nivel de parcheo.
              BASH_VERSINFO[3]        La versin de construccin.
              BASH_VERSINFO[4]        El estado de la distribucin  (por  ejem-
                                      plo, 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 parmetro sea referenciado, se genera un entero
              aleatorio  entre  0  y  32767. La secuencia de nmeros aleatorios
              puede iniciarse asignando un valor a RANDOM.  Si RANDOM  no  est
              definido, pierde sus propiedades especiales, incluso si posteri-
              ormente es redefinido.

       SECONDS
              Cada vez que este parmetro es referenciado, se devuelve en l  el
              nmero de segundos transcurridos desde la llamada al shell. Si se
              asigna un valor a SECONDS, el valor devuelto en posteriores ref-
              erencias  es el nmero de segundos desde la asignacin ms el valor
              asignado.  Si SECONDS no est definido,  pierde  sus  propiedades
              especiales, incluso si posteriormente es redefinido.

       LINENO Cada  vez  que este parmetro es referenciado, el shell sustituye
              un nmero en base 10 representando el nmero  de  lnea  secuencial
              actual (empezando por 1) dentro de un guin o funcin. Si no esta-
              mos en un guin o funcin, no se garantiza que el valor sustituido
              tenga  significado.   Si  LINENO  no  est  definido,  pierde sus
              propiedades especiales, incluso si posteriormente es redefinido.

       HISTCMD
              El  nmero  de  "historia", o ndice en la lista "histrica", de la
              orden  actual.   Si  HISTCMD  no  est   definido,   pierde   sus
              propiedades especiales, incluso si posteriormente es redefinido.

       DIRSTACK
              Una variable vector (vea Vectores ms abajo) que aloja  los  con-
              tenidos  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  asignacin  a miembros de este vector
              puede emplearse para modificar directorios que  ya  estn  en  la
              pila, pero entonces deben utilizarse las rdenes internas pushd y
              popd para aadir y quitar directorios.  La asignacin a esta vari-
              able  no  cambiar  el directorio de trabajo.  Si DIRSTACK no est
              definido, pierde sus propiedades especiales, incluso si posteri-
              ormente es redefinido.

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

       OPTARG El valor del ltimo argumento que es una opcin procesado  por  la
              orden  interna getopts (vea RDENES INTERNAS DEL SHELL ms abajo).

       OPTIND El ndice del siguiente argumento a ser procesado  por  la  orden
              interna getopts (vea RDENES INTERNAS DEL SHELL ms abajo).

       HOSTNAME
              Puesto   automticamente  al  nombre  del  anfitrin  (computador)
              actual.

       HOSTTYPE
              Puesto automticamente a una cadena que describe de forma  unvoca
              el  tipo  de  mquina en la que bash se est ejecutando.  El valor
              predefinido depende del sistema.

       OSTYPE Puesto automticamente a una cadena que describe el sistema oper-
              ativo  en  el  que bash se est ejecutando.  El valor predefinido
              depende del sistema. En Linux es "linux".

       MACHTYPE
              Puesto automticamente a una cadena que describe completamente el
              tipo  de sistema en el que bash se est ejecutando, en el formato
              estndar de GNU cpu-compaa-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
              vlido  para  la  opcin  -o  de  la orden interna set (vea RDENES
              INTERNAS DEL SHELL abajo). Las opciones que  aparecen  en  SHEL-
              LOPTS son aqullas que aparecen como on en set -o.  Si esta vari-
              able est en el ambiente cuando  bash  empieza,  cada  opcin  del
              shell  en la lista se activar 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  divisin  de
              palabras  tras  la expansin y para dividir lneas en palabras con
              la orden interna read.   El  valor  predeterminado  es  ``<espa-
              cio><tab><nueva-lnea>''.
       PATH   El  camino de bsqueda para rdenes, programas ejecutables. Es una
              lista de directorios separados por dos puntos en los  cuales  el
              shell  busca rdenes (vea EJECUCIN DE RDENES ms abajo). El camino
              predeterminado depende del sistema, y lo pone  el  administrador
              que      instala      bash.       Un      valor      comn     es
              ``/usr/local/bin:/bin:/usr/bin:.''.
       HOME   El directorio inicial de trabajo del usuario en curso; el  argu-
              mento predeterminado para la orden interna cd.  El valor de esta
              variable se usa tambin cuando se realiza la expansin de tilde.
       CDPATH El camino de bsqueda para la orden cd.  Es una lista de directo-
              rios  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 parmetro est definido cuando bash est ejecutando un guin
              del shell, su valor se interpreta como un nombre de fichero  que
              contiene  rdenes  para  iniciar el shell, como en ~/.bashrc.  El
              valor de BASH_ENV est sujeto a expansin de parmetros, sustitucin
              de  rdenes  y expansin aritmtica, antes de ser interpretado como
              un nombre de fichero.  PATH no se usa para buscar el  nombre  de
              fichero resultante.
       MAIL   Si este parmetro est puesto a un nombre de fichero y la variable
              MAILPATH no est definida, bash informa al usuario de la  llegada
              de correo en el fichero especificado.
       MAILCHECK
              Especifica  cun  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 est 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?"$_
              tiene carta!"'
              Bash  proporciona  un  valor  predeterminado para esta variable,
              pero la localizacin de los ficheros de correo  del  usuario  que
              emplea es dependiente del sistema (e.g., /var/spool/mail/$USER).
       PS1    El valor de este parmetro se expande (vea INDICADORES  abajo)  y
              se emplea como la cadena del indicador primario. El valor prede-
              terminado es ``\s-\v\$ ''.
       PS2    El valor de este parmetro se expande como con PS1  y  se  emplea
              como la cadena del indicador secundario. El valor predeterminado
              es ``> ''.
       PS3    El valor de este parmetro se emplea como el  indicador  para  la
              orden select (vea GRAMTICA DEL SHELL ms arriba).
       PS4    El  valor de este parmetro se expande como con PS1 y el valor se
              imprime antes de cada orden que bash muestra durante  una  traza
              de ejecucin. El primer carcter de PS4 se replica mltiples veces,
              tantas como sean necesarias, para indicar  mltiples  niveles  de
              indireccin. El valor predeterminado es ``+ ''.
       TIMEFORMAT
              El  valor  de este parmetro se emplea como una cadena de formato
              para especificar cmo debe mostrarse  la  informacin  de  tiempos
              para tuberas precedidas por la palabra reservada time.  El carc-
              ter % introduce una secuencia de escape  que  se  expande  a  un
              valor de tiempo o a otra informacin.  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  nmero de segundos de CPU gastados en modo usuario.
              %[p][l]S  El nmero de segundos de CPU gastados en modo  sistema.
              %P        El porcentaje de CPU, computado como (%U + %S)  %R.

              La  p  opcional es un dgito que especifica la precisin, el nmero
              de decimales.  Un valor de 0 hace que no se muestre ningn  deci-
              mal,  ni  el punto o coma decimal.  Como mucho se pueden especi-
              ficar 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 ms largo, incluyendo minu-
              tos, en la forma MMmSS.FFs.  El  valor  de  p  determina  si  se
              incluye o no la fraccin.

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

       HISTSIZE
              El nmero de rdenes a recordar en la historia de rdenes (vea HIS-
              TORIA abajo).  El valor predeterminado es 500.

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

       HISTFILESIZE
              El nmero mximo de lneas contenidas en el  fichero  de  historia.
              Cuando  se asigna un valor a esta variable, el fichero de histo-
              ria se trunca, si es menester, para contener no ms de ese  nmero
              de lneas. El valor predeterminado es 500. El fichero de historia
              se trunca tambin a este tamao tras escribir en l cuando un shell
              interactivo termina.

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

       LANG   Empleado para determinar  la  categora  de  localizacin  ("esce-
              nario")  para  cualquier categora no seleccionada especficamente
              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_ especifi-
              cando una categora de localizacin.

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

       LC_CTYPE
              Esta variable determina la interpretacin de caracteres y el com-
              portamiento  de  clases  de  caracteres dentro de expansiones de
              nombres de caminos y concordancia de patrones.

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

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

       IGNOREEOF
              Controla  la accin de un shell interactivo al recibir un carcter
              EOF como sola entrada. Si est definido, el valor es el nmero  de
              caracteres   EOF  consecutivos  que  deben  teclearse  como  los
              primeros caracteres de una lnea de entrada  antes  de  que  bash
              acabe.  Si  la variable existe pero no tiene un valor numrico, o
              ninguno, el valor predeterminado es 10. Si no existe,  EOF  sig-
              nifica el final de la entrada para el shell.

       TMOUT  Si  se  define a un valor mayor que cero, el valor se interpreta
              como el nmero de segundos que hay que esperar una entrada despus
              de  mostrarse  el  indicador  primario.   Bash termina despus de
              esperar ese nmero 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 terminacin 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  expansin  de nombres de caminos. Si un nombre de fichero
              que concordaba en un patrn de expansin  de  nombres  de  caminos
              tambin 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 lneas que comiencen
              con un carcter espacio no se meten en la lista de  historia.  Si
              se  pone  a un valor de ignoredups, las lneas que concuerden con
              la ltima lnea de la historia, no se meten.  Un valor de  ignore-
              both  combina las dos opciones.  Si no est definido, o si lo est
              a otro valor distinto de los de antes, todas las lneas ledas por
              el  analizador  lxico  se  guardan  en  la lista de la historia,
              sujeto esto al valor de HISTIGNORE.  La funcin de esta  variable
              ha  sido tomada por HISTIGNORE.  La segunda lnea y siguientes de
              una orden compuesta multi-lnea no se comprueban, y se aaden a la
              historia sin importar el valor de HISTCONTROL.

       HISTIGNORE
              Una  lista  de  patrones separados por dos puntos empleados para
              decidir qu lneas de rdenes deben guardarse en la lista de histo-
              ria.  Cada patrn se ancla al principio de la lnea y debe especi-
              ficar la lnea completamente (no se aade ningn `*').  Cada  patrn
              se  comprueba  con  la  lnea  tras  aplicarse las comprobaciones
              especificadas por HISTCONTROL.  Adems de los caracteres normales
              de concordancia de patrones del shell, `&' concuerda con la lnea
              de historia anterior.  `&'  puede protegerse empleando una barra
              inversa.  sta se quita antes de intentarse una concordancia.  La
              segunda lnea y siguientes de una orden compuesta  multi-lnea  no
              se comprueban, y se aaden a la historia sin importar el valor de
              HISTIGNORE.

       histchars
              Los dos o tres caracteres que controlan la expansin y  separacin
              en  lexemas de la historia (vea EXPANSIN DE HISTORIA abajo).  El
              primer carcter es el carcter de expansin de historia, el carcter
              que  seala  el comienzo de una expansin de historia, normalmente
              `!'.  El segundo carcter es el carcter de sustitucin rpida,  que
              se  usa  como una abreviatura para reejecutar la orden anterior,
              sustituyendo una cadena por otra en la orden. El valor predeter-
              minado  es  `^'.  El tercer carcter, opcional, es el carcter que
              indica que el resto de  la  lnea  es  un  comentario  cuando  se
              encuentra  como el primer carcter de una palabra, normalmente es
              `#'.  El carcter de comentario de historia hace  que  la  susti-
              tucin  de  historia se salte en el resto de palabras de la lnea.
              No hace que necesariamente el analizador  lxico del shell  trate
              al resto de la lnea como un a un comentario.

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

       auto_resume
              Esta variable controla cmo el shell  interacta  con  el  usuario
              para  el control de trabajos. Si esta variable est definida, las
              rdenes simples de una palabra sin redireccin se tratan como can-
              didatas para reanudar un trabajo existente parado. No se permite
              ninguna ambigedad; si hay ms de un trabajo que  empiece  con  la
              cadena  tecleada, se selecciona el trabajo al que se ha accedido
              ms recientemente.  El nombre de un trabajo parado, en este  con-
              texto,  es  la  lnea  de rdenes empleada para arrancarlo.  Si se
              define al valor exact, la  cadena  suministrada  debe  concordar
              exactamente  con  el  nombre  de un trabajo parado; si se define
              como substring, la cadena suministrada  necesita  concordar  con
              una  subcadena  del  nombre  de un trabajo parado. El valor sub-
              string proporciona una funcionalidad anloga a la  del  identifi-
              cador  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 anloga a la del identificador de trabajo %.

   Vectores
       Bash proporciona variables vectores, monodimensionales. Cualquier vari-
       able  puede usarse como un vector; la orden interna declare declarar un
       vector explcitamente. No hay un lmite mximo en el tamao de  un  vector,
       ni  ningn requisito para que los miembros se indexen o asignen de forma
       contigua. Los vectores se indexan empleando enteros y  su  primer  ele-
       mento es el de ndice cero, como en C.

       Un  vector  se crea automticamente si se asigna algo a una variable con
       la sintaxis nombre[ndice]=valor. El ndice se trata  como  una  expresin
       aritmtica  que  debe  evaluarse  a  un nmero mayor o igual a cero. Para
       declarar un vector explcitamente, emplee declare -a nombre (vea  RDENES
       INTERNAS  DEL SHELL abajo).  Tambin se acepta declare -a nombre[ndice],
       donde el ndice no se tiene en cuenta. Se pueden  especificar  atributos
       para  una  variable vector mediante las rdenes internas declare y read-
       only.  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
       [ndice]=cadena.  Slo cadena es necesario.  Si se  suministra  el  ndice
       entre  corchetes y la asignacin, se asigna a ese ndice; si no, el ndice
       del elemento asignado es el ltimo ndice al que la  sentencia  le  asign
       algo,  ms  uno.  Los  ndices  empiezan en cero. Esta sintaxis tambin la
       acepta la orden interna declare.  Se  puede  asignar  a  los  elementos
       individuales  del  vector empleando la sintaxis nombre[ndice]=valor, ya
       presentada antes.

       Cualquier elemento de un vector  puede  referenciarse  mediante  ${nom-
       bre[ndice]}.   Las  llaves son necesarias para evitar conflictos con la
       expansin de nombres de caminos. Si ndice  es  @  o  *,  la  palabra  se
       expande  a  todos  los miembros de nombre.  Estos ndices difieren sola-
       mente cuando la palabra aparece entre comillas dobles.  Si  la  palabra
       est  entre  comillas dobles, ${nombre[*]} se expande a una sola palabra
       con el valor de cada miembro del vector separados por el primer carcter
       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 anlogo a la expansin de los
       parmetros especiales * y @ (vea Parmetros especiales arriba).   ${#nom-
       bre[ndice]}  se expande a la longitud de ${nombre[ndice]}.  Si ndice es
       * o @, la expansin es el nmero de elementos  del  vector.   Referenciar
       una  variable vector sin ndice es equivalente a referenciar el elemento
       cero.

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

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

EXPANSIN

       La expansin se realiza en la lnea de rdenes una vez  que  la  orden  ha
       sido  dividida  en  palabras. Hay siete clases de expansin: expansin de
       llaves, expansin de tilde, expansin de parmetro y variable,  sustitucin
       de  orden,  expansin aritmtica, divisin de palabras, expansin de nombre
       de camino.

       La orden de las expansiones  es:  expansin  de  llaves,  de  tilde,  de
       parmetro,  variable  y  aritmtica,  y  sustitucin  de  orden (hechas de
       izquierda a derecha), divisin de palabras,  y  expansin  de  nombre  de
       camino.

       En   sistemas   que   puedan  admitirla,  hay  una  expansin  adicional
       disponible: sustitucin de proceso.

       Slo la expansin de llaves, divisin de palabras, y expansin de nombre de
       camino,  pueden  cambiar el nmero de palabras de la expansin; las otras
       expanden una palabra simple a otra palabra  simple.  Las  nicas  excep-
       ciones  a  esto son las expansiones de "$@" y "${nombre[@]}" como se ha
       explicado ms arriba (vea PARMETROS).

   Expansin de llaves
       La expansin de llaves es un mecanismo  por  el  cual  pueden  generarse
       cadenas  arbitrarias. Este mecanismo es similar a la expansin de nombre
       de camino, pero los nombres  de  ficheros  no  necesitan  existir.  Los
       patrones  a  ser expandidos con la expansin de llaves toman la forma de
       un prembulo opcional seguido por una serie  de  cadenas  separadas  por
       comas  entre  un  par de llaves, seguido por un post scriptum opcional.
       El prembulo sirve de prefijo a cada cadena de entre las  llaves,  y  el
       post  scriptum  se  aade 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 expansin de llaves se realiza antes que cualquier otra, y  cualquier
       carcter especial para otras expansiones se preserva en el resultado. Es
       estrictamente textual.  Bash no aplica ninguna interpretacin  sintctica
       al contexto de la expansin ni al texto entre las llaves.

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

       Esta  construccin  se emplea normalmente como una abreviatura cuando el
       prefijo comn 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  expansin  de  llaves introduce una pequea incompatibilidad con ver-
       siones histricas 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  consecuen-
       cia de la expansin de llaves. Por ejemplo, una palabra introducida a sh
       como fichero{1,2} aparece as mismo en la entrada. La misma  palabra  se
       muestra  como fichero1 fichero2 tras la expansin hecha por bash.  Si se
       desea una compatibilidad estricta con sh, arranque bash con la opcin +B
       o  inhabilite la expansin de llaves con la opcin +B de la orden interna
       set (vea RDENES INTERNAS DEL SHELL abajo).

   Expansin de tilde
       Si una palabra comienza con un carcter tilde de la   sin  entrecomillar
       (`~'),  todos  los caracteres que precedan a la primera barra inclinada
       sin entrecomillar (o todos los caracteres,  si  no  hay  ninguna  barra
       inclinada  sin proteger), se consideran un prefijo-tilde. Si ninguno de
       los caracteres en el prefijo-tilde estn 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
       vaca,  la  tilde se reemplaza con el valor del parmetro del shell HOME.
       Si HOME no est definida, se sustituye en su lugar el directorio de tra-
       bajo  inicial  del usuario que est 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 est definido, se sustituye.  Si los
       caracteres que siguen a la tilde en el prefijo-tilde  consisten  en  un
       nmero  N, prefijado opcionalmente por un `+' o un `-', el prefijo-tilde
       se reemplaza con el elemento correspondiente de la pila de directorios,
       como  lo  mostrara  la  orden interna dirs llamada con el prefijo-tilde
       como argumento.  Si los caracteres tras la tilde  en  el  prefijo-tilde
       consisten en un nmero sin un `+' ni `-' iniciales, se supone `+'.

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

       A cada asignacin de variable se comprueba  si  hay  prefijos-tilde  sin
       entrecomillar  inmediatamente  tras  un  :  o un =.  En estos casos, la
       expansin de tilde tambin 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.

   Expansin de parmetro
       El carcter `$' introduce la expansin de parmetro, sustitucin de  orden,
       o  expansin  aritmtica.  El nombre de parmetro o smbolo a ser expandido
       puede estar encerrado entre llaves, que son opcionales pero sirven para
       proteger  a  la  variable  en  la expansin 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 expansin aritmtica empotrada, sustitucin de orden,  o  expansin  de
       parmetro.

       ${parmetro}
              Se  sustituye  el valor de parmetro.  Se requieren llaves cuando
              parmetro es un parmetro posicional de ms de un dgito,  o  cuando
              parmetro  viene seguido por un carcter que no debe interpretarse
              como parte de su nombre.

       Si el primer carcter de parmetro es un signo de cierre  de  exclamacin,
       se  introduce un nivel de indireccin de variable.  Bash emplea el valor
       de la variable formada a partir del resto de parmetro como el nombre de
       la  variable;  luego, esta variable se expande y ese valor se emplea en
       el resto de la sustitucin, en vez del propio valor de  parmetro.   Esto
       se conoce como expansin indirecta.

       En  cada  uno de los casos anteriores, palabra est sujeta a expansin de
       tilde, expansin de parmetro, sustitucin de orden, y expansin aritmtica.
       Cuando  no  se  realiza  la expansin de subcadena, bash comprueba si un
       parmetro est sin definir o es nulo; si omitimos los dos puntos la  com-
       probacin slo es para la no definicin del parmetro.

       ${parmetro:-palabra}
              Emplear  valores predeterminados.  Si parmetro no est definido o
              est vaco, se sustituye la expansin de palabra.  De otro modo, se
              sustituye el valor de parmetro.
       ${parmetro:=palabra}
              Asignar  valores predeterminados.  Si parmetro no est definido o
              es nulo, la expansin de palabra se asigna a parmetro.  Luego, el
              valor de parmetro se sustituye. No se puede asignar nada de esta
              manera a los parmetros posicionales ni a los especiales.
       ${parmetro:?palabra}
              Muestra un error si no est definido o est vaco.  Si parmetro  es
              nulo  o  no est definido, la expansin de palabra (o un mensaje a
              tal efecto si palabra no est presente) se escribe en  la  salida
              estndar  de  errores y el shell, si no es interactivo, acaba. De
              otra manera, se sustituye el valor de parmetro.
       ${parmetro:+palabra}
              Emplear un valor alternativo.  Si parmetro est  vaco  o  no  est
              definido,  no  se  sustituye nada; de otro modo, se sustituye la
              expansin de palabra.
       ${parmetro:desplazamiento}
       ${parmetro:desplazamiento:longitud}
              Expansin de subcadena.  Expande  hasta  longitud  caracteres  de
              parmetro,   empezando   en   los  caracteres  especificados  por
              desplazamiento.  Si se omite la longitud, se expande a la subca-
              dena  de  parmetro,  empezando  en  el  carcter especificado por
              desplazamiento.   longitud  y  desplazamiento  son   expresiones
              aritmticas  (vea  EVALUACIN  ARITMTICA ms abajo).  longitud debe
              evaluarse a un nmero mayor o igual a cero.  Si desplazamiento se
              evala  a  un  nmero  menor  que cero, el valor se emplea como un
              desplazamiento  desde  el  final  del  valor  de  parmetro.   Si
              parmetro  es  @, el resultado es longitud parmetros posicionales
              empezando en desplazamiento.  Si parmetro es un nombre de vector
              indexado por @ o *, el resultado es longitud miembros del vector
              empezando con ${parmetro[desplazamiento]}.  La indexacin  de  la
              subcadena  empieza por cero a menos que se empleen los parmetros
              posicionales, en cuyo caso empieza por 1.

       ${#parmetro}
              Se sustituye la longitud en caracteres del  valor  de  parmetro.
              Si parmetro es * o @, el valor sustituido es el nmero de parmet-
              ros posicionales.  Si parmetro es un nombre de  vector  indexado
              por  *  o  @, el valor sustituido es el nmero de elementos en el
              vector.

       ${parmetro#palabra}
       ${parmetro##palabra}
              La palabra se expande para producir un patrn lo mismo que en una
              expansin de nombre de camino. Si el patrn concuerda con el prin-
              cipio del  valor  de  parmetro,  entonces  el  resultado  de  la
              expansin es el valor expandido de parmetro con el patrn ms corto
              que concuerde (el caso ``#) o con el patrn  ms  largo  que  con-
              cuerde  (el  caso  ``##'')  eliminado.  Si parmetro es @ o *, la
              operacin de borrado del patrn se aplica a  cada  parmetro  posi-
              cional  por  turnos,  y  la expansin es la lista resultante.  Si
              parmetro es una variable vector indexada con @ o *, la  operacin
              de  borrado  del  patrn  se aplica a cada miembro del vector por
              orden, y la expansin es la lista resultante.

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

       ${parmetro/patrn/cadena}
       ${parmetro//patrn/cadena}
              El patrn se expande para producir un  patrn  justo  como  en  la
              expansin  de nombre de camino.  parmetro se expande y la concor-
              dancia ms larga de patrn contra  este  valor  se  reemplaza  por
              cadena.   En  la primera forma, slo se reemplaza la primera con-
              cordancia.  La segunda forma hace que todas las concordancias de
              patrn  se  reemplacen  con cadena.  Si patrn empieza por #, debe
              concordar con el principio de la cadena.  Si patrn  empieza  por
              %,  debe  concordar  con  el  final de la cadena.  Si cadena est
              vaca, las concordancias de patrn se borran y el / que  sigue  al
              patrn  puede  omitirse.   Si  parmetro  es @ o *, la operacin de
              sustitucin se aplica a cada parmetro posicional por orden, y  la
              expansin  es  la  lista resultante.  Si parmetro es una variable
              vector indexada por @ o *, la operacin de sustitucin se aplica a
              cada  miembro  del  vector  por orden, y la expansin es la lista
              resultante.

   Sustitucin de orden
       La sustitucin de orden permite a la salida de una orden  reemplazar  al
       nombre de la orden. Hay dos formas:


              $(orden)
       u
              `orden`

       Bash  realiza la expansin ejecutando orden y reemplazando la sustitucin
       de orden con la salida estndar de la orden, quitando los saltos de lnea
       finales.   Los  saltos de lnea empotrados no se borran, pero pueden ser
       eliminados durante la divisin de  palabras.   La  sustitucin  de  orden
       $(cat  fichero) puede reemplazarse por lo equivalente pero ms rpido $(<
       fichero).

       Cuando se emplea la forma de sustitucin al viejo estilo con las  comil-
       las  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 sustitucin de orden.
       Cuando se emplea la forma $(orden),  todos  los  caracteres  entre  los
       parntesis 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  sustitucin aparece dentro de las dobles comillas, la divisin de
       palabras y la expansin de nombres no se realiza en los resultados.

   Expansin aritmtica
       La expansin aritmtica permite la evaluacin de una expresin aritmtica  y
       la sustitucin del resultado. El formato para la expansin aritmtica es:

              $((expresin))

       La  expresin  se trata como si estuviera entre comillas dobles, pero un
       signo de doble comilla dentro de los parntesis no  se  trata  especial-
       mente.   Todos  los  lexemas  en la expresin estn sujetos a expansin de
       parmetro, expansin de cadena, sustitucin  de  orden,  y  eliminacin  de
       comillas.  Las sustituciones aritmticas pueden anidarse.

       La  evaluacin  se  realiza de acuerdo a las reglas listadas ms abajo en
       EVALUACIN ARITMTICA.  Si expresin no es vlida, bash imprime un  mensaje
       indicando el fallo y no ocurre ninguna sustitucin.

   Sustitucin de proceso
       La  sustitucin de proceso se admite en sistemas que acepten tuberas con
       nombre (FIFOs) o el mtodo /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 algn fichero en
       /dev/fd.   El  nombre de este fichero se pasa como argumento a la orden
       en curso como el resultado de  la  expansin.  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  deber
       leerse para obtener la salida de lista.

       Cuando  est  disponible, se realiza la sustitucin de proceso simultnea-
       mente con la expansin de parmetro y variable,  sustitucin  de  orden  y
       expansin aritmtica.

   Divisin de palabras
       El  shell examina los resultados de la expansin de parmetro, sustitucin
       de orden y expansin aritmtica que  no  ocurrieron  dentro  de  comillas
       dobles para realizar la divisin de palabras.

       El  shell  trata  cada carcter de IFS como un delimitador, y divide los
       resultados de las otras expansiones en  palabras  separadas  por  estos
       caracteres.  Si  IFS  no est definido, o su valor es exactamente <espa-
       cio><tab><nueva-lnea>,  el  valor  predeterminado,  entonces  cualquier
       secuencia  de  caracteres  de IFS sirve para delimitar palabras. Si IFS
       tiene algn otro valor, entonces las secuencias de los caracteres  blan-
       cos  espacio y tabulador no se tienen en cuenta al principio y al final
       de la palabra, siempre que el carcter de espacio en blanco  est  en  el
       valor de IFS (un carcter de espacio en blanco de IFS).  Cualquier carc-
       ter en IFS que no sea espacio en blanco de  IFS,  junto  con  cualquier
       carcter  de espacio en blanco adyacente de IFS, delimita un campo.  Una
       secuencia de caracteres de espacio en blanco de  IFS  tambin  se  trata
       como  un  delimitador.   Si  el  valor de IFS es nulo, no se realiza la
       divisin de palabras.

       Los argumentos nulos explcitos ("" o '') se mantienen.  Los  argumentos
       nulos  no protegidos implcitos, resultantes de la expansin de parmetros
       que no tienen valores, se eliminan.  Si un parmetro sin ningn valor  se
       expande dentro de comillas dobles, el resultado es un argumento nulo, y
       es mantenido.

       Observe que si no hay expansin, tampoco se realiza la divisin  de  pal-
       abras.

   Expansin de nombre de camino
       Tras  la  divisin de palabras, a menos que la opcin -f est puesta, bash
       examina cada palabra buscando los caracteres *, ?, (, y [.  Si  uno  de
       estos  caracteres  aparece,  entonces  la  palabra se considera como un
       patrn, y se reemplaza por una lista ordenada alfabticamente de  nombres
       de  ficheros  que concuerden con el patrn.  Si no se encuentran nombres
       de ficheros concordantes, y la opcin del shell nullglob est  deshabili-
       tada,  la palabra se deja tal cual.  Si la opcin nullglob est puesta, y
       no ha habido ninguna concordancia, la palabra se elimina.  Si la  opcin
       del shell nocaseglob est puesta, la bsqueda de la concordancia se real-
       iza sin importar si los caracteres alfabticos son  letras  maysculas  o
       minsculas.   Cuando  un patrn se usa para expansin de nombre de camino,
       el carcter ``.''  al principio de un nombre o inmediatamente despus  de
       una  barra  inclinada  debe  concordar  explcitamente,  a menos que est
       puesta la opcin del shell dotglob.  En la concordancia de un nombre  de
       camino,  el carcter de barra inclinada debe siempre coincidir explcita-
       mente.  En otros casos, el carcter ``.''  no se trata  de  forma  espe-
       cial.  Vea la descripcin de shopt ms abajo en RDENES INTERNAS DEL SHELL
       para una descripcin 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 patrn.   Si  GLO-
       BIGNORE  est  definido,  cada  nombre de fichero concordante que tambin
       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 est puesto.  Sin  embargo,
       definir  GLOBIGNORE  tiene el efecto de activar la opcin del shell dot-
       glob, de modo que todos los otros nombres de fichero que comiencen  con
       un  ``.''   concordarn.   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 opcin dotglob est
       deshabilitada cuando GLOBIGNORE no est definido.

       Patrones

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

       Los caracteres de patrn especiales tienen los siguientes significados:

       *      Concuerda con cualquier cadena de caracteres, incluida la cadena
              vaca.
       ?      Concuerda con un solo carcter cualquiera.
       [...]  Concuerda con uno de los caracteres entre corchetes. Un  par  de
              caracteres  separados  por  un  signo  menos  denota  un  rango;
              cualquier carcter lxicamente entre  esos  dos,  incluidos,  con-
              cuerda. Si el primer carcter tras el [ es un !  o un ^, entonces
              la concordancia es con cualquier carcter  de  los  que  no  estn
              entre  los  corchetes.  Un - puede representarse para la concor-
              dancia incluyndolo como el primer o ltimo carcter del  conjunto.
              Un  ] puede hacerse concordar incluyndolo como el primer carcter
              del conjunto.

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

              Dentro de [ y ], una clase de equivalencia se puede  especificar
              empleando  la sintaxis [=c=], que concuerda con todos los carac-
              teres con el mismo peso de clasificacin (tal como lo  defina  la
              localizacin en curso) que el carcter c.

              Dentro  de [ y ], la sintaxis [.smbolo.] concuerda con el smbolo
              de clasificacin smbolo.

       Si la opcin del shell extglob se activa usando la orden interna  shopt,
       se reconocen algunos operadores de patrones extendidos. En la siguiente
       descripcin, una lista-patrn es una lista de uno o ms patrones separados
       por  un  |. Se pueden formar patrones compuestos usando uno o ms de los
       siguientes sub-patrones:

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

   Eliminacin de comillas
       Tras  las expansiones precedentes, todas las ocurrencias no entrecomil-
       ladas de los caracteres \, ', y " que no resulten de una de las  expan-
       siones anteriores, se eliminan.

REDIRECCIN

       Antes de que se ejecute una orden, su entrada y salida pueden ser redi-
       rigidas usando una notacin especial  interpretada  por  el  shell.   La
       redireccin  tambin  se puede emplear para abrir y cerrar ficheros en el
       entorno de ejecucin del shell en curso. Los  operadores  de  redireccin
       siguientes  pueden  preceder o aparecer en cualquier sitio de una orden
       simple o pueden ir detrs 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 nmero del descriptor de
       fichero, y el primer carcter del operador de redireccin es <, la  redi-
       reccin se refiere a la entrada estndar (descriptor de fichero 0). Si el
       primer carcter del operador  de  redireccin  es  >,  la  redireccin  se
       refiere a la salida estndar (descriptor de fichero 1).

       La  palabra  tras  el operador de redireccin en las descripciones sigu-
       ientes, a menos que se diga otra cosa, est  sujeta  a  la  expansin  de
       llaves,  expansin  de tilde, expansin de parmetro, sustitucin de orden,
       expansin aritmtica, eliminacin de comillas, y  expansin  de  nombre  de
       camino.  Si se expande a ms de una palabra, bash informa de un error.

       Observe  que  el orden de las redirecciones es significativo. Por ejem-
       plo, la orden

              ls > listadir 2>&1

       dirige la salida estndar normal y la de errores, ambas, al fichero lis-
       tadir, mientras que la orden

              ls 2>&1 > listadir

       dirige  solamente la salida estndar al fichero listadir, porque la sal-
       ida de errores estndar se ha duplicado como salida estndar antes de que
       sta se redirigiera a listadir.

       Un  fallo en la apertura o creacin de un fichero hace que la redireccin
       fracase.

   Redireccin de la entrada
       La redireccin de la entrada hace que el fichero cuyo nombre resulte  de
       la expansin de palabra se abra para lectura en el descriptor de fichero
       n, o la entrada estndar (descriptor de fichero 0) si no se especific n.

       El formato general para la redireccin de la entrada es:

              [n]<palabra

   Redireccin de la salida
       la  redireccin  de la salida hace que el fichero cuyo nombre resulte de
       la expansin de palabra se abra  para  escritura  en  el  descriptor  de
       fichero  n,  o  la  salida estndar (descriptor de fichero 1) si n no se
       especific. Si el fichero no existe se crea; si existe se trunca a  lon-
       gitud cero, se vaca.

       El formato general para la redireccin de la salida es:

              [n]>palabra

       Si  el  operador  de  redireccin es >, y la opcin noclobber de la orden
       interna set ha sido activada, la redireccin  fallar  si  el  nombre  de
       fichero  resultante  de  la  expansin  de  palabra existiera y fuera un
       fichero regular.  Si el operador de redireccin es >|, o es > y la opcin
       noclobber  de  la  orden  interna set no est activada, la redireccin se
       intenta incluso si el fichero nombrado por palabra existe.

   Aadir a la salida redirigida
       La redireccin de la salida en esta forma hace que el fichero cuyo  nom-
       bre resulte de la expansin de palabra se abra para aadir en el descrip-
       tor de fichero n, o la salida estndar (descriptor de fichero 1) si n no
       se especific. Si el fichero no existe, se crea.

       El formato general para aadir a la salida es:

              [n]>>palabra


   Redireccin de la salida estndar normal y de errores
       Bash  permite  que  ambas  salidas  estndares, la normal (descriptor de
       fichero 1) y la de errores (descriptor de fichero 2) se redirijan hacia
       el fichero cuyo nombre sea la expansin de palabra con esta construccin.

       hay dos formatos para la redireccin de la salida estndar y la salida de
       errores:

              &>palabra
       y
              >&palabra

       De  las  dos  formas,  es  preferible la primera.  sta es semnticamente
       equivalente a

              >palabra 2>&1

   Documentos internos
       Este tipo de redireccin instruye al shell a leer la  entrada  desde  la
       fuente  en  curso hasta que vea una lnea que contenga solamente palabra
       (sin blancos detrs).  Todas las lneas ledas hasta ese punto se  emplean
       como la entrada estndar de una orden.

       El formato de los documentos internos es como sigue:

              <<[-]palabra
                               documento-interno
              delimitador

       No se realiza la expansin de parmetro, sustitucin de orden, expansin de
       nombre de camino ni expansin aritmtica en palabra.  Si cualquier  carc-
       ter de palabra est entrecomillado, el delimitador es el resultado de la
       eliminacin de comillas en palabra, y las lneas en el documento  interno
       no  se expanden.  Si palabra no est entrecomillada, todas las lneas del
       documento interno estn sujetas a expansin de  parmetro,  sustitucin  de
       orden  y  expansin aritmtica. En el ltimo caso, el par \<nueva-lnea> no
       se tiene en cuenta, y debe emplearse \ para proteger los caracteres  \,
       $, y `.

       Si el operador de redireccin es <<-, entonces se quitan de las lneas de
       la entrada todos los caracteres de tabulacin iniciales, as como de   la
       lnea  que contiene delimitador.  Esto permite que los documentos inter-
       nos dentro de guiones del shell se sangren de manera natural.

   Duplicacin de descriptores de fichero
       El operador de redireccin

              [n]<&palabra

       se emplea para duplicar descriptores de ficheros de entrada.   Si  pal-
       abra  se  expande  a uno o ms dgitos, el descriptor de fichero denotado
       por n se hace ser una copia de este descriptor de fichero.  Si los dgi-
       tos  en  palabra  no  especifican un descriptor de fichero abierto para
       entrada, se produce un error de redireccin.  Si palabra se evala  a  -,
       el  descriptor de fichero n se cierra. Si n no se especifica, se emplea
       la entrada estndar (descriptor de fichero 0).

       El operador

              [n]>&palabra

       se emplea similarmente para duplicar descriptores de ficheros  de  sal-
       ida.  Si  n no se especific, se emplea la salida estndar (descriptor de
       fichero 1).  Si los dgitos en palabra no especifican un  descriptor  de
       fichero  abierto  para salida, se produce un error de redireccin.  Como
       un caso especial, si n se omite, y palabra no se expande  a  uno  o  ms
       dgitos,  se  redirigen la salida estndar y la salida estndar de errores
       como se describi con anterioridad.

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

              [n]<>palabra

       hace que el fichero cuyo nombres sea la expansin  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
       rdenes internas alias y unalias (vea RDENES INTERNAS DEL SHELL  abajo).
       Se  mira  a  ver  si la primera palabra de cada orden, si no est entre-
       comillada, tiene un alias. Si es as, cada palabra se reemplaza  con  el
       texto  del  alias.  El  nombre del alias y el texto de reemplazo pueden
       contener cualquier entrada vlida para el shell, incluyendo los metacar-
       acteres  listados arriba, con la excepcin de que el nombre del alias no
       puede contener un =. La primera palabra del texto de reemplazo se  com-
       prueba si es un alias, pero si es un alias idntico al que se est expan-
       diendo, 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 ltimo  carcter  del  valor
       del  alias  es un blanco, entonces la siguiente palabra de la orden que
       sigue al alias tambin se mira para la expansin de alias.

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

       No  hay ningn mecanismo para poder usar argumentos en el texto de reem-
       plazo. Si se necesitan, debera emplearse mejor una funcin del shell.

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

       Las reglas que conciernen a la definicin y uso de los  alias  son  algo
       confusas.   Bash  siempre lee por lo menos una lnea completa de entrada
       antes de ejecutar cualquiera de las rdenes de esa lnea.  Los  alias  se
       expanden  cuando  se lee una orden, no cuando se ejecuta. Por lo tanto,
       una definicin de alias que aparezca en la misma lnea que otra orden  no
       tiene efecto hasta que se lea la siguiente lnea de entrada.  Las rdenes
       que sigan a la definicin de alias en esa lnea no se ven  afectadas  por
       el  nuevo  alias.  Este comportamiento tambin hay que tenerlo en cuenta
       cuando se ejecutan funciones.  Los alias se expanden cuando se lee  una
       definicin  de  funcin,  no  cuando  la  funcin  se  ejecuta, porque una
       definicin de funcin es en s misma una orden compuesta. Como  consecuen-
       cia, los alias definidos en una funcin no estn disponibles hasta despus
       de que esa funcin  se  ejecute.  Para  asegurarse,  ponga  siempre  las
       definiciones  de alias en una lnea separada, y no emplee la orden alias
       en rdenes compuestas.

       Para casi cualquier propsito, los alias  pueden  sustituirse  por  fun-
       ciones del shell.

FUNCIONES

       Una  funcin  del  shell,  definida  como se describi anteriormente bajo
       GRAMTICA DEL SHELL, guarda una serie de rdenes para una ejecucin poste-
       rior.   Las funciones se ejecutan en el contexto del shell en curso; no
       se crea ningn nuevo proceso para interpretarlas (en  contraste  con  la
       ejecucin  de  un  guin  del  shell).  Cuando una funcin se ejecuta, los
       argumentos de la funcin se convierten  en  los  parmetros  posicionales
       durante  su ejecucin. El parmetro especial # se actualiza para reflejar
       el cambio. El parmetro posicional 0 permanece intacto. Todos  los  dems
       aspectos  del  entorno  de  ejecucin  del  shell son idnticos entre una
       funcin y quien la llama con la excepcin de que la trampa DEBUG (vea  la
       descripcin  de  la orden interna trap bajo RDENES INTERNAS DEL SHELL ms
       adelante) no se hereda.

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

       Si se ejecuta la orden interna return en una funcin, ste se acaba y  la
       ejecucin se reanuda con la siguiente orden tras la llamada a la funcin.
       Cuando una funcin se completa,  los  valores  de  los  parmetros  posi-
       cionales  y el parmetro especial # se restauran a los valores que tenan
       antes de la ejecucin de la funcin.

       Los nombres de funcin y sus definiciones pueden listarse con  la  opcin
       -f  de las rdenes internas declare o typeset.  La opcin -F de declare o
       typeset listar solamente los nombres de las funciones.   Las  funciones
       pueden  exportarse  de  modo  que  los  subshells  las tengan definidas
       automticamente con la opcin -f de la orden interna export.

       Las funciones pueden ser recursivas. No se impone  ningn  lmite  en  el
       nmero de llamadas recursivas.

EVALUACIN ARITMTICA

       El  shell  permite  que  se evalen expresiones aritmticas, bajo ciertas
       circunstancias (vea la orden interna let  y  Expansin  aritmtica).   La
       evaluacin se hace con enteros largos sin comprobacin de desbordamiento,
       aunque la divisin por 0 se atrapa y se seala 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  decre-
       ciente.

       - +    menos y ms unarios
       ! ~    negacin lgica y de bits
       **     exponenciacin
       * / %  multiplicacin, divisin, resto
       + -    adicin, sustraccin
       << >>  desplazamientos de bits a izquierda y derecha
       <= >= < >
              comparacin
       == !=  igualdad y desigualdad
       &      Y de bits (AND)
       ^      O exclusivo de bits (XOR)
       |      O inclusivo de bits (OR)
       &&     Y lgico (AND)
       ||     O lgico (OR)
       expr?expr:expr
              evaluacin condicional
       = *= /= %= += -= <<= >>= &= ^= |=
              asignacin

       Se permite que las variables del shell acten como operandos; se realiza
       la expansin de parmetro antes de la evaluacin de la expresin.  El valor
       de  un parmetro se fuerza a un entero largo dentro de una expresin. Una
       variable del shell no necesita tener activado  su  atributo  de  entero
       para emplearse en una expresin.

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

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

EXPRESIONES CONDICIONALES

       Las expresiones condicionales son empleadas por la orden compuesta [[ y
       por las rdenes internas test  y  [  para  comprobar  los  atributos  de
       ficheros  y realizar comparaciones de cadenas y aritmticas.  Las expre-
       siones se forman a partir de las primarias monarias  o  binarias  sigu-
       ientes.  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 tubera con nombre (FIFO).
       -r fichero
              Verdad si fichero existe y se puede leer.
       -s fichero
              Verdad si fichero existe y tiene un tamao mayor que cero.
       -t fd  Verdad si el descriptor de fichero fd est abierto y se refiere a
              una terminal.
       -u fichero
              Verdad si fichero existe y tiene el bit SUID.
       -w fichero
              Verdad si fichero existe y se puede modificar.
       -x fichero
              Verdad si fichero existe y es ejecutable.
       -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 simblico o blando.
       -S fichero
              Verdad si fichero existe y es un zcalo (socket).
       -N fichero
              Verdad  si  fichero existe y ha sido modificado desde que se ley
              la ltima vez.
       fichero1 -nt fichero2
              Verdad si fichero1 es ms reciente (segn la fecha de modificacin)
              que fichero2.
       fichero1 -ot fichero2
              Verdad si fichero1 es ms antiguo que fichero2.
       fichero1 -ef fichero2
              Verdad  si fichero1 y fichero2 tienen los mismos nmeros de nodo-
              y de dispositivo.
       -o nombre-opcin
              Verdad si la opcin del shell nombre-opcin est activada.  Vea  la
              lista  de opciones bajo la descripcin de la opcin -o de la orden
              interna set ms 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.  Tambin se puede emplear = en
              vez de ==.
       cadena1 != cadena2
              Verdad si las cadenas no son iguales.
       cadena1 < cadena2
              Verdad  si  cadena1 se ordena lexicogrficamente antes de cadena2
              en la localizacin en curso.
       cadena1 > cadena2
              Verdad si cadena1 se clasifica lexicogrficamente tras cadena2 en
              la localizacin en curso.
       arg1 OP arg2
              OP  es  uno de -eq, -ne, -lt, -le, -gt, o -ge.  Estos operadores
              aritmticos binarios devuelven verdadero si arg1 es igual a, dis-
              tinto de, menor que, menor o igual a, mayor que, o mayor o igual
              a arg2, respectivamente.  Arg1 y arg2 pueden ser  enteros  posi-
              tivos o negativos.

EXPANSIN 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  (aqullas  que preceden al nombre de la orden) y redi-
              recciones se guardan para un procesado posterior.

       2.     Las palabras que no sean asignaciones de variables  ni  redirec-
              ciones  se  expanden. Si tras la expansin quedan an palabras, la
              primera palabra se toma como el nombre de la orden  y  las  pal-
              abras restantes son los argumentos.

       3.     Se  ejecutan  las  redirecciones como se describi ms arriba bajo
              REDIRECCIN.

       4.     El texto tras el = en cada asignacin de variable  est  sujeto  a
              expansin  de  tilde,  expansin de parmetro, sustitucin de orden,
              expansin aritmtica y eliminado de comillas antes de ser asignado
              a la variable.

       Si  no  resulta  ningn  nombre  de orden, las asignaciones de variables
       afectan al entorno actual del shell. De otro  modo,  las  variables  se
       aaden  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 ningn nombre de orden, se hacen las  redirecciones,  pero
       no  afectan  al entorno del shell en curso. Un error de redireccin hace
       que el shell acabe con un estado distinto de cero.

       Si hay un nombre de orden tras la expansin, la ejecucin procede como se
       describi  antes. De otro modo, la orden sale. Si una de las expansiones
       contena una sustitucin de orden, el estado de salida de la orden es  el
       de  la ltima sustitucin de orden realizada. Si no haba sustituciones de
       rdenes, la orden acaba con un estado de cero.

EJECUCIN DE RDENES

       Despus 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 funcin del shell con ese nombre, esa
       funcin se llama como se describi arriba en FUNCIONES.  Si el nombre  no
       coincide  con  el  de  ninguna funcin, el shell lo busca en la lista de
       rdenes internas. Si se encuentra, se llama a la  orden  interna  corre-
       spondiente.

       Si  el  nombre no es ni una funcin 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 dispersin  (hash)  para  recordar  los  nombres  de
       camino completos de los ficheros ejecutables (vea hash en RDENES INTER-
       NAS DEL SHELL abajo).  Slo se  realiza  una  bsqueda  completa  de  los
       directorios  de  PATH  si  la orden no se encuentra en la tabla de dis-
       persin.  Si la bsqueda no es satisfactoria, el shell muestra un mensaje
       de error y devuelve un estado de salida de 127.

       Si la bsqueda fue exitosa, o si el nombre de la orden contiene una o ms
       barras inclinadas, el shell ejecuta el programa con ese  nombre  en  un
       entorno de ejecucin 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  ejecucin fallara porque el fichero no tuviera un formato eje-
       cutable, y el fichero no fuera un directorio, se supone que es un  guin
       del  shell,  un  fichero que contiene rdenes del shell. Se crea un sub-
       shell para ejecutarlo.  Este subshell se reinicia a s mismo, as que  el
       efecto  es  el  mismo  que  si se hubiera llamado a un nuevo shell para
       manejar el guin, con la excepcin de que el hijo retiene  las  localiza-
       ciones  de  rdenes  recordadas  por  el padre (vea hash abajo en RDENES
       INTERNAS DEL SHELL).

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

ENTORNO DE EJECUCIN DE RDENES

       El shell tiene un entorno de ejecucin, que consiste en lo siguiente:


       +o      ficheros abiertos heredados por el shell en  la  llamada,  quizs
              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  mscara de modo de creacin de ficheros, establecida por umask
              o heredada del padre del shell

       +o      las trampas en curso establecidas por trap

       +o      parmetros 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  ejecucin  o  heredadas
              del padre del shell en el entorno

       +o      opciones  activadas  en  la  llamada (bien por omisin o mediante
              argumentos en la lnea de rdenes) 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 funcin del shell
       se va a ejecutar, se llama en un entorno de ejecucin separado que  con-
       siste  en  lo  siguiente. A menos que se diga otra cosa, los valores se
       heredan del shell.


       +o      los ficheros abiertos del shell, ms las  modificaciones  y  adi-
              ciones especificadas en la orden por redirecciones

       +o      el directorio de trabajo en curso

       +o      la mscara de modo de creacin de ficheros

       +o      variables del shell marcadas para la exportacin, junto con vari-
              ables 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 ejecucin del shell.

       La  sustitucin de rdenes y las rdenes asncronas 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
       hered de su padre en la llamada. Las rdenes internas que se llaman como
       parte  de  una tubera se ejecutan tambin en un entorno de subshell. Los
       cambios hechos al entorno del subshell no pueden afectar al entorno  de
       ejecucin del shell.

ENTORNO

       Cuando  se llama a un programa, se le da un vector de cadenas de carac-
       teres 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 escudria el entorno y  crea  un  parmetro  para
       cada  nombre  encontrado, marcndolo automticamente para la exportacin a
       procesos hijos. Las rdenes ejecutadas heredan el entorno.   Las  rdenes
       export  y  declare -x permiten aadir y quitar parmetros y funciones del
       entorno. Si el valor de un parmetro 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 ms las adiciones con
       las rdenes export y declare -x.

       El entorno para cualquier orden simple o funcin puede aumentarse tempo-
       ralmente prefijndola con asignaciones de parmetros,  como  se  describi
       arriba  en  PARMETROS.  Estas sentencias de asignacin afectan solamente
       al entorno visto por esa orden.

       Si la opcin -k est puesta (vea  la  orden  interna  set  ms  adelante),
       entonces  todas  las  asignaciones  de parmetros se ponen en el entorno
       para una orden, no slo 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 propsitos del shell, una orden que acabe con un estado de sal-
       ida  cero,  ha tenido xito. Un estado de salida de cero indica xito. Un
       estado de salida distinto de cero indica fallo.  Cuando una orden  ter-
       mina  por  una  seal  fatal,  bash  emplea el valor de 128+seal 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 eje-
       cutable, el estado de salida es 126.

       Si una orden falla debido a un error durante la expansin o  redireccin,
       el estado de salida es mayor que cero.

       Las  rdenes  incorporadas en el shell devuelven un estado de 0 (verdad)
       si acaban con xito, y distinto de cero (falso) si ocurre un error mien-
       tras  se  ejecutan.   Todas  las rdenes 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  ltima  orden  ejecu-
       tada,  a  menos que ocurra un error de sintaxis, en cuyo caso acaba con
       un estado distinto de cero. Vea tambin la orden interna exit abajo.

SEALES

       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  SIGT-
       STP.

       Los  trabajos  sncronos  empezados  por bash tienen manejadores de seal
       puestos a los valores heredados por el shell de su  padre.   Cuando  el
       control  de trabajo no est en efecto, las rdenes internas no hacen caso
       de SIGINT ni SIGQUIT tampoco.  Las rdenes ejecutadas como resultado  de
       sustitucin  de  orden no hacen caso de las seales de control de trabajo
       generadas mediante el teclado SIGTTIN, SIGTTOU, ni SIGTSTP.

       El shell, de forma predeterminada, acaba cuando recibe una seal SIGHUP.
       Antes de salir, reenva la seal SIGHUP a todos los trabajos, en ejecucin
       o parados.  A los trabajos parados se les enva SIGCONT para  asegurarse
       de que reciben la seal SIGHUP.  Para prevenir que el shell enve la seal
       a un trabajo particular, debera quitarse de la lista de trabajos con la
       orden  interna  disown  (vea RDENES INTERNAS DEL SHELL ms abajo) o mar-
       carlo para no recibir SIGHUP empleando disown -h.

       Si la opcin del shell huponexit se ha puesto mediante shopt, bash  enva
       una  seal SIGHUP a todos los trabajos cuando un shell de entrada inter-
       activo se acaba.

       Cuando bash recibe una seal para la que se ha puesto una  trampa  mien-
       tras  se  se  est  esperando que una orden se complete, la trampa no se
       ejecutar hasta que la orden se complete.  Cuando bash est esperando una
       orden  asncrona mediante la orden interna wait, la recepcin de una seal
       para la que se ha definido una trampa, har que la  orden  interna  wait
       regrese  inmediatamente  con un estado de salida mayor que 128, inmedi-
       atamente tras que se ejecute la trampa.

CONTROL DE TRABAJOS

       El control de trabajos se refiere a la capacidad  de  parar  selectiva-
       mente  (suspender)  la  ejecucin  de procesos y continuar (reanudar) su
       ejecucin posteriormente. Un usuario emplea esta facilidad tpicamente  a
       travs  de  una  interfaz  interactiva suministrada conjuntamente por el
       controlador de terminal del sistema y bash.

       El shell asocia un trabajo con cada tubera. Mantiene una tabla de  tra-
       bajos  ejecutndose  actualmente, que pueden listarse con la orden jobs.
       Cuando bash  arranca  un  trabajo  asncronamente  (en  segundo  plano),
       imprime una lnea con un aspecto como sta:

              [1] 25647

       indicando que este trabajo es el nmero 1 y que el PID del ltimo proceso
       en la tubera asociada con l es 25647.  Todos los procesos en una  misma
       tubera  son  miembros del mismo trabajo.  Bash emplea la abstraccin del
       trabajo como la base para el control de trabajos.

       Para facilitar la implementacin de la interfaz del usuario  al  control
       de  trabajos,  el sistema mantiene la nocin 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 seales generadas por el teclado como  SIGINT.   Se  dice
       que estos procesos estn en primer plano.  Los procesos en segundo plano
       son aqullos cuyo PGID difiere del de la terminal;  tales  procesos  son
       inmunes  a  seales  generadas  desde  el  teclado.  Slo 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 ter-
       minal, el controlador de terminal les manda una seal SIGTTIN  (SIGTTOU)
       que, a menos que  sea capturada, suspende el proceso.

       Si  el  sistema  operativo  en el que bash se est ejecutando, admite el
       control de trabajos (Linux lo admite, por supuesto),  bash  le  permite
       usarlo.   Teclear el carcter suspender (tpicamente ^Z, Control-Z) mien-
       tras que un proceso se est ejecutando, hace que ese proceso se  pare  y
       le devuelve a Ud. al bash.  Teclear el carcter suspensin diferida (tpi-
       camente ^Y, Control-Y) hace que el proceso se pare cuando intente  leer
       entrada desde la terminal, y el control se devuelve a bash.  El usuario
       puede entonces manipular el estado de este trabajo, empleando la  orden
       bg  para  continuar  con l en segundo plano, la orden fg para continuar
       con l en primer plano, o la orden kill para matarlo. Un ^Z tiene efecto
       inmediatamente,  y tiene el efecto adicional colateral de que la salida
       pendiente y lo que haya en el bfer de entrada del teclado se descartan.

       Hay  varias formas de referirse a un trabajo en el shell.  El carcter %
       introduce un nombre de trabajo. El trabajo nmero n puede ser referenci-
       ado  como  %n.  Un trabajo puede ser referenciado utilizando un prefijo
       del nombre  empleado  para  arrancarlo,  o  usando  una  subcadena  que
       aparezca  en su lnea de rdenes.  Por ejemplo.  %ce se refiere a un tra-
       bajo ce parado. Si un prefijo concuerda con  ms  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 lnea de rdenes. Si la subcadena
       concuerda  con  ms de un trabajo, bash informa de un error. Los smbolos
       %% y %+ se refieren a la nocin que tiene el shell del trabajo en curso,
       que  es  el  ltimo  trabajo parado mientras estaba en primer plano o se
       arranc 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 sinnimo de ``fg %1'', que trae el trabajo  nmero
       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 est 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  opcin -b de la orden
       interna set est 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 ningn otro aviso,  y
       los trabajos parados se hacen terminar.

INDICADORES

       Cuando  se ejecuta interactivamente, bash muestra el indicador primario
       PS1 cuando est dispuesto para leer  una  orden,  y  el  secundario  PS2
       cuando  necesita ms entrada para completar una orden.  Bash permite que
       estas cadenas indicadoras se personalicen insertando un nmero de carac-
       teres  especiales  protegidos  con la barra inversa, que se interpretan
       como sigue:
              \a     un carcter de alerta ASCII (07)
              \d     la fecha en el formato "Da-Semana Mes Da" (ejemplo,  "Tue
                     May 26") en ingls
              \e     un carcter de escape (ESC) ASCII (033)
              \h     el nombre del computador anfitrin hasta el primer `.'
              \H     el nombre del computador anfitrin completo
              \n     salto de lnea
              \r     retorno de carro
              \s     el  nombre del shell, el nombre base de $0 (la porcin que
                     sigue a la ltima barra inclinada)
              \t     la hora actual en el formato de 24 horas HH:MM:SS
              \T     la hora actual en el formato de    12 horas HH:MM:SS
              \@     la hora actual en el formato de 12  horas  con  indicador
                     AM/PM
              \u     el nombre de usuario del usuario en curso
              \v     la versin de bash (e.g., 2.00)
              \V     la  distribucin de bash, versin + nivel de parcheo (e.g.,
                     2.00.0)
              \w     el directorio de trabajo en curso
              \W     el nombre base del directorio de trabajo
              \!     el nmero de historia de esta orden
              \#     el nmero de orden de esta orden
              \$     si el UID efectivo es 0 (el super-usuario), un #,  si  no
                     un $
              \nnn   el carcter correspondiente al nmero 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  nmero de orden y el nmero de historia son usualmente diferentes: el
       nmero de historia de una orden es su posicin en la lista  de  historia,
       que  puede incluir rdenes restauradas desde el fichero de historia (vea
       HISTORIA ms abajo), mientras que el nmero de orden es la posicin en  la
       secuencia  de rdenes ejecutadas durante la sesin de shell actual.  Des-
       pus de que la cadena es descodificada, se expande mediante la  expansin
       de  parmetros,  sustitucin  de  rdenes, expansin aritmtica, expansin de
       cadena, y eliminacin de comillas, sujeta al valor de la opcin del shell
       promptvars  (vea  la  descripcin de la orden shopt bajo RDENES INTERNAS
       DEL SHELL ms adelante).

READLINE

       Readline (leer lnea) es la biblioteca  que  maneja  la  lectura  de  la
       entrada cuando se usa un shell interactivo, a menos que se haya dado la
       opcin --noediting cuando se llam.  De forma predeterminada, las  rdenes
       de  edicin  de la lnea son similares a las de emacs.  Tambin se dispone
       de una interfaz de edicin de lneas al estilo de vi.  Para desactivar la
       edicin  de lneas una vez que el shell est en ejecucin, use las opciones
       +o emacs o +o vi de la orden interna set (vea RDENES INTERNAS DEL SHELL
       abajo).

   Notacin de Readline
       En  esta  seccin,  se emplea la notacin al estilo de emacs para denotar
       las teclas.  Las teclas de control se representan por medio de C-tecla;
       as, C-n significa Control-N. De forma similar, las teclas meta (Alt) se
       representan con M-tecla, de forma que M-x significa Meta-X. (En  tecla-
       dos  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  combinacin  M-C-x  quiere  decir ESC-Control-x, o pulsar la
       tecla Escape y luego mantener presionada la tecla Control  mientras  se
       pulsa la tecla x.)

       Las  rdenes  de  readline  pueden recibir argumentos numricos que actan
       normalmente como un nmero de repeticin.  Algunas veces, empero, lo  que
       tiene  significado  es el signo del argumento. Pasar un argumento nega-
       tivo a una orden que acta en la direccin adelante (p.  ej.,  kill-line)
       hace  que  esa  orden  acte  en la direccin contraria, hacia atrs.  Las
       rdenes cuyo comportamiento con argumentos se desve de esto se sealan ms
       adelante.

       Cuando  una orden se describe como que corta texto, el texto borrado se
       guarda para una posible futura recuperacin (pegado). El  texto  cortado
       se guarda en un anillo de corte. Cortes consecutivos hacen que el texto
       se acumule en una unidad, que puede pegarse toda de golpe, de una  vez.
       Las rdenes que no cortan texto separan los trozos de texto en el anillo
       de corte.

   Inicio de Readline
       Readline se personaliza poniendo rdenes en un  fichero  de  inicio  (el
       fichero  inputrc).   El  nombre de este fichero se toma del valor de la
       variable INPUTRC.  Si esta variable no est definida, el valor predeter-
       minado 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.  Slo se permiten unas pocas con-
       strucciones bsicas en el fichero de inicio de readline.  Las  lneas  en
       blanco  no  se  tienen en cuenta.  Las lneas que comiencen con un # son
       comentarios.  Las lneas que comiencen con un $  indican  construcciones
       condicionales.   Otras  lneas  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 aadir
       sus propias rdenes y definiciones.

       Por ejemplo, el poner

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

       Se  reconocen  los  siguientes nombres simblicos de caracteres: RUBOUT,
       DEL, ESC, LFD, NEWLINE, RET, RETURN, SPC, SPACE, y TAB.  Adems  de  los
       nombres  de rdenes, readline permite que se enlace una tecla cualquiera
       a una cadena de caracteres que se inserta cuando la tecla se pulse (una
       macro).

   Definiciones de teclas de Readline
       La  sintaxis  para  controlar  las definiciones de teclas en el fichero
       inputrc es simple.  Todo lo que se requiere es el nombre de la orden  o
       el  texto  de  una  macro  y  una  secuencia de teclas con la cual debe
       enlazarse. El nombre se puede especificar en una de dos formas: como un
       nombre simblico de tecla, posiblemente con prefijos Meta- o Control-, o
       como una secuencia de teclas.  Cuando se use la forma nombre-tecla:nom-
       bre-funcin  o  macro,  nombre-tecla es el nombre de una tecla en ingls.
       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 funcin  universal-argument,
       M-DEL  se  vincula a la funcin backward-kill-word, y C-o se define como
       que se ejecute la macro expresada en la parte derecha (esto es,  inser-
       tar el texto > salida en la lnea).

       En la segunda forma, "sectecla":nombre-funcin o macro, sectecla difiere
       de la nombre-tecla de antes en que  las  cadenas  que  representan  una
       secuencia  entera  de teclas pueden especificarse poniendo la secuencia
       entre comillas dobles. As se pueden utilizar algunas teclas  de  escape
       al estilo de GNU Emacs, como en el siguiente ejemplo.

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

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

       Adems 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 atrs
              \d     borrado
              \f     salto de pgina
              \n     salto de lnea
              \r     retorno de carro
              \t     tabulador horizontal
              \v     tabulador vertical
              \nnn   el  carcter  cuyo  cdigo  es el valor octal nnn (de 1 a 3
                     dgitos)
              \xnnn  el carcter cuyo cdigo es el valor hexadecimal nnn (de 1 a
                     3 dgitos)

       Cuando se mete el texto de una macro, se deben emplear comillas simples
       o dobles para indicar una definicin de macro.  El texto no  entrecomil-
       lado  se  supone  un  nombre  de funcin.  En el cuerpo de la macro, los
       escapes con barra inversa de arriba se expanden.  La barra inversa pro-
       teger  a cualquier otro carcter 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 edicin puede cambiarse
       durante una sesin interactiva empleando la opcin -o de la orden interna
       set (vea RDENES INTERNAS DEL SHELL abajo).

   Variables de Readline
       Readline  tiene variables que se pueden usar para personalizar ms an 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 val-
       ores On u Off.  Las variables y sus valores predeterminados son:

       bell-style (audible)
              Controla qu pasa cuando readline quiere tocar el pito de la ter-
              minal.   Si se define como none, readline nunca toca el pito. Si
              se pone a visible,  readline  usa  una  alerta  visible  si  est
              disponible.   Si  se  pone  como audible, readline intenta hacer
              sonar el pito de la terminal.
       comment-begin (``#'')
              La cadena que se inserta cuando se ejecuta la orden de  readline
              insert-comment.  Esta orden est enlazada a M-# en modo emacs y a
              # en modo vi.
       completion-ignore-case (Off)
              Si se pone a On, readline realiza la concordancia  y  terminacin
              de  nombres de ficheros sin importar si las letras son maysculas
              o minsculas.
       completion-query-items (100)
              Esto determina cundo se pregunta al usuario  si  quiere  ver  el
              nmero  de  terminaciones  posibles generadas por la orden possi-
              ble-completions.  Puede ponerse a cualquier valor entero mayor o
              igual  a  cero. Si el nmero 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 ter-
              minal.
       convert-meta (On)
              Si se pone a On, readline convertir caracteres con el octavo bit
              a  uno  a una secuencia de teclas ASCII poniendo el octavo bit a
              cero y prefijando un carcter Esc (en efecto, usando Esc como  el
              prefijo meta).
       disable-completion (Off)
              Si se pone a On, readline inhibir la terminacin de palabras. Los
              caracteres para la terminacin se insertarn en la lnea 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 intentar activar el teclado auxil-
              iar cuando se llame. Algunos sistemas necesitan esto para  acti-
              var las teclas de flechas de cursor.
       expand-tilde (Off)
              Si se pone a on, la expansin de tilde se realiza cuando readline
              intenta la terminacin de palabras.
       horizontal-scroll-mode (Off)
              Cuando se pone a On, esto hace que readline use  una  sola  lnea
              para  pantalla, haciendo rodar la entrada horizontalmente en una
              sola lnea de la pantalla cuando sta es ms larga que  la  anchura
              de la pantalla; en lugar de seguir en la lnea siguiente.
       input-meta (Off)
              Si  se  pone a On, readline habilitar la entrada de 8 bits (esto
              es, no pondr a cero el octavo bit de los  caracteres  que  lea),
              sin  importar  lo  que  la  terminal  diga que admite. El nombre
              meta-flag es un sinnimo para esta variable.
       keymap (emacs)
              Establece el mapa de teclado actual para readline.  El  conjunto
              de  nombres de mapas de teclado vlidos 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  tam-
              bin afecta al mapa de teclado predeterminado.
       mark-directories (On)
              Si  se  pone a On, los nombres de directorios completados tendrn
              una barra inclinada aadida al final.
       mark-modified-lines (Off)
              Si se pone a On, las lneas de historia que  hayan  sido  modifi-
              cadas se muestran con un asterisco precedindolas (*).
       output-meta (Off)
              Si  se  pone  a On, readline mostrar 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 mostrar terminaciones con concordan-
              cias clasificadas horizontalmente en orden alfabtico, en vez  de
              verticalmente.
       show-all-if-ambiguous (Off)
              Esto altera el comportamiento predeterminado de las funciones de
              terminacin. Si se pone a on, las palabras que tienen ms  de  una
              posible  terminacin  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 aade un carcter que represente  un  tipo  de
              fichero segn lo que devuelve stat(2) cuando se listan las termi-
              naciones posibles.

   Construcciones condicionales de Readline
       Readline implementa una facilidad similar en espritu a las caractersti-
       cas  de  compilacin  condicional del preprocesador de C que permite que
       las definiciones de teclas y variables se realicen en funcin de pruebas
       o condiciones. Hay cuatro directivas del analizador que se usan.

       $if    La construccin $if permite que las definiciones se hagan segn el
              modo de edicin, la terminal en uso, o la aplicacin que haga  uso
              de readline.  El texto de la condicin se extiende hasta el final
              de la lnea; no se requieren caracteres para aislarla.

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

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

              application
                     La construccin application se emplea para incluir defini-
                     ciones especficas de la aplicacin. Cada programa que  usa
                     la  biblioteca readline define el nombre de la aplicacin,
                     y en un fichero de arranque se puede comprobar si  existe
                     un  valor  en  particular.   Esto  se  podra emplear para
                     enlazar secuencias de teclas a funciones  tiles  para  un
                     programa  especfico. Por ejemplo, la orden siguiente aade
                     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 rdenes en esta rama de la directiva $if se  ejecutan  si  la
              comprobacin falla.

       $include
              Esta  directiva  toma como argumento un solo nombre de fichero y
              lee rdenes y definiciones de ese fichero. Por ejemplo, la  sigu-
              iente directiva leera de /etc/inputrc:

              $include  /etc/inputrc

   Bsquedas
       Readline  proporciona  rdenes  para  buscar  a  travs de la historia de
       rdenes (vea HISTORIA abajo) lneas que contengan  una  cadena  especifi-
       cada.  Hay dos modos de bsqueda: incremental y no incremental.

       La bsqueda incremental comienza antes de que el usuario haya acabado de
       teclear la cadena a buscar.  Tan pronto como se teclea cada carcter  de
       la  cadena de bsqueda, readline muestra la siguiente entrada de la his-
       toria que concuerde con la cadena  que  se  est  tecleando  hasta  este
       punto.  Una  bsqueda  incremental  requiere solamente tantos caracteres
       como se necesiten para encontrar la entrada deseada en la lista de his-
       toria.  El carcter Escape se emplea para terminar una bsqueda incremen-
       tal.  Control-J tambin dar por terminada la bsqueda.   Control-G  parar
       abruptamente  una  bsqueda  incremental  y  restaurar la lnea original.
       Cuando la bsqueda se termine, la entrada de la historia que  contuviera
       la  cadena de bsqueda se convierte en la lnea en curso.  Para encontrar
       otras entradas en la lista de historia, teclee Control-S  o  Control-R,
       segn  sea apropiado.  Esto buscar hacia atrs o  adelante en la historia
       la siguiente entrada concordante con  la  cadena  de  bsqueda  tecleada
       hasta  este  punto.   Cualquier otra secuencia de teclas asociada a una
       orden de readline terminar la bsqueda y ejecutar esa orden.  Por  ejem-
       plo,  una  nueva-lnea terminar la bsqueda y aceptar la lnea, ejecutando
       de ese modo la orden de la lista de historia.

       Las bsquedas no incrementales leen la cadena de bsqueda entera antes de
       empezar  a  buscar  en  las lneas de la lista de historia. La cadena de
       bsqueda puede ser tecleada por el usuario o ser parte de los contenidos
       de la lnea en curso.

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

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

   rdenes para manipular la lista de historia
       accept-line (Nueva-lnea, Intro)
              Aceptar la lnea sin importar dnde est el cursor. Si esta lnea no
              est  vaca,  aadirla  a  la  lista  de historia de acuerdo con el
              estado de la variable HISTCONTROL.  Si la lnea es una de las  de
              la historia, modificada, entonces restaurar la lnea de la histo-
              ria a su estado original.
       previous-history (C-p)
              Obtener la orden anterior de la  lista  de  historia,  movindose
              hacia atrs en ella.
       next-history (C-n)
              Obtener  la  orden  siguiente de la lista de historia, movindose
              hacia delante en ella.
       beginning-of-history (M-<)
              Mover a la primera lnea de la lista de historia.
       end-of-history (M->)
              Mover al final de la historia de entrada; esto es, la  lnea  que
              est siendo introducida en la actualidad.
       reverse-search-history (C-r)
              Buscar  hacia  atrs  empezando  en  la lnea en curso y movindose
              `arriba' a travs de la lista de historia si es  necesario.  Esta
              bsqueda es incremental.
       forward-search-history (C-s)
              Buscar hacia adelante empezando en la linea en curso y movindose
              `abajo' a travs de la lista de historia si  es  necesario.  Esta
              bsqueda es incremental.
       non-incremental-reverse-search-history (M-p)
              Buscar  hacia  atrs a travs de la lista de historia empezando en
              la lnea en curso empleando una bsqueda  no  incremental  de  una
              cadena suministrada por el usuario.
       non-incremental-forward-search-history (M-n)
              Buscar  hacia  delante a travs de la lista de historia empezando
              en la lnea en curso empleando una bsqueda no incremental de  una
              cadena suministrada por el usuario.
       history-search-forward
              Buscar  hacia delante a travs de la lista de historia una cadena
              de caracteres entre el comienzo de la lnea en curso y la posicin
              actual del cursor (el punto). Esta bsqueda no es incremental.
       history-search-backward
              Buscar  hacia atrs a travs de la lista de historia una cadena de
              caracteres entre el comienzo de la lnea en curso  y  la  posicin
              actual del cursor (el punto). Esta bsqueda no es incremental.
       yank-nth-arg (M-C-y)
              Insertar  el  primer argumento de la orden anterior (normalmente
              la segunda palabra de la lnea previa) en el  punto  (la  posicin
              actual  del cursor). Con un argumento n, insertar la n-sima pal-
              abra 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 ltimo argumento de la orden anterior (la ltima  pal-
              abra  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 atrs en la lista de his-
              toria, insertando cada vez el ltimo argumento de cada lnea.
       shell-expand-line (M-C-e)
              Expandir la lnea como hace el shell. Esto realiza la expansin de
              alias y de historia as como todas las expansiones de palabra del
              shell. Vea EXPANSIN DE HISTORIA abajo para una descripcin de  la
              expansin de historia.
       history-expand-line (M-^)
              Realizar  la  expansin  de  historia  en  la lnea en curso.  Vea
              EXPANSIN DE HISTORIA abajo para una descripcin de la expansin de
              historia.
       magic-space
              Efectuar  la expansin de historia en la lnea en curso e insertar
              un espacio.  Vea EXPANSIN DE HISTORIA abajo para una  descripcin
              de la expansin de historia.
       alias-expand-line
              Realizar  la  expansin  de alias en la lnea en curso.  Vea ALIAS
              arriba para una descripcin de la expansin de alias.
       history-and-alias-expand-line
              Realizar la expansin de historia y alias en la lnea en curso.
       insert-last-argument (M-., M-_)
              Un sinnimo para yank-last-arg.
       operate-and-get-next (C-o)
              Aceptar la lnea en curso para la  ejecucin  y  obtener  la  lnea
              siguiente  relativa a la actual desde la lista de historia, para
              la edicin. Cualquier argumento no se tiene en cuenta.

   rdenes para cambiar el texto
       delete-char (C-d)
              Borrar el carcter bajo el cursor. Si el punto est  al  principio
              de  la  lnea,  no  hay caracteres en la lnea, y el ltimo carcter
              tecleado no estaba asociado  a  delete-char,  entonces  devolver
              EOF.
       backward-delete-char (<X], DEL)
              Borrar el carcter tras el cursor. Cuando se da un argumento num-
              rico, guardar el texto borrado en el anillo de corte.
       quoted-insert (C-q, C-v)
              Aadir el siguiente carcter tecleado a la lnea tal  cual.  As  es
              como se pueden insertar caracteres como C-q, por ejemplo.
       tab-insert (C-v TAB)
              Insertar un carcter de tabulacin.
       self-insert (a, b, A, 1, !, ...)
              Insertar el carcter tecleado.
       transpose-chars (C-t)
              Arrastrar  el  carcter  antes  del punto hacia adelante sobre el
              carcter en el punto. El punto se mueve adelante  tambin.  Si  el
              punto est al final de la lnea, entonces transpone los dos carac-
              teres 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 tambin sobre esa pal-
              abra.
       upcase-word (M-u)
              Poner en maysculas 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 minsculas 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 mayscula la inicial de la palabra en curso (o la  sigu-
              iente).   Con  un  argumento negativo, pone la anterior, pero no
              mueve el punto.

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

       kill-whole-line
              Cortar todos los caracteres de la lnea en  curso,  sin  importar
              dnde est 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 for-
              ward-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 lmite 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 (posicin registrada
              del cursor). Este texto se conoce como la regin.
       copy-region-as-kill
              Copiar el texto en la regin al anillo de corte.
       copy-backward-word
              Copiar la palabra  antes  del  punto  al  bfer  de  corte.   Los
              extremos de palabras son los mismos que con backward-word.
       copy-forward-word
              Copiar  la  palabra  que  sigue  al punto al bfer 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 bfer  en  donde  est  el
              cursor.
       yank-pop (M-y)
              Rotar en el anillo de corte, y pegar la nueva cima. Slo funciona
              tras un yank o yank-pop.

   Argumentos numricos
       digit-argument (M-0, M-1, ..., M--)
              Aadir este dgito al argumento, acumulndolo, o  comenzar  con  un
              nuevo argumento.  M-- empieza un argumento negativo.
       universal-argument
              sta es otra forma de especificar un argumento.  Si esta orden se
              hace seguir de uno o ms dgitos, opcionalmente con un signo menos
              inicial,  estos  dgitos  definen  el  argumento.   Si a la orden
              siguen dgitos, ejecutar de nuevo universal-argument finaliza  el
              argumento  numrico,  pero si no, no se tiene en cuenta.  Como un
              caso especial, si a esta orden sigue inmediatamente  un  carcter
              que  no es ni un dgito ni un signo menos, el nmero del argumento
              para la siguiente orden se multiplica por cuatro.  El nmero  del
              argumento  es  inicialmente uno, as que ejecutar esta funcin por
              primera vez hace que el nmero  del  argumento  sea  cuatro,  una
              segunda vez lo hace diecisis, y as sucesivamente.

   Terminacin
       complete (TAB)
              Intentar  realizar  una  terminacin  del  texto antes del punto.
              Bash intenta la terminacin 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 anfitrin  (si
              el  texto  comienza con @), o como una orden (incluyendo alias y
              funciones), por este  orden.  Si  nada  de  esto  concuerda,  se
              intenta la terminacin 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
              habran 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 ejecucin 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 atrs
              en la lista.  Esta orden est pensada para ser  asociada  a  TAB,
              pero no est asociada a ninguna tecla de forma predeterminada.
       complete-filename (M-/)
              Intentar la terminacin 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,
              tratndolo como un nombre de fichero.
       complete-username (M-~)
              Intentar la terminacin del texto antes del punto, tratndolo como
              un nombre de usuario.
       possible-username-completions (C-x ~)
              Listar las posibles terminaciones del  texto  antes  del  punto,
              tratndolo como un nombre de usuario.
       complete-variable (M-$)
              Intentar la terminacin del texto antes del punto, tratndolo como
              una variable del shell.
       possible-variable-completions (C-x $)
              Listar las posibles terminaciones del  texto  antes  del  punto,
              tratndolo como una variable del shell.
       complete-hostname (M-@)
              Intentar la terminacin del texto antes del punto, tratndolo como
              un nombre de computador anfitrin.
       possible-hostname-completions (C-x @)
              Listar las posibles terminaciones del  texto  antes  del  punto,
              tratndolo como un nombre de computador anfitrin.
       complete-command (M-!)
              Intentar la terminacin del texto antes del punto, tratndolo como
              un nombre de orden. La terminacin de orden intenta hacer concor-
              dar  el  texto  con  alias,  palabras  reservadas, funciones del
              shell, rdenes  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,
              tratndolo como un nombre de orden.
       dynamic-complete-history (M-TAB)
              Intentar la terminacin del texto antes del punto, comparando  el
              texto  con  lneas de la lista de historia buscando concordancias
              para la terminacin.
       complete-into-braces (M-{)
              Efectuar la terminacin de nombres  de  ficheros  y  devolver  la
              lista  de terminaciones posibles encerrada entre llaves de forma
              que la lista est disponible al shell  (vea  Expansin  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 definicin.
       call-last-kbd-macro (C-x e)
              Reejecutar  la ltima macro de teclado definida, haciendo que los
              caracteres en la macro aparezcan como si se hubieran pulsado  en
              el teclado.

   Miscelnea
       re-read-init-file (C-x C-r)
              Leer  los  contenidos  del  fichero  inputrc,  e incorporar cua-
              lesquiera definiciones de teclas o asignaciones de variables que
              se hubieran encontrado en l.
       abort (C-g)
              Terminar  abruptamente  la  orden  de edicin en curso y tocar el
              pito de la terminal (segn el establecimiento de bell-style).
       do-uppercase-version (M-a, M-b, M-x, ...)
              Si el carcter meta x est en minscula, ejecutar la orden que  est
              asociada al carcter correspondiente en mayscula.
       prefix-meta (ESC)
              Convertir  en  meta  el  siguiente  carcter  tecleado.  ESC f es
              equivalente a Meta-f.
       undo (C-_, C-x C-u)
              Deshacer de forma incremental, recordado separadamente para cada
              lnea.
       revert-line (M-r)
              Deshacer todos los cambios hechos a esta lnea. Esto es como eje-
              cutar la orden undo las veces suficientes como para devolver  la
              lnea a su estado inicial.
       tilde-expand (M-~)
              Efectuar la expansin de tilde en la palabra en curso.
       set-mark (C-@, M-<espacio>)
              Establecer  la  marca  en el punto actual. Si se da un argumento
              numrico, la marca se establece en esa posicin.
       exchange-point-and-mark (C-x C-x)
              Cambia el punto con la marca. La posicin actual  del  cursor  se
              pone  en  la  posicin guardada, y la vieja posicin del cursor se
              guarda como la marca.
       character-search (C-])
              Se lee un carcter y el punto se mueve a la siguiente  ocurrencia
              de  ese  carcter.  Un  argumento  numrico  negativo  hace que la
              bsqueda sea de las ocurrencias anteriores.
       character-search-backward (M-C-])
              Se lee un carcter y el punto se mueve a la  anterior  ocurrencia
              de  ese  carcter.  Un  argumento  numrico  negativo  hace que la
              bsqueda sea de las ocurrencias siguientes.
       insert-comment (M-#)
              El valor de la variable de readline comment-begin se inserta  al
              principio  de  la  lnea en curso, y la lnea se acepta como si se
              hubiera tecleado Intro (nueva-lnea). Esto convierte la  lnea  en
              curso en un comentario del shell.
       glob-expand-word (C-x *)
              La  palabra  antes  del  punto  se  trata  como un patrn para la
              expansin 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 habran sido generadas por
              glob-expand-word y redibujar la lnea.
       dump-functions
              Mostrar todas las funciones y sus asociaciones de teclas  en  el
              flujo  de  salida de readline. Si se da un argumento numrico, la
              salida se formatea de tal modo que  pueda  formar  parte  de  un
              fichero inputrc.
       dump-variables
              Mostrar  todas  las  variables  de  readline a las que se puedan
              asignar valores, y stos, en el flujo de salida de  readline.  Si
              se  da un argumento numrico, 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 numrico, la salida se formatea de tal man-
              era que pueda formar parte de un fichero inputrc.
       display-shell-version (C-x C-v)
              Mostrar  informacin  de  versin acerca de la instancia actual de
              bash.

HISTORIA

       Cuando se habilita la opcin -o history de  la  orden  interna  set,  el
       shell  da  acceso a la historia de rdenes, la lista de rdenes tecleadas
       con anterioridad. El texto de los ltimos HISTSIZE mandatos (por omisin,
       500)  se  guarda en una lista de historia. El shell almacena cada orden
       en la lista de historia antes de la expansin de parmetros  y  variables
       (vea  EXPANSIN  arriba)  pero  tras  efectuar  la expansin de historia,
       sujeta a los valores de las variables del shell HISTIGNORE  e  HISTCON-
       TROL.   En el arranque, la historia se inicia a partir del fichero nom-
       brado en la variable HISTFILE (por omisin  ~/.bash_history).   HISTFILE
       se  trunca, si es necesario, para contener no ms de HISTFILESIZE lneas.
       Cuando un shell interactivo  termina,  las  ltimas  HISTSIZE  lneas  se
       copian  de  la  lista  de  historia  a HISTFILE.  Si la opcin del shell
       histappend est activa (vea la descripcin de shopt bajo RDENES  INTERNAS
       DEL  SHELL  ms adelante), las lneas se aaden al fichero de historia; si
       no, el fichero  de  historia  se  sobreescribe.   Si  HISTFILE  no  est
       definido,  o si no se puede escribir en el fichero de historia, la his-
       toria no se guarda. Tras guardar la historia, el fichero de historia se
       trunca  para  contener  no ms de HISTFILESIZE lneas. Si HISTFILESIZE no
       est definido, no se trunca.

       La orden interna  fc  (vea  RDENES  INTERNAS  DEL  SHELL  abajo)  puede
       emplearse  para listar o editar y re-ejecutar una porcin 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 edicin de lneas de  rdenes,  estn  disponibles  las
       rdenes  de  bsqueda en cada modo de edicin que proporcionan acceso a la
       lista de historia.

       El shell permite el control sobre qu rdenes 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 rdenes intro-
       ducidas.   La  opcin  del shell cmdhist, si est habilitada, hace que el
       shell intente guardar cada lnea de una orden  multi-lnea  en  la  misma
       entrada de la historia, aadiendo punto y comas donde sea necesario para
       preservar la correccin sintctica.  La opcin del shell lithist hace  que
       el  shell guarde la orden con saltos de lnea empotrados en vez de punto
       y comas. Vea la descripcin de la orden interna shopt  abajo  en  RDENES
       INTERNAS  DEL  SHELL  para  informacin  sobre  cmo  establecer y anular
       opciones del shell.

EXPANSIN DE HISTORIA

       El shell admite una caracterstica de expansin de historia que es  pare-
       cida  a la expansin de historia en csh.  Esta seccin describe qu carac-
       tersticas sintcticas estn disponibles. Esta caracterstica  est  habili-
       tada de forma predeterminada en shells interactivos, y puede ser desac-
       tivada mediante la opcin +H de la orden interna set (vea RDENES  INTER-
       NAS  DEL  SHELL  abajo).  Los  shells  no  interactivos  no realizan la
       expansin de la historia de forma predeterminada.

       Las expansiones de historia introducen palabras desde la lista de  his-
       toria en el flujo de entrada, facilitando as la repeticin de rdenes, la
       insercin de argumentos de una orden anterior en la lnea de  entrada  en
       curso, o la correccin rpida de errores en una orden anterior.

       La  expansin  de  historia se realiza inmediatamente tras la lectura de
       una lnea completa, antes de que el shell la divida en  palabras.  Tiene
       lugar  en dos fases.  En la primera se determina qu lnea de la lista de
       historia hay que emplear durante  la  sustitucin.   En  la  segunda  se
       seleccionan  porciones  de  esa lnea para su inclusin en la actual.  La
       lnea seleccionada desde la historia es el evento, y la  porcin  de  esa
       lnea  sobre  la que se acta son palabras.  Se dispone de varios modifi-
       cadores para manipular las palabras seleccionadas. La lnea 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 aparicin del carcter de expansin de historia, que es por  omisin
       !.   Slo las barras inversas (\) y las comillas simples pueden proteger
       al carcter de expansin de historia.

       Se pueden emplear ciertas opciones que se ponen con  la  orden  interna
       shopt para cambiar el comportamiento de la expansin de historia.  Si la
       opcin del shell histverify est activa (vea la descripcin  de  la  orden
       interna shopt), y se est usando readline, las sustituciones de historia
       no se pasan inmediatamente al analizador del shell.  En vez de eso,  la
       lnea expandida se vuelve a cargar en el bfer de edicin de readline para
       una modificacin posterior.  Si se est usando readline y  la  opcin  del
       shell  histreedit  est  activada, una sustitucin de historia fallida se
       volver a cargar en el bfer de edicin de readline para su correccin.  La
       opcin  -p  de la orden interna history se puede emplear para ver qu har
       una expansin de historia antes de usarse.  La  opcin  -s  de  la  orden
       interna history se puede emplear para aadir rdenes al final de la lista
       de historia sin ejecutarlas realmente, de  modo  que  estn  disponibles
       para rellamadas posteriores.

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

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

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

       0 (cero)
              La  palabra  nmero  0.  Para  el  shell, sta es la palabra de la
              orden.
       n      La n-sima palabra.
       ^      El primer argumento. Esto es, la palabra nmero 1.
       $      El ltimo argumento.
       %      La palabra  que  concordaba  con  la  ms  reciente  bsqueda  con
              `?cadena?'.
       x-y    Un rango de palabras; `-y' abrevia `0-y'.
       *      Todas  las  palabras  menos la nmero cero. Esto es un sinnimo de
              `1-$'.  No es un error emplear * si slo hay una  palabra  en  el
              evento; en este caso se devuelve la cadena vaca.
       x*     Abreviatura de x-$.
       x-     Abrevia x-$ como x*, pero omite la ltima palabra.

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

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

       h      Quitar un componente final de nombre de fichero, dejando slo  la
              parte izquierda.
       t      Quitar  todos  los primeros componentes de un nombre de fichero,
              dejando la ltima parte.
       r      Quitar un sufijo final de la forma .xxx, dejando el nombre base.
       e      Quitar todo salvo el sufijo final.
       p      Mostrar la nueva orden pero no ejecutarla.
       q      Entrecomillar las palabras sustituidas, escapando de posteriores
              sustituciones.
       x      Entrecomillar las palabras sustituidas como con q,  pero  romper
              entre palabras en los blancos y saltos de lnea.
       s/viejo/nuevo/
              Substituir  nuevo  por la primera ocurrencia de viejo en la lnea
              de evento. Se puede emplear cualquier delimitador en vez  de  /.
              El  delimitador  final  es opcional si es el ltimo carcter de la
              lnea de evento. El delimitador puede entrecomillarse en viejo  y
              nuevo  con  una  sola  barra  inclinada inversa. Si & aparece en
              nuevo, se reemplaza por viejo.  Una sola barra inversa  proteger
              el  &. Si viejo est vaco, se pone al ltimo viejo substituido, o,
              si no tuvo lugar ninguna sustitucin de  historia  previa,  a  la
              ltima cadena en una bsqueda del tipo !?cadena[?].
       &      Repetir la sustitucin anterior.
       g      Hace que los cambios se apliquen sobre la lnea entera de evento.
              Esto se emplea en conjuncin con `:s' (p.ej., `:gs/viejo/nuevo/')
              o `:&'.  Si se usa con `:s', cualquier delimitador se puede uti-
              lizar en lugar de /, y el delimitador final es opcional si es el
              ltimo carcter de la linea de evento.

RDENES INTERNAS DEL SHELL

       A  menos  que se diga otra cosa, cada orden interna documentada en esta
       seccin que acepte opciones precedidas por - tambin acepta -- para  sig-
       nificar el final de las opciones.
        : [argumentos]
              Sin  efecto;  la orden no hace nada ms que expandir argumentos y
              realizar cualquier  redireccin  que  se  haya  especificado.  Se
              devuelve un cdigo de salida cero.

        .  nombre-fichero [argumentos]
       source nombre-fichero [argumentos]
              Lee  y  ejecuta rdenes desde nombre-fichero en el entorno actual
              del shell y devuelve el estado de salida de la ltima orden  eje-
              cutada  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 encontr el fichero en
              PATH.  Si la opcin sourcepath de  la  orden  interna  shopt  est
              desactivada,  la  bsqueda en PATH no se realiza.  Si se suminis-
              tran argumentos, se convierten  en  los  parmetros  posicionales
              cuando  se  ejecuta  nombre-fichero.  Si no, los parmetros posi-
              cionales permanecen inalterados.  El estado de retorno es el  de
              la  ltima  orden  de  dentro del guin (0 si no se ejecut ninguna
              orden), y `falso' si nombre-fichero no se encontr o no  se  pudo
              leer.

       alias [-p] [nombre[=valor] ...]
              Alias sin argumentos o con la opcin -p muestra la lista de alias
              en la forma alias nombre=valor en la salida estndar.  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  sustitucin de alias cuando el alias se
              expande.  Para cada nombre en la lista de argumentos para el que
              no  se suministre un valor, se muestran el nombre y el valor del
              alias.  Alias devuelve `verdad' a menos que se d un nombre  para
              el que no se haya definido un alias.

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

       bind [-m mapatecl] [-lpsvPSV]
       bind [-m mapatecl] [-q funcin] [-u funcin] [-r sectecl]
       bind [-m mapatecl] -f nombre-fichero
       bind [-m mapatecl] sectecl:nombre-funcin
              Muestra  las  asociaciones actuales de readline de teclas y fun-
              ciones, o asocia una secuencia de teclas a una funcin o macro de
              readline.   La  sintaxis  aceptada  es idntica a la de .inputrc,
              pero cada asociacin 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-stan-
                     dard.
              -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 ledas.
              -P     Lista los nombres de funciones de readline actuales y las
                     asociaciones.
              -v     Muestra  los  nombres de variables de readline y los val-
                     ores de tal manera que puedan volver a ser ledas.
              -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 ledas 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 funcin
                     Pregunta qu teclas llaman a la funcin especificada.
              -u funcin
                     Desenlaza todas las teclas asociadas  a  la  funcin  nom-
                     brada.
              -r sectecl
                     Borra cualquier asociacin actual de sectecl.

              El  valor devuelto es 0 a menos que se d una opcin 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
              nmero de bucles, se sale de todos. El  valor  devuelto  es  0  a
              menos  que el shell no est ejecutando un bucle cuando se ejecute
              break.

       builtin orden-interna [argumentos]
              Ejecuta la orden interna del shell  especificada,  pasndole  los
              argumentos,  y devuelve su estado de salida.  Esto es til cuando
              se define una funcin cuyo nombre  es  el  mismo  que  una  orden
              interna  del  shell,  reteniendo  la  funcionalidad de esa orden
              interna dentro de la funcin.  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 bsqueda del directorio que
              contenga dir.  Los nombres de directorios alternativos en CDPATH
              se  separan  por dos puntos (:). Un nombre de directorio vaco 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 opcin -P  dice  que  se  va  a  emplear  la
              estructura fsica de directorios en vez de seguir enlaces simbli-
              cos (vea tambin la opcin -P de la orden interna set);  la  opcin
              -L hace que se sigan siempre los enlaces simblicos. El argumento
              - es equivalente a $OLDPWD.  El valor de retorno es `verdad'  si
              el  directorio  de  trabajo  se  cambi con xito; `falso' en otro
              caso.

       command [-pVv] orden [arg ...]
              Ejecuta orden con args suprimiendo la  bsqueda  normal  de  fun-
              ciones  del  shell.  Slo  se ejecutarn rdenes incorporadas en el
              shell o programas encontrados en la variable PATH.  Si se da  la
              opcin  -p,  se busca la orden emplendose un valor predeterminado
              para PATH que garantiza encontrar todas las  utilidades  estndar
              del  sistema.   Si  se  da  la  opcin -V o la -v, se muestra una
              descripcin de orden.  La opcin -v muestra una sola  palabra  que
              indica  la orden o nombre de fichero ejecutable empleado para la
              llamada a orden; la opcin -V produce una descripcin algo ms pro-
              lija.   Si se dan las opciones -V o -v, el estado de salida es 0
              si orden se encontr, y 1 si no. Si no se da ninguna de  las  dos
              opciones  y  ocurri un error u orden no se encontr, el estado de
              salida es 127. Si no, el estado  de  salida  de  command  es  el
              estado de salida de orden.

       continue [n]
              Reanuda  la  siguiente  iteracin  del bucle for, while, until, o
              select donde estamos.  Si se especifica n, la reanudacin  es  en
              el  n-simo bucle que nos rodea.  n debe ser >= 1.  Si n es mayor
              que el nmero de bucles que nos rodean, se reanuda  el  bucle  ms
              exterior  (el  de ``ms alto nivel''). El valor de retorno es 0 a
              menos que el shell no est 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  opcin  -p
              mostrar  los  atributos  y  valores  de  cada nombre.  Cuando se
              emplee -p, otras opciones que se hayan  dado  no  se  tienen  en
              cuenta.   La  opcin -F inhibe la presentacin de las definiciones
              de funciones; slo se muestran sus nombres y atributos.  La opcin
              -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 evalu-
                     acin  aritmtica  (vea  EVALUACIN  ARITMTICA)  cuando a la
                     variable se le asigne un valor.
              -r     Hace que nombres sean de lectura exclusiva.  A estos nom-
                     bres  no  se les pueden asignar valores por medio de sub-
                     siguientes asignaciones, ni se puede anular su  definicin
                     con unset.
              -x     Marca  nombres para la exportacin a rdenes subsecuentes a
                     travs del entorno.

              Usar `+' en vez de `-' desactiva el atributo  en  vez  de  acti-
              varlo,  con  la  excepcin  de  que  no  puede  emplearse +a para
              destruir una variable vector. Cuando se usa en una funcin,  hace
              local cada nombre, como con la orden interna local.  El valor de
              retorno es 0 a menos que se  encuentre  una  opcin  invlida,  se
              intente  definir  una funcin 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 asignacin compuesta (vea Vectores arriba), uno de los nombres
              no  sea un nombre vlido de variable del shell, se intente desac-
              tivar el estado de lectura exclusiva para una  variable  de  slo
              lectura,  se  intente  desactivar  el  estado de vector para una
              variable vector, o se intente mostrar una  funcin  no  existente
              con -f.

       dirs [-clpv] [+n] [-n]
              Sin opciones, muestra la lista de directorios actualmente recor-
              dados.  La forma predeterminada de mostrarlos  es  en  una  sola
              lnea con los nombres de directorios separados por espacios.  Los
              directorios se aaden 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 ms largo; el formato predeterminado de
                     listado emplea una tilde de la ee para sealar el directo-
                     rio inicial de trabajo (el "hogar").
              -p     Muestra la pila de directorios con una entrada  por  cada
                     lnea.
              -v     Muestra  la pila de directorios con una entrada por lnea,
                     prefijando cada entrada con su ndice en la pila.

              El valor de retorno es 0 a menos que se d una  opcin  invlida  o
              que n indexe ms all 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 opcin -h, cada espectrab no se quita de la
              tabla,  sino  que se marca de manera que no se le enviar la seal
              SIGHUP si el shell recibe una seal  SIGHUP.   Si  no  hay  ningn
              espectrab  presente,  y ni se dan las opciones -a ni -r, se uti-
              liza el trabajo en curso.  Si no  se  suministra  espectrab,  la
              opcin  -a significa quitar o marcar todos los trabajos; la opcin
              -r sin un argumento espectrab restringe la operacin a los traba-
              jos en ejecucin.  El valor de retorno es 0 a menos que espectrab
              no se refiera a un trabajo vlido.

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

       enable [-adnps] [-f nombre-fichero] [nombre ...]
              Activa y desactiva rdenes internas  incorporadas  en  el  shell.
              Desactivar una orden incorporada en el shell permite que un pro-
              grama cuya imagen ejecutable est en el disco con el  mismo  nom-
              bre,  se  ejecute  sin tener que especificar un camino completo,
              aun cuando el shell normalmente busca las rdenes internas  antes
              que  las  rdenes 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
              versin incorporada en el shell,  ejecute  enable  -n  test.   La
              opcin  -f  significa  cargar  la  nueva orden incorporada nombre
              desde el  objeto  compartido  nombre-fichero,  en  sistemas  que
              admiten  la  carga dinmica. La opcin -d borrar una orden interna
              cargada previamente con -f.  Si no se dan argumentos  nombre,  o
              si  se  da  la opcin -p, se muestra una lista de rdenes internas
              del shell.  Sin ninguna opcin ms, la lista consiste en todas las
              rdenes  internas  activas.   Si  se  da  -n, slo se muestran las
              rdenes desactivadas.  Si se da  -a,  la  lista  impresa  incluye
              todas  las  rdenes internas, con una indicacin en cada una de si
              est activada o no.  Si se da -s, la salida se  restringe  a  las
              rdenes 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 sal-
              ida se devuelve como el valor de eval.  Si no hay args, o  sola-
              mente argumentos vacos, eval devuelve 0.

       exec [-cl] [-a nombre] [orden [argumentos]]
              Si  se  especifica  orden, reemplaza al shell.  No se crea ningn
              proceso nuevo. Los argumentos se convierten en los argumentos de
              orden.   Si se da la opcin -l, el shell pone un guin en el argu-
              mento nmero cero pasado a orden.  Esto es lo que hace  login(1).
              La opcin -c hace que orden se ejecute con un entorno vaco. Si se
              da -a , el shell pasa nombre como el argumento nmero cero de  la
              orden  ejecutada.  Si orden no puede ejecutarse por alguna razn,
              un shell no interactivo se acaba, a menos que se  haya  activado
              la  opcin del shell execfail, en cuyo caso devuelve `fallo'.  Un
              shell interactivo devuelve `fallo' si el fichero no puede ejecu-
              tarse.   Si  orden  no se especifica, cualquier redireccin tiene
              efecto en el shell en curso, y el estado devuelto es 0.  Si  hay
              un error de redireccin, 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 ltima orden ejecutada.   Se  eje-
              cuta una trampa puesta en EXIT antes de que el shell termine.

       export [-fn] [nombre[=palabra]] ...
       export -p
              Los nombres suministrados se marcan para exportacin automtica al
              entorno de rdenes que se ejecuten de ah en adelante. Si la opcin
              -f  se  da,  los  nombres se referirn a funciones.  Si no se dan
              nombres, o si se da la opcin -p, se muestra una lista  de  todos
              los nombres que estn exportados en este shell.  La opcin -n hace
              que la propiedad de exportacin se quite de  las  variables  nom-
              bradas;  o  sea,  que se quiten del entorno.  export devuelve un
              estado de salida de 0 a menos que se encuentre una  opcin  invl-
              ida,  uno  de los nombres no sea un nombre vlido de variable del
              shell, o que se d -f no siendo nombre una funcin.

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

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

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

              Si se usa la primera forma, el valor de retorno es 0 a menos que
              se  encuentre  una  opcin  invlida o que primero o ltimo especi-
              fiquen lneas de historia fuera de rango.  Si  se  suministra  la
              opcin -e, el valor de retorno es el de la ltima orden ejecutada,
              o `fallo' si ocurre un error con el fichero temporal de  rdenes.
              Si  se  emplea  la  segunda forma, el estado de retorno es de la
              orden reejecutada, a menos que ord no especifique una lnea vlida
              de historia, en cuyo caso fc devuelve `fallo'.

       fg [espectrab]
              Reanuda  espectrab  en primer plano, y lo hace ser el trabajo en
              curso.  Si espectrab no est presente, se usa la nocin 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 est desactivado o, cuando se ejecuta con
              el control de trabajos activado, si espectrab no  especifica  un
              trabajo vlido o espectrab se refiere a una trabajo que se arranc
              sin control de trabajos.

       getopts cadenaopcs nombre [args]
              getopts se usa en procedimientos del  shell  para  analizar  los
              parmetros posicionales.  cadenaopcs contiene las letras de opcin
              que se reconocern; si a una letra le sigue un signo de dos  pun-
              tos, se espera que la opcin tenga un argumento, que debera estar
              separado de ella por espacio en blanco.  Cada vez que se  llama,
              getopts pone la siguiente opcin en la variable del shell nombre,
              inicializando nombre si no existe,  y  el  ndice  del  siguiente
              argumento a ser procesado en la variable OPTIND.  OPTIND se ini-
              cializa a 1 cada vez que se llama al shell o al guin del  shell.
              Cuando  una  opcin requiera un argumento, getopts pone ese argu-
              mento en la variable OPTARG.  El shell no  pone  a  cero  OPTIND
              automticamente;  debe  ser  puesto a cero manualmente entre lla-
              madas mltiples a getopts dentro de la misma llamada al shell  si
              hubiera que usar un nuevo conjunto de parmetros.

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

              getopts  normalmente analiza los parmetros posicionales, pero si
              se dan ms argumentos en args,  getopts  analiza  aqullos  en  su
              lugar.

              getopts  puede  informar de errores de dos maneras. Si el primer
              carcter de optstring es dos puntos,  se  emplea  un  informe  de
              error  silencioso.   En  un  modo normal de operacin se muestran
              mensajes de diagnsticos cuando se encuentran opciones invlidas o
              faltan argumentos de opciones que los requieran.  Si la variable
              OPTERR se pone a 0,  no  se  mostrar  ningn  mensaje  de  error,
              incluso si el primer carcter de optstring no es dos puntos.

              Si  se  ve  una opcin invlida, 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 carcter de opcin
              encontrado se pone en OPTARG y no se muestra  ningn  mensaje  de
              diagnstico.

              Si  no  se  encuentra  un  argumento  necesario, y getopts no es
              silencioso, se pone un signo de cierre de  interrogacin  (?)  en
              nombre,  OPTARG se anula, y se muestra un mensaje de diagnstico.
              Si getopts es silencioso, entonces se pone un signo de dos  pun-
              tos  (:)  en  nombre y OPTARG toma el valor del carcter de opcin
              encontrado.

              getopts devuelve `verdad' si una opcin, 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 opcin -p no se  busca  en  el
              PATH, y se emplea en su lugar nombre-fichero como el nombre com-
              pleto de fichero para la orden.  La opcin -r hace que  el  shell
              se  olvide de todas las localizaciones registradas. Si no se dan
              argumentos, se muestra informacin acerca de  las  rdenes  recor-
              dadas.  El estado de salida es `verdad' a menos que un nombre no
              se encuentre o se d una opcin invlida.

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

       history [-c] [n]
       history -anrw [nombre-fichero]
       history -p arg [arg ...]
       history -s arg [arg ...]
              Sin opciones, muestra la lista de historia de rdenes con  nmeros
              de  lnea.  Las  lneas marcadas con un * han sido modificadas. Un
              argumento de n lista solamente las ltimas n lneas.   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     Aade  las  lneas de historia ``nuevas'' (las introducidas
                     desde el inicio de la sesin de bash en curso) al  fichero
                     de historia.
              -n     Lee  las  lneas  de historia que an no han sido ledas del
                     fichero de historia y las mete en la  lista  de  historia
                     actual. stas son las lneas aadidas al fichero de historia
                     desde el comienzo de la sesin 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 sustitucin de historia de los siguientes args
                     y muestra el resultado en la salida estndar.  No almacena
                     los  resultados en el fichero de historia.  Cada arg debe
                     protegerse para deshabilitar la expansin de historia nor-
                     mal.
              -s     Almacena  los  args en la lista de historia como una sola
                     entrada. La ltima orden en la lista de historia se  elim-
                     ina antes de que se aadan los args.

              El  valor  de  retorno  es  0 a menos que se encuentre una opcin
              invlida 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 adems de la informacin normal.
              -p     Lista solamente el PID del lder del grupo de proceso  del
                     trabajo.
              -n     Muestra  informacin solamente sobre trabajos que han cam-
                     biado de estado desde que se notific al usuario por ltima
                     vez de su estado.
              -r     Restringe la salida a los trabajos en ejecucin.
              -s     Restringe la salida a los trabajos parados.

              Si se da espectrab, la salida se restringe a la informacin sobre
              ese trabajo.  El estado de  retorno  es  cero  a  menos  que  se
              encuentre  una  opcin  invlida  o  se  suministre  un  espectrab
              invlido.

              Si se da la opcin -x, jobs reemplaza cualquier espectrab  encon-
              trado en orden o args con el ID de grupo de proceso correspondi-
              ente, y ejecuta orden pasndole args, devolviendo  su  estado  de
              salida.

       kill [-s nombre-seal | -n numseal | -nombre-seal] [pid | espectrab] ...
       kill -l [nombre-seal | status_salida]
              Enva la seal especificada por nombre-seal o numseal a los proce-
              sos nombrados por pid o espectrab.  nombre-seal  es  o  bien  un
              nombre  de  seal  como SIGKILL o un nmero de seal; numseal es un
              nmero de seal. Si nombre-seal es un nombre de  seal,  ste  puede
              darse con o sin el prefijo SIG.  Si nombre-seal no est presente,
              entonces se supone SIGTERM.  Un argumento de -l lista  los  nom-
              bres  de  seales.   Si se suministran ms argumentos cuando se da
              -l, se listan los nombres de las seales correspondientes  a  los
              argumentos,  y  el  estado  de  retorno es 0.  El argumento sta-
              tus_salida de -l es un nmero que especifica o bien un  nmero  de
              seal o el estado de salida de un proceso terminado por una seal.
              kill devuelve ``verdad'' si por lo menos se envi  con  xito  una
              seal,  o  ``falso''  si  ocurri  un error o se encontr una opcin
              invlida.

       let arg [arg ...]
              Cada arg es una expresin aritmtica a ser evaluada (vea EVALUACIN
              ARITMTICA).   Si  el  ltimo arg se evala 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 funcin, hace que la variable nombre  tenga  una  visibilidad
              restringida  a  esa  funcin  y  sus hijas.  Sin operandos, local
              escribe en la salida estndar una lista de las variables locales.
              Es  un  error  emplear  local  fuera de una funcin. El estado de
              retorno es 0 a menos que local se use fuera de una funcin, o  se
              d un nombre invlido.

       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  ltimo directorio, ``popd -1'' el
                     penltimo.
              -n     Suprime el normal cambio de directorio cuando se  desapi-
                     lan directorios, de forma que solamente la pila se manip-
                     ula.

              Si la orden popd es exitosa, tambin se realiza  un  dirs,  y  el
              estado  de  retorno es 0.  popd devuelve `falso' si se encuentra
              una opcin invlida, la pila de directorios est vaca,  se  especi-
              fica 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 estndar bajo  el
              control del formato.  El formato es una cadena de caracteres que
              contiene tres tipos de objetos: caracteres normales, que simple-
              mente  se  copian en la salida estndar, caracteres de secuencias
              de escape, que se convierten y copian en la  salida  estndar,  y
              especificaciones  de  formato,  cada  una de las cuales causa la
              impresin del siguiente argumento  sucesivo  de  una  determinada
              manera.   Adems de los formatos estndares 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 ms argumentos  que
              los que se suministran, las especificaciones de formato extra se
              comportan como si se hubiera dado un valor  cero  o  una  cadena
              vaca, segn lo apropiado.

       pushd [-n] [dir]
       pushd [-n] [+n] [-n]
              Aade  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 ms arriba y devuelve 0, a menos que  la  pila  de
              directorios est vaca.  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) est en la cima.
              -n     Rota la pila de forma que el n-simo directorio  (contando
                     desde la derecha de la lista mostrada por dirs, empezando
                     por cero) est en la cima.
              -n     Suprime el cambio normal de directorio  cuando  se  aaden
                     directorios a la pila, de forma que solamente se manipula
                     la pila.
              dir    Aade dir a la pila de directorios en la  cima,  hacindolo
                     el nuevo directorio de trabajo.

              Si  la orden pushd acaba con xito, se realiza un dirs tambin. Si
              se emplea la primera forma, pushd devuelve 0 a menos  que  falle
              el cambio a dir.  Con la segunda forma, pushd devuelve 0 a menos
              que la pila de directorios est vaca, que se especifique un  ele-
              mento  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
              simblicos si se da la opcin -P o est puesta la opcin -o physical
              de  la  orden  interna  set.  Si se usa la opcin -L, los enlaces
              simblicos se siguen.  El estado de retorno  es  0  a  menos  que
              ocurra  un error mientras se lea el nombre del directorio actual
              o se d una opcin invlida.

       read [-er] [-a array] [-p prompt] [nombre ...]
              Se lee una lnea desde la entrada estndar, y la  primera  palabra
              se  asigna  al primer nombre, la segunda palabra al segundo nom-
              bre, y as sucesivamente, con las palabras que sobren y sus sepa-
              radores  intervinientes asignadas al ltimo nombre.  Si hay menos
              palabras  ledas  de  la  entrada  estndar  que  nombres,  a  los
              sobrantes  se  les asignan valores vacos.  Se emplean los carac-
              teres en IFS para dividir la lnea en palabras.  Las opciones, si
              se dan, tienen los siguientes significados:
              -r     Un par formado por una barra inclinada inversa y un salto
                     de lnea a continuacin s es tenido en cuenta, y  la  barra
                     inversa se considera parte de la lnea.
              -p     Muestra  prompt,  sin un salto de lnea 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  definicin  de  array antes de que se
                     asignen nuevos valores.  Otros argumentos  nombre  no  se
                     tienen en consideracin.
              -e     Si  la  entrada  estndar viene de una terminal, se emplea
                     readline (vea READLINE arriba) para obtener la lnea.

              Si no se suministran nombres, la lnea leda se asigna a la  vari-
              able  REPLY.  El cdigo 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  val-
              ores  de  estos  nombres  no  pueden  cambiarse  por posteriores
              asignaciones.  Si se da la opcin -f, se marcan as las  funciones
              correspondientes a los nombres.  La opcin -a restringe las vari-
              ables a vectores.  Si no se da ningn argumento nombre, o  si  se
              da  la  opcin  -p,  se muestra una lista de todos los nombres de
              lectura exclusiva.  La opcin -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 opcin invlida, uno  de
              los nombres no sea un nombre vlido de variable del shell, o se d
              -f con un nombre que no es una funcin.

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

       set [--abefhkmnptuvxBCHP] [-o opcin] [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 segn la localizacin en curso.  Cuando se dan
              opciones,  se  establecen  o  quitan  atributos del shell.  Cua-
              lesquier argumentos que queden tras que se procesen las opciones
              se  tratan  como  valores  para  los parmetros posicionales y se
              asignan, en orden, a $1, $2,  ...   $n.   Las  opciones,  si  se
              especifican, tienen los siguientes significados:
              -a      Automticamente  marca  variables,  que  se  modifiquen o
                      creen, para exportacin al entorno de las rdenes subsigu-
                      ientes.
              -b      Informa del estado de los trabajos en segundo plano ter-
                      minados inmediatamente, en vez de esperar a justo  antes
                      de  mostrar el siguiente indicador primario. Esto slo es
                      efectivo cuando el control de trabajos est habilitado.
              -e      Sale inmediatamente si una orden  simple  (vea  GRAMTICA
                      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 expansin de nombres de caminos.
              -h      Recuerda  la localizacin de rdenes una vez que se buscan
                      para la 1 ejecucin. Esto est habilitado de forma  prede-
                      terminada.
              -k      Todos los argumentos en forma de sentencias de asignacin
                      se ponen en el entorno  para  una  orden,  no  solamente
                      aqullos que precedan al nombre de la orden.
              -m      Modo  de  monitor.   Se habilita el control de trabajos.
                      Esta opcin  est  puesta  de  forma  predeterminada  para
                      shells interactivos en sistemas que lo admitan (vea CON-
                      TROL DE TRABAJOS arriba). Los procesos en segundo  plano
                      se  ejecutan  en  un  grupo  de  proceso  separado, y se
                      imprime cuando se  completan  una  lnea  conteniendo  su
                      estado de salida.
              -n      Lee  rdenes  pero  no  las ejecuta. Esto puede emplearse
                      para comprobar si un guin del  shell  tiene  errores  de
                      sintaxis.  Para  shells interactivos esta opcin no tiene
                      efecto.
              -o nombre-opcin
                      El nombre-opcin puede ser uno de los siguientes:
                      allexport
                              Lo miso que -a.
                      braceexpand
                              Lo miso que -B.
                      emacs   Emplea una interfaz de edicin de lneas de rdenes
                              al  estilo  de  emacs.  Esto est activo de forma
                              predeterminada cuando el shell es interactivo, a
                              menos   que  se  haya  arrancado  con  la  opcin
                              --noediting.
                      errexit Lo mismo que -e.
                      hashall Lo mismo que -h.
                      histexpand
                              Lo mismo que -H.
                      history Habilita la historia de rdenes, segn se describi
                              arriba bajo HISTORIA.  Esta opcin est habilitada
                              por omisin 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
                              operacin   predeterminada  difiera  del  estndar
                              POSIX 1003.2, de forma que se siga ste.
                      privileged
                              Lo mismo que -p.
                      verbose Lo mismo que -v.
                      vi      Emplea una interfaz de  edicin  de  la  lnea  de
                              rdenes al estilo de vi.
                      xtrace  Lo mismo que -x.
                      Si se da -o sin ningn nombre-opcin, se muestran los val-
                      ores de las opciones activas.  Si se  da  +o  sin  ningn
                      nombre-opcin,  se muestra en la salida estndar una serie
                      de rdenes set para recrear las opciones segn estn  pues-
                      tas 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 con-
                      sideracin.   Esta  opcin  se activa automticamente en el
                      arranque si el identificador  efectivo  del  usuario  (o
                      grupo)  no es igual al identificador real del usuario (o
                      grupo).  Desactivar esta opcin hace  que  los  identifi-
                      cadores  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 expansin de  parmetros.  Si  la  expansin  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 lneas 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 expansin de llaves (vea Expansin  de
                      llaves  arriba).  Esto est activado de forma predetermi-
                      nada.
              -C      Si est activo, bash no sobreescribe un fichero existente
                      con  los  operadores  de  redireccin >, >&, ni <>.  Esto
                      puede cambiarse cuando se crean ficheros de salida medi-
                      ante el empleo del operador >| en vez de >.
              -H      Permite  la  sustitucin  de  historia  mediante !.  Esta
                      opcin est activada por omisin cuando el shell es  inter-
                      activo.
              -P      Si  est  activada,  el  shell no sigue enlaces simblicos
                      cuando ejecuta rdenes como cd que cambian el  directorio
                      de trabajo. En su lugar emplea la estructura de directo-
                      rio fsica. De forma predeterminada, bash sigue la cadena
                      lgica  de  directorios cuando ejecuta rdenes que cambian
                      el directorio de trabajo.
              --      Si a esta opcin no sigue ningn  argumento  ms,  entonces
                      los parmetros posicionales se anulan. Si no, los parmet-
                      ros posicionales se ponen con los valores dados por  los
                      args, incluso si alguno de ellos comienza con un -.
              -       Seala el final de las opciones, haciendo que el resto de
                      args  se  asignen  a  los  parmetros  posicionales.  Las
                      opciones  -x y -v se desactivan.  Si no hay ms args, los
                      parmetros posicionales permanecen sin cambios.

              Las opciones estn desactivadas de forma predeterminada  a  menos
              que  se  diga  otra  cosa.  Usar  +  en  vez de - hace que estas
              opciones se desactiven.  Las opciones tambin pueden  darse  como
              argumentos  al  llamar  al shell.  El conjunto de opciones acti-
              vadas puede examinarse en $-.  El estado de retorno  es  siempre
              `verdad' a menos que se encuentre una opcin invlida.

       shift [n]
              Los  parmetros  posicionales desde n+1 ... se renombran a $1 ...
              Los parmetros representados por los nmeros desde $# hasta $#-n+1
              se  anulan.  n debe ser un nmero no negativo menor o igual a $#.
              Si n es 0, no se cambia ningn parmetro.   Si  n  no  se  da,  se
              supone  1.   Si n es mayor que $#, los parmetros 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 opcin -p,
              se  muestra una lista de todas las opciones disponibles, con una
              indicacin en cada una de si est activa o no.  La opcin  -p  hace
              que la salida se muestre de una forma tal que pueda reutilizarse
              como entrada.  Otras  opciones  tienen  los  significados  sigu-
              ientes:
              -s     Activa (set) cada nombreopc.
              -u     Desactiva (unset) cada nombreopc.
              -q     Suprime  la salida normal (modo silencioso); el estado de
                     salida indica si el nombreopc est activado o no.   Si  se
                     dan varios argumentos nombreopc con -q, el estado de sal-
                     ida es cero si todos los nombreopcs estn activados;  dis-
                     tinto de cero en otro caso.
              -o     Restringe  los  valores  de nombreopc a aqullos definidos
                     para la opcin -o de la orden interna set.

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

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

              La lista de las opciones de shopt es:

              cdable_vars
                      Si est activa, un argumento de la orden interna  cd  que
                      no  sea  un  directorio,  se  supone  el  nombre  de una
                      variable cuyo valor es el directorio al que hay que cam-
                      biarse.
              cdspell Si  est activa, se corregirn pequeos 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 carcter que falte,  y  un  carcter  que
                      sobre.   Si  se  encuentra  una correccin, se muestra el
                      nombre de fichero corregido y la  orden  procede.   Esta
                      opcin slo se emplea en shells interactivos.
              checkhash
                      Si  est  activa, bash comprueba que una orden encontrada
                      en la tabla de dispersin existe antes de intentar ejecu-
                      tarlo.  Si  una  orden  en  la  tabla de dispersin ya no
                      existe, se realiza una bsqueda normal en el PATH.
              checkwinsize
                      Si est activa, bash comprueba el tamao de  ventana  tras
                      cada  orden y, si es necesario, actualiza los valores de
                      LINES y COLUMNS.
              cmdhist Si est activa, bash intenta guardar todas las  lneas  de
                      una  orden de varias lneas en la misma entrada de histo-
                      ria. Esto permite una re-edicin fcil de dichas rdenes.
              dotglob Si est activa, bash incluye los nombres de ficheros  que
                      comiencen con un `.' en los resultados de la expansin de
                      nombres de caminos.
              execfail
                      Si est activa, un shell no interactivo no acabar  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  est  activa,  los alias se expanden como se describi
                      arriba bajo ALIAS.  Esta opcin est habilitada  de  forma
                      predeterminada para shells interactivos.
              extglob Si  est  activa, se habilitan las caractersticas de con-
                      cordancia de patrones extendidas descritas ms arriba  en
                      Expansin de nombres de camino.
              histappend
                      Si  est  activa, la lista de historia se aade al fichero
                      nombrado segn el valor de la variable HISTFILE cuando el
                      shell acaba, en vez de sobreescribir el fichero.
              histreedit
                      Si est activa, y readline se est utilizando, se le da al
                      usuario la oportunidad de  re-editar  la  sustitucin  de
                      historia fallida.
              histverify
                      Si  est activa, y readline se est utilizando, los resul-
                      tados de la sustitucin de historia no se  pasan  inmedi-
                      atamente al analizador del shell. En vez de eso, la lnea
                      resultante se carga en el bfer de  edicin  de  readline,
                      permitiendo as una modificacin posterior.
              hostcomplete
                      Si est activa, y readline se est utilizando, bash inten-
                      tar  terminar  de  escribir  un  nombre  de   computador
                      anfitrin  cuando se est completando una palabra que con-
                      tenga una @ (vea Terminacin bajo READLINE arriba).  Esto
                      est activado de forma predeterminada.
              huponexit
                      Si  est  activa, bash enviar una seal SIGHUP a todos los
                      trabajos cuando un shell de entrada  interactivo  final-
                      ice.
              interactive_comments
                      Si  est  activa, permite a una palabra que empiece por #
                      hacer que esa palabra y todos los  caracteres  restantes
                      de esa lnea no sean tenidos en cuenta en un shell inter-
                      activo (vea COMENTARIOS arriba). Esta opcin est  habili-
                      tada por omisin.
              lithist Si  est  activa,  y  la opcin cmdhist tambin lo est, las
                      rdenes multi-lnea se guardan en la historia  con  saltos
                      de  lnea  empotrados en vez de emplear como separador el
                      punto y coma, donde sea posible.
              mailwarn
                      Si est activa, y a un fichero donde  bash  est  buscando
                      correo  nuevo  se  ha accedido desde la ltima vez que se
                      busc, se muestra el mensaje ``The mail in  mailfile  has
                      been read'', o su equivalente en el idioma local, que en
                      espaol sera ``El correo en buzn ha sido ledo''.
              nocaseglob
                      Si est activa, bash busca concordancias  de  nombres  de
                      ficheros sin importar maysculas o minsculas cuando real-
                      ice la expansin de nombres de caminos (vea  Expansin  de
                      nombres de caminos arriba).
              nullglob
                      Si est activa, bash permite que los patrones que no con-
                      cuerden con ningn fichero (vea Expansin  de  nombres  de
                      caminos arriba) se expandan a una cadena vaca, en vez de
                      a s mismos.
              promptvars
                      Si est activa, las cadenas de caracteres que  sirven  de
                      indicadores  estn  sujetas  a  expansin  de  variable  y
                      parmetro tras ser expandidas como se describi  en  INDI-
                      CADORES  arriba.   Esta opcin est activa de forma prede-
                      terminada.
              shift_verbose
                      Si est activa, la orden interna shift muestra un mensaje
                      de error cuando el nmero de shift excede al de parmetros
                      posicionales.
              sourcepath
                      Si est activa, la orden interna  source  (.)  emplea  el
                      valor  de PATH para buscar el directorio que contenga al
                      fichero suministrado  como  argumento.  Esta  opcin  est
                      activa por omisin.
       suspend [-f]
              Suspende  la  ejecucin  de  este shell hasta que reciba una seal
              SIGCONT.  La opcin -f dice que no hay que protestar si ste 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
              opcin  -f  no  se  haya dado, o si el control de trabajos no est
              habilitado.
       test expr
       [ expr ]
              Devuelve un estado de 0  1 dependiendo de  la  evaluacin  de  la
              expresin condicional expr.  Cada operador y operando debe ser un
              argumento separado.  Las expresiones se  componen  de  las  pri-
              marias descritas ms arriba bajo EXPRESIONES CONDICIONALES.

              Las expresiones se pueden combinar mediante los operadores sigu-
              ientes, 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  [  evalan expresiones condicionales segn un conjunto de
              reglas basadas en el nmero de argumentos.

              0 argumentos
                     La expresin es falsa.
              1 argumento
                     La expresin es verdad si y slo si  el  argumento  no  est
                     vaco.
              2 argumentos
                     Si  el  primer argumento es !, la expresin es verdad si y
                     slo si el segundo argumento es nulo.  Si el primer  argu-
                     mento  es  uno  de  los operadores condicionales monarios
                     listados arriba en EXPRESIONES CONDICIONALES, la expresin
                     es  verdad  si  el  test monario es verdad.  Si el primer
                     argumento no es un operador condicional monario vlido, la
                     expresin es falsa.
              3 argumentos
                     Si  el  segundo argumento es uno de los operadores condi-
                     cionales binarios listados arriba en  EXPRESIONES  CONDI-
                     CIONALES, el resultado de la expresin es el resultado del
                     test binario empleando el primer y tercer argumentos como
                     operandos.   Si  el primer argumento es !, el valor es la
                     negacin 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 expresin 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 negacin
                     de la expresin de tres argumentos compuesta por los argu-
                     mentos  restantes.  De otra forma, la expresin se analiza
                     y evala de acuerdo  con  la  precedencia  utilizando  las
                     reglas listadas arriba.
              5  ms argumentos
                     La  expresin  se analiza y evala de acuerdo con la prece-
                     dencia usando las reglas mencionadas arriba.

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

       trap [-lp] [arg] [nombre-seal ...]
              La orden arg va a leerse y ejecutarse  cuando  el  shell  reciba
              la(s)  seal(es)  especificada(s)  por  nombre-seal.   Si arg est
              ausente o es -, todas las seales especificadas se reestablecen a
              sus  valores  originales  (los  que  tenan  cuando se entr en el
              shell).  Si arg es la cadena vaca, la seal especificada por cada
              nombre-seal  no  se tiene en cuenta por parte del shell y de las
              rdenes que se llamen desde l.  Si arg es -p entonces se muestran
              las rdenes de las trampas asociadas con cada nombre-seal.  Si no
              se pasan argumentos o si slo se da -p, trap muestra la lista  de
              rdenes  asociadas con cada nmero de seal.  Cada nombre-seal es o
              bien un nombre de seal de los  definidos  en  <signal.h>,  o  un
              nmero  de  seal.  Si un nombre-seal es EXIT (0), la orden arg se
              ejecuta cuando se sale del shell. Si un nombre-seal es DEBUG, la
              orden  arg  se  ejecuta tras cada orden simple (vea GRAMTICA DEL
              SHELL arriba).  La opcin -l hace que el shell muestre una  lista
              de  nombres  de  seal y sus nmeros correspondientes.  Las seales
              que no se tienen en cuenta ya cuando se entra  en  el  shell  no
              pueden  ser atrapadas ni restablecidas.  Las seales atrapadas se
              reestablecen a sus valores originales en un proceso hijo  cuando
              se  crea.   El estado de retorno es `falso' si cualquier nombre-
              seal no es vlido; de otro modo, trap devuelve `verdad'.

       type [-atp] nombre [nombre ...]
              Sin opciones, indica cmo ser interpretado cada nombre si se  usa
              como un nombre de orden.  Si se emplea la opcin -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 funcin, 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 opcin -p, type
              devuelve o bien el nombre del fichero de disco que se  ejecutara
              si  se  especificara nombre como un nombre de orden, o bien nada
              si type -t nombre no devolviera file.  Si una orden  est  en  la
              tabla de dispersin, -p muestra el valor de dicha tabla, no nece-
              sariamente el fichero que  aparezca  primero  en  PATH.   Si  se
              emplea  la opcin -a, type muestra todos los sitios que contengan
              un ejecutable llamado nombre.  Esto incluye alias  y  funciones,
              si  y  slo  si  la  opcin -p no se ha usado tambin.  La tabla de
              dispersin de las rdenes 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 [lmite]]
              Proporciona control sobre los recursos disponibles para el shell
              y  para  los procesos arrancados por l, en sistemas que permitan
              tal control (Linux por ejemplo, y por  supuesto).  El  valor  de
              lmite  puede  ser  un  nmero  en  la unidad especificada para el
              recurso, o el valor unlimited, o sea, ilimitado.   Las  opciones
              -H  y  -S especifican que el lmite para el recurso dado va a ser
              duro o blando. Un lmite duro es aqul que no puede ser  aumentado
              una  vez  puesto;  un  lmite blando puede incrementarse hasta el
              valor dado por el lmite duro. Si no se especifican ni -H ni  -S,
              se  establecen ambos lmites.  Si lmite se omite, se muestran los
              valores del lmite blando del recurso, a menos que se d la  opcin
              -H.  Cuando se especifica ms de un recurso, se imprime el nombre
              del lmite y la unidad antes del valor.  Otras opciones se inter-
              pretan como sigue:
              -a     Se informa de todos los lmites actuales
              -c     El tamao mximo de ficheros de volcados de memoria (core)
              -d     El tamao mximo del segmento de datos de un proceso
              -f     El tamao mximo de ficheros creados por el shell
              -l     El tamao mximo que puede ser bloqueado en memoria
              -m     El tamao del mximo conjunto residente (memoria)
              -n     EL  nmero  mximo de descriptores de ficheros abiertos (la
                     mayora de sistemas no permiten establecer este valor)
              -p     El tamao de una tubera en bloques de 512 B (esto puede no
                     estar establecido)
              -s     El tamao mximo de pila
              -t     La mxima cantidad de tiempo de CPU en segundos
              -u     El  nmero  mximo  de  procesos  disponibles  para un solo
                     usuario
              -v     La mxima cantidad de memoria virtual disponible  para  el
                     shell

              Si  se  da lmite, es el nuevo valor del recurso especificado (la
              opcin -a es slo para mostrar los valores).  Si no se da  ninguna
              opcin,  entonces  se supone -f.  Los valores estn en incrementos
              de 1024 B, excepto para -t, que est en segundos, -p, que est  en
              unidades de bloques de 512 B, y -n y -u, que son valores adimen-
              sionales. El estado de retorno es 0 a menos que se encuentre una
              opcin  invlida, se d como lmite un argumento no numrico distinto
              de unlimited, o bien ocurra un error mientras  se  establece  un
              nuevo lmite.

       umask [-p] [-S] [modo]
              La  mscara  de  creacin  de  ficheros del usuario se establece a
              modo.  Si modo empieza con un dgito, se interpreta como un nmero
              octal;  si  no,  se  interpreta como un modo simblico similar al
              aceptado por chmod(1).  Si modo se omite, o si se  da  la  opcin
              -S,  se  muestra el valor actual de la mscara.  La opcin -S hace
              que la mscara se imprima en forma simblica; la salida  predeter-
              minada  es  como un nmero octal.  Si se da la opcin -p y modo se
              omite, la salida es de tal forma  que  puede  reutilizarse  como
              entrada.  El estado de retorno es 0 si el modo se cambi exitosa-
              mente o si no se dio el argumento modo, y `falso' en  otra  cir-
              cunstancia.

       unalias [-a] [nombre ...]
              Quita  nombres de la lista de alias definidos. Si se da la opcin
              -a, se quitan todas las definiciones de alias. El estado de sal-
              ida  es  `verdad'  a  menos  que  un nombre dado no sea un alias
              definido.

       unset [-fv] [nombre ...]
              Para cada nombre, borra la variable  o  funcin  correspondiente.
              Si  no  se  dan  opciones,  o  se da la opcin -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 funcin del shell, y se borra la definicin de la
              funcin.   Cada  variable  o funcin se quita del entorno pasado a
              rdenes subsiguientes.  Si se quita cualquiera  de  RANDOM,  SEC-
              ONDS, LINENO, HISTCMD, o DIRSTACK, pierde su propiedad especial,
              incluso aunque ms 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  termi-
              nacin.   n  puede  ser  un  identificador de proceso (PID) o una
              especificacin de trabajo; si se da una  espec.  de  trabajo,  se
              espera a todos los procesos en la tubera 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 ltimo proceso o
              trabajo al que se esper.

SHELL RESTRINGIDA

       Si bash se arranca con el nombre rbash, o se da la opcin -r en la  lla-
       mada,  el  shell  se convierte en restringido.  Un shell restringido se
       emplea para establecer un ambiente ms controlado que el  que  el  shell
       estndar  proporciona.   Se  comporta  de  forma  idntica  a bash con la
       excepcin de que lo siguiente no est 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 rdenes 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 redireccin >, >|,
              <>, >&, &>, y >>

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

       +o      aadir o eliminar rdenes incorporadas con las opciones -f o -d de
              la orden interna enable.

       +o      dar la opcin -p a la orden interna command.

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

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

       Cuando se ejecuta una orden que resulta ser un guin del shell (vea EJE-
       CUCIN DE RDENES arriba), rbash desactiva todas las restricciones en  el
       shell lanzado para ejecutar el guin.

VASE TAMBIN

       Bash Features (Caractersticas 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, ledo en shells de entrada
       ~/.bash_profile
              El fichero de inicio personal, ledo 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 [AT] gnu.Edu

       Chet Ramey, Case Western Reserve University
       chet [AT] ins.Edu

       Traduccin al espaol: Gerardo Aburruzaga Garca, para el proyecto PAMELI.
       Gerardo [AT] CICA.es

INFORMES DE FALLOS

       Si Ud. encuentra un fallo  en  bash,  debera  informar  de  ello.  Pero
       primero  debera  asegurarse  de  que  realmente  es  un fallo, y de que
       aparece en la ltima versin 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 cmo corregirlo, se le anima a que nos mande tambin  la  cor-
       reccin!   Las  sugerencias  y  los  informes  de fallos `filosficos' se
       pueden enviar por correo electrnico a bug-bash [AT] gnu.org o se pueden pub-
       licar en el grupo de discusiones de Usenet gnu.bash.bug.

       TODOS los informes de fallos deben incluir:

       El nmero de versin de bash
       El tipo de computador (hardware) y el sistema operativo
       El compilador que se emple para compilarlo
       Una descripcin del comportamiento del fallo
       Un corto guin o `receta' para reproducir el fallo

       bashbug inserta automticamente 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  pgina  de
       manual deben dirigirse a chet [AT] ins.Edu.

       Los  relativos  a  la  traduccin  de  esta pgina deben dirigirse a ger-
       ardo [AT] 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 especificacin POSIX.

       Los alias son confusos en algunos casos.

       Las rdenes internas del  shell  y  las  funciones  no  son  interrumpi-
       bles/rearrancables.

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

       Las rdenes dentro de una sustitucin de orden de tipo $(...) no se anal-
       izan hasta que se intenta la sustitucin. Esto provocar un retraso en la
       aparicin de mensajes posibles de error hasta algn tiempo despus de  que
       se introduzca la orden.

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




GNU                              1 Abril 1998                          BASH(1)

COMMENTS

Add your comment here. Whitespace and linebreaks are preserved. URLs are linked automatically.
CAPTCHA

No HTML allowed. URLs will be linked with nofollow attribute. Whitespace is preserved.