bash - GNU Bourne-Again SHell (la shell de Bourne otra vez, de
GNU)
bash [opciones] [orden | achivo]
Bash is Copyright (C) 1989-2022 by the Free Software Foundation,
Inc.
Bash es un intérprete de lenguage de script
compatible con sh que ejecuta órdenes recibidas desde la
entrada estándar o desde un archivo. Bash también
incorpora funcionalidades tomadas de otras shell como Korn y C
(ksh y csh).
Bash está pensado para ser una implementación
conforme con la especificación POSIX de Shell y Herramientas, de la
IEEE (Grupo de Trabajo 1003.2 de la IEEE). Bash puede configurarse
para ser conforme a POSIX por defecto.
La shell puede ejecutarse con cualquiera de las opciones descritas
en la descripción de la orden interna set, incluso la opcion
-o. Además, bash tambień interpreta las
siguientes opciones cuando se ejecuta:
- -c
- Con la opción -c, las órdenes se empiezan a leer a
partir del primer argumento orden que no sea una opción. Si
hay algún argumento después de orden, el primero de
ellos se asignará a $0 y el resto a los parámetros
posicionales. La asignacióna $0 define el nombre de la shell
que se usará en los mensajes de error y avisos.
- -i
- Si la opción -i está presente, la shell es
interactivo.
- -l
- Hace que bash actúe como si se le hubiera llamado como una
shell de entrada (consulte LLAMADA más
adelante).
- -r
- Si la opción -r está presente, entonces la shell se
pone en modo restringido (consulte SHELL RESTRINGIDA
más adelante).
- -s
- Si la opción -s está presente, o si no quedan
argumentos tras el procesado de las opciones, entonces las órdenes
se leen desde la entrada estándar. Esta opción permite
definir los parámetros posicionales cuando se llama a una shell
interactiva o cuando se reciban datos mediante una tubería.
- -v
- Repite en la salida las líneas de entrada de la shell tras
leerlas.
- -x
- Muestra las órdenes y sus argumentos a medida que se ejecutan.
- -D
- Se muestra en la salida estándar una lista de cadenas de caracteres
entrecomilladas precedidas por $. Estas cadenas son las que
están sujetas a traducción cuando la localización en
curso no es C ni POSIX. Esta opción implica
también la -n; no se ejecuta ninguna orden.
- [-+]O [opción_shopt]
- opción_shopt representa una de las opciones de la shell
aceptadas por la orden nativa shopt (consulte ÓRDENES
NATIVAS DE LA SHELL a continuación). Si está presente
opción_shopt, -0 definirá el valor de dicha
opción y +0 anulará esa definición. Si no
está presente opción_shopt, se muestran en pantalla
una lista con los nombres y los valores de las opciones aceptadas por
shopt. Si se invoca con la opción +0, se muestra una
lista apta para su reutilización.
- --
- Un -- señala el fin de las opciones e inhabilita cualquier
posterior procesado de opciones. Cualesquier argumentos tras -- se
tratan como nombres de fichero y argumentos. Un argumento - es
equivalente a --.
Bash también interpreta una variedad de opciones
multi-carácter. Estas opciones deben aparecer en la línea de
órdenes antes de las opciones monocarácter para que puedan ser
reconocidas.
- --debugger
- Ejecuta el depurador antes del inicio de la shell. Activa el modo de
depuración ampliado (consulte la descripción de la
opción extdebug de la orden nativa shopt a
continuación).
- --dump-po-strings
- Equivalente a -D, pero la salida es en el formato de un fichero
po (objeto portable), del gettext de GNU.
- --dump-strings
- Equivalente a -D.
- --help
- Muestra un mensaje de ayuda y termina.
- --init-file
archivo
- --rcfile
archivo
- Ejecuta órdenes desde archivo en vez de hacerlo desde el
archivo de inicio estándar /etc/bash.bashrc y el personal en
~/.bashrc si la shell es interactiva (consulte
LLAMADA más adelante).
- --login
- Equivale a -l.
- --noediting
- No utiliza la biblioteca de GNU readline para leer líneas de
órdenes en modo interactivo.
- --noprofile
- No lee ni el fichero de arranque de sistema /etc/profile ni ninguno
de los ficheros de inicio personales ~/.bash_profile,
~/.bash_login, ni ~/.profile. Por omisión,
bash lee estos ficheros cuando se le llama como una shell de
entrada (vea LLAMADA más adelante).
- --norc
- No lee ni ejecuta el archivo de inicio general /etc/bash.bashrc ni
el personal de cada usuario en ~/.bashrc si la shell es
interactiva. Esta opción está activa de forma predeterminada
si se ejecutó la shell mediante sh.
- --posix
- Cambia el comportamiento de bash cuando el funcionamiento difiera
del estándar POSIX 1003.2, de forma que concuerde con
éste(posix mode). Consulte VEASE
TAMBIÉN más delante si quiere leer un documento
donde se detalla la influencia del modo posix sobre el funcionamiento de
bash.
- --restricted
- la shell se pone en modo restringido (consulte SHELL
RESTRINGIDA más adelante).
- --verbose
- Equivale a -v.
- --version
- Muestra información acerca de la versión de esta instancia
de bash y finaliza.
Si quedan argumentos tras el procesado de las opciones, y no se
han dado ni la opción -c ni la -s, se supondrá
que el primer argumento es el nombre de un archivo que contiene
órdenes de la shell. Si bash se llama de esta manera,
$0 se define con el nombre del archivo, y los parámetros
posicionales se definen con los restantes argumentos. Bash lee y
ejecuta órdenes de este archivo y después finaliza. El estado
de salida de bash es el de la última orden ejecutada en el
script. Si no se ejecuta ninguna orden, el estado de salida es 0. Primero se
intenta abrir el archivo en el directorio actual, si no se encunetra ninguno
entonces se buscará en los directorios definidos en el
PATH para el script.
Una shell de entrada es aquella cuyo primer carácter
del argumento cero es un -, o que ha sido llamada con la
opción --login.
Una shell interactiva es aquella que se inició sin
argumentos sin opciones (salvo que se especifique -s) y sin la
opción -c cuya entrada y error estandar están
conectadas a terminales (según se determina en isatty(3)), o
uno iniciado con la opción -i. PS1
está definido y $- incluye i si bash es
interactivo, permitiendo así a un script de shell o a un archivo de
inicio la comprobación de este estado.
Los siguientes párrafos describen cómo bash
ejecuta sus archivos de inicio. Si cualquiera de los archivo existe pero no
puede leerse, bash informa de un error. Las tildes de la ñ se
expanden en nombres de archivos como se describe más adelante en
Expansión de la tilde en la sección
EXPANSIÓN.
Cuando bash se llama como una shell de entrada interactiva,
primero lee y ejecuta órdenes desde el archivo /etc/profile,
si es que existe. Tras leer este archivo, buscará
~/.bash_profile, ~/.bash_login, y ~/.profile, en ese
orden, ejecutando las órdenes del primero de ellos que exista y se
pueda leer. La opción --noprofile evitará estas
acciones.
Cuando una shell de entrada termina o una shel de entrada no
interactiva ejecuta la orden natia exit, bash ejecutará
las órdenes contenidas en ~/.bash_logout, si existiese.
Cuando se inicia una shell interactiva no de inicio, bash
lee y ejecuta las órdenes que encuentra en ~/.bashrc, si
existiese. Esto puede evitarse mediante la opción --norc. La
opción --rcfile archivo forzará a bash a
leer y ejecutar órdenes desde archivo en lugar de hacerlo
desde ~/.bashrc.
Cuando bash se arranque de forma no interactiva, por
ejemplo para ejecutar un script de la shell, busca la variable
BASH_ENV en el entorno, expande su valor si
está definida, y utiliza el valor expandido como el nombre de un
fichero a leer y ejecutar. Bash se comporta como si se ejecutaran las
siguientes órdenes:
if [ -n "$BASH_ENV" ]; then .
"$BASH_ENV"; fi
pero el valor de la variable PATH no se emplea para
buscar el nombre del fichero.
Si bash se ejecuta con con el nombre sh,
intentará imitar el comportamiento de arranque de versiones antiguas
de sh tanto como sea posible, pero sin salirse del estándar
POSIX. Cuando se ejecuta como una shell interactiva de entrada, primero
intentará ejecutar las órdenes de /etc/profile y
~/.profile, en ese orden. La opción --noprofile
anulará esta acción. Cuando se ejecuta como una shell
interactiva con el nombre sh, bash busca la variable
ENV, expande su valor si está definida, y
emplea el valor expandido como el nombre de un archivo a ejecutar. Como una
shell llamada como sh no intentará ejecutar órdenes
desde cualquier otro archivo de inicio, la opción --rcfile no
tiene efecto. Una shell no interactivo llamada con el nombre sh no
intenta leer ningún fichero de inicio. Cuando se llama como
sh, bash entra en modo posix después de leer los
ficheros de inicio.
Cuando bash se arranca en modo posix, como ocurre
cuando se da la opción de línea de órdenes
--posix, sigue el estándar POSIX para los ficheros de
arranque. En este modo, los shells interactivos expanden la variable
ENV y se leen y ejecutan órdenes desde el fichero
cuyo nombre es el valor expandido de dicha variable. No se lee
ningún otro fichero de arranque.
Bash intenta determinar cuándo se está
ejecutando con su entrada estándar conectada a una red como si se
ejecutase con el antiguo demonio remoto de la shell, generalmente
rshd o sshd. Si bash determina que está siendo
ejecutado de este modo, lee y ejecuta órdenes desde
/etc/bash.bashrc y ~/.bashrc, si existen y tienen permiso de
lectura. Esto no lo hará si se ejecuta mediante la orden sh.
La opción --norc puede emplearse para inhibir este
comportamiento, y la opción --rcfile puede utilizarse para
forzar la lectura de otro archivo, pero ni rshd, ni sshd
suelen invocar la shell con estas opciones ni permitir su uso.
Si se inicia la shell con un id de usuario (o grupo) efectivo
distinto del id de usuario (o grupo) real y no se indica la opción
-p, no se leerá ningún archivo de inicio, no se
heredarán las funciones de la shell del entorno, si están
presentes en el entorno se ignorarán las variables
SHELLOPTS, BASHOPTS,
CDPATH y GLOBIGNORE y el id de
usuario efectivo será el mismo del usuario real. Si se indica la
opción -p, se hará lo mismo salvo que el id de usuario
efectivo no se cambia.
Las siguientes definiciones se usan a través del resto de
este documento.
- blanco
- Un espacio en blanco o tabulación (tab).
- palabra
- Una secuencia de caracteres considerados por la shell como una sola
unidad. También se conoce como un lexema (token).
- nombre
- Una palabra que consiste solamente en caracteres
alfanuméricos y subrayados, y comienza con un carácter
alfabético o un subrayado. También se llama
identificador.
- metacarácter
- Un carácter que, cuando no está entrecomillado, separa
palabras. Uno de los siguientes:
| & ; ( ) < > space tab newline
- operador de
control
- Un lexema que realiza una función de control. Es uno de los
siguientes símbolos:
|| & && ; ;; ;& ;;& ( ) | |&
<newline>
Las Palabras reservadas son palabras que tienen un
significado especial para la shell. Las siguientes palabras se reconocen
como reservadas cuando no van entrecomilladas y/o son la primera palabra de
una orden simple (vea GRAMÁTICA DE LA SHELL a
continuación) o la tercera palabra de una orden case o
select (solo sería válido in) o de la orden
for (solo in y do serían válidos):
! case coproc do done elif else esac fi for function if in
select then until while { } time [[ ]]
Esta sección describe la sintaxis de diversas formas de
órdenes de la shell.
Órdenes simples
Una orden simple es una secuencia de asignaciones
opcionales de variables seguida por palabras separadas por blancos y
redirecciones, y terminadas por un operador de control. La primera
palabra especifica la orden a ser ejecutada, se pasa como argumento cero.
Las palabras restantes se pasan como argumentos a la orden invocada.
El valor devuelto de una orden simple es su estado de
salida, ó 128+n si la orden ha terminado debido a la
señal n.
Una tubería es una secuencia de una o más
órdenes separadas por uno de los operadores de control | o
|&. El formato de una tubería es:
[time [-p]] [ ! ] orden1 [
[|⎪|&] orden2 ... ]
La salida estándar de orden1 está conectada
mediante una tubería a la entrada estándar de orden2.
Dicha conexión se reliza antes de cualquier redirección que
defina la orden1 (consulte REDIRECCIÓN
más adelante). Si se emplea |& la salida de error
estándar de orden1 también se conectará a la
entrada estándar de orden2 junto con su salida estándar
a través de la tubería; esto es una abreviatura de
2>&1 |. Esta redirección implícita de la salida
de error estándar hacia la salida estándar se realiza
después de cualquier redirección definida mediante
orden1.
El estado de salida de una tubería será el de la
última orden salvo que la opción pipefail esté
activada, en cuyo caso el estado de salida será el de la
última (más a la derecha) orden que conforme la
tubería. Si se precede la tubería de la palabra reservada
!, su estado de salida será la negación lógica
del estado de salida descrito para los casos anteriores. La shell
esperará que finalice la ejecución de la última orden
para devolver un estado de salida.
Si la palabra reservada time precede una tubería, se
informa del tiempo transcurrido, así como del de usuario y sistema,
consumido en la ejecución de la tubería, cuando ésta
termina. La opción -p cambia el formato de salida al
especificado por POSIX. Cuando la shell está en modo posix, no
reconoce time como palabra reservada si el siguiente conjunto de
opciones comienza por "-". La variable TIMEFORMAT
puede definir la forma en que se muestran las temporizaciones.
Consulte TIMEFORMAT en el apartado Variables de la
Shell.
Cuando la shell está en modo posix, time
puede ir seguido de un salto de línea. En cuyo caso, se muestra la
totalidad del tiempo de usuario y sistema consumido por la shell y sus
descendientes. Puede usarse la variable TIMEFORMAT para
definir el formato de la información de tiempo.
Cada orden que forme parte de una tubería se ejecuta en un
proceso separado, es decir, en una subshell. Consulte ENTORNO DE
EJECUCIÓN DE ÓRDENES si precisa información acerca
del entorno en una subshell. Si la opción lastpipe
está activada mediante la orden nativa shopt (vea la
descripción de shopt a continuación), el último
elemento de una tubería puede ser ejecutado por la propia shell
cuando no está activado el control de tareas.
Una lista es una secuencia de una o más
tuberías separadas por uno de los operadores ;, &,
&&, o ||, y terminada opcionalmente por uno de
;, &, o <nueva-línea>.
De estos operadores de listas, && y ||
tienen igual precedencia. Le siguen ; y &, que
también tienen igual precedencia.
Puede aparece uno o varios saltos de línea en lugar de un
punto y coma para delimitar órdenes en una lista
Si una orden se termina mediante el operador de control
&, la shell ejecuta la orden en segundo plano en una
subshell. La shell no espera que la orden acabe, y el estado de salida
será 0. Esto es lo que se denomina órdenes
asíncronas. Las órdenes separadas por un ; se
ejecutan secuencialmente; la shell espera que cada orden termine, por orden.
En este caso, el estado de salida será el de la última orden
ejecutada.
Las listas AND y OR son secuencias formadas por una o más
tuberías separadas por los operadores de control && y
||, respectivamente. Se comienzan a interpretar por la izquierda. Una
lista AND tiene el siguiente formato:
orden2 se ejecuta si y solo si orden1 devuelve un
estado de salida 0.
Una lista O tiene el siguiente formato
orden2 se ejecuta si y solo si orden1 devuelve un
estado de salida distinto de cero. El estado de salida de las listas Y y O
es el de la última orden ejecutada en la lista.
Órdenes Compuestas
Una orden compuesta es una de las siguientes. En la
mayoría de los casos, una lista en la descripción de
una orden puede ir separada del resto de la orden por uno o más
saltos de línea y puede ir seguido de un salto de línea en
lugar de un punto y coma.
- (lista)
- lista se ejecuta en una subshell (consulte ENTORNO DE
EJECUCIÓN DE ÓRDENES más adelante).
Después de que la orden finaliza su ejecución, las
asignaciones a variables y órdenes nativas que afectaran al entorno
de la shell no siguen vigentes. El estado de retorno es el de salida de
lista.
- { lista; }
- lista se ejecuta en el entorno actual de la shell, deberá
finalizar con un salto de línea o un punto y coma. Esto se conoce
como un grupo de órdenes. El estado de salida es el de
lista. Observe que a diferencia de los metacaracteres ( y
), los metacaracteres { y } son palabras
reservadas y solo deberían utilizarse donde dichas palabras se
reconozcan como tales. Como no pueden causar una división de
palabra, deben separarse de la lista mediante espacio o mediante
otro metacarácter de la shell.
- ((expresión))
- La expresión se evalúa de acuerdo a las reglas
descritas más adelante bajo la sección
EVALUACIÓN ARITMÉTICA. Si el valor de la
expresión es distinto de cero, el estado de retorno es 0;
de otro modo el estado de retorno es 1. La expresión
está sujeta a la misma expansión que tendria estnado entre
comillas dobles, salvo que dichas comillas no seria tratadas como
caracteres especiales y se eliminarían.
- [[ expresión ]]
- Devuelve un estado de 0 o 1 dependiendo de la evaluación de la
expresión condicional expresión. Las expresiones se
componen de las primarias descritas más adelante en el apartado
EXPRESIONES CONDICIONALES. No tienen lugar división
de palabras ni expansión de nombres de ruta en las palabras
entre el [[ y el ]]; sí se realizan la
expansión de tilde, expansión de parámetros y
variables, expansión aritmética, sustitución de
orden, sustitución de proceso y eliminación de comillas en
dichas palabras (la expansión que ocurriría si las palabras
estuviesen entre comillas dobles). Deben eliminarse las comillas de los
operadores condicionales como -f para que sean reconocidos como
primarios.
Cuando se emplean con [[, los operadores < y
> ordenan lexicográficamente en base a la
configuración del idioma actual.
Vea la descripción de la orden nativa test en la
sección ÓRDENES NATIVAS DE LA SHELL más adelante para
la gestión de parámetros (es decir, para los parámetros
que no se indican).
Cuando se emplean los operadores == y !=, la cadena
a la derecha del operador se considera un patrón y se hace concordar
de acuerdo a las reglas descritas más adelante bajo el
epígrafe Concordancia de patrones, tal como si estuviese
activa la opción extglob de la shell. El operador ==
equivale a =. Si está activada la opción
nocasematch de la shell, se buscará la concordancia sin
diferenciar entre mayúsculas y minúsculas. El valor devuelto
es 0 si la cadena concuerda (==) o no concuerda (=0 )con el
patrón, respectivamente, y 1 en otro caso. Cualquier parte del
patrón puede entrecomillarse para forzar la concordancia como una
cadena de caracteres pura.
Dispone de otro operador binario: =~. Tiene la misma
prevalencia que == y !=. Al usarlo, la cadena a la derecha se
considerará una expresión regular ampliada POSIX y concordada
adecuadamente (mediante las interfaces POSIX regcomp y regexec
generalmente descritas en regex(3). El valor devuelto será 0
si la cadena concuerda con el patrón y 1 en caso contrario. Si la
expresión regular contiene algún error de sintaxis se
devolverá el valor 2. Si la opción nocasematch
está activa, se buscará la concordancia sin distinguir entre
mayúsculas y minúsculas. Si se entrecomilla una parte del
patrón, dicha parte concordará literalmente. Debe tenerse
especial cuidado con el uso de corchetes ya que las comillas normales
pierden su especial significado entre ellos.
El patrón concordará si lo hace cualquier parte de
la cadena. Para hacer que concuerde la cadena completa, puede rodear el
patrón con los operadores de expresiones regulares ^ y
$. La variable vectorial BASH_REMATCH registra la parte
de la cadena que concordó con el patrón. El elemento
de BASH_REMATCH con índice 0 contendrá
el fragemento de la cadena que concuerda con toda la
expresión regular. Las subcadenas que concuerdan con subexpresiones
entre paréntesis se guardan en los índices de
BASH_REMATCH donde el índice n es la parte de
la cadena que concuerda con la nésima
subexpresión entre paréntesis. Bash define
BASH_REMATCH con un alcance general, declararla como
una variable local puede dar lugar a resultados indeseados.
Las expresiones pueden combinarse mediante los siguientes
operadores, listados en orden decreciente de precedencia:
- ( expresión )
- Devuelve el valor de expresión. Esto puede emplearse para
cambiar la precedencia normal de los operadores.
- ! expresión
- Verdad si expresión es falsa.
- expresión1
&& expresión2
- Verdad si ambas expresión1 y expresión2 son
verdaderas.
- expresión1
|| expresión2
- Verdad si una al menos de expresión1 o
expresión2 es verdad.
Los operadores && y || no evalúan la
expresión2 si el valor de expresión1 es
suficiente para determinar el valor de retorno de toda la expresión
condicional.
- for nombre [ [
in palabra ...; ] ] do lista ;
done
- La lista de palabras que va detrás de in se expande,
generando una lista de elementos. La variable nombre se define como
cada elemento de la lista en cada iteración, y lista se
ejecuta cada vez. Si la palabra de in se omite, la orden
for ejecuta lista una vez para cada parámetro
posicional que esté definido (consulte
PARÁMETROS más adelante). El estado de
retorno es el de salida de la última orden que se ejecuta. Si la
expansión de los elementos después del in resulta en
una lista vacía, no se ejecuta ninguna orden y el estado de salida
es 0.
- for (( expr1 ;
expr2 ; expr3 )) ; do lista ;
done
- Primeramente se evaluará la expresión aritmética
expr1 en base a las reglas definidas más adelante en la
sección EVALUACIÓN ARITMÉTICA.
Después se evalúa la expresión expr2
repetidamente hasta que el resultado sea cero. Cada vez que
expr2 se evalúe con un resultado diferente a cero, se
ejecutará lista y se evaluará expr3. Si se
omite alguna de las expresiones, se considerará el valor 1 como
resultado de su evaluación. El valor retornado es el estado de
salida de la última orden de lista ejecutada o falso si
alguna de las expresiones no es válida.
- select
nombre [ in palabra ] ; do lista ;
done
- La lista de palabras que sigue a in se expande, generando una lista
de elementos. El conjunto de palabras expandidas se muestra en la salida
estándar de errores, cada una precedida por un número. Si la
palabra del in se omite, se muestran los parámetros
posicionales (consulte PARÁMETROS más
adelante). Entonces se muestra el indicador
PS3 y se lee una línea desde la entrada
estándar. Si la línea consiste en un número
correspondiente a una de las palabras mostradas, entonces el valor de
nombre se pone a esa palabra. Si la línea está
vacía, las palabras y el indicador se muestran de nuevo. Si se lee
EOF, la orden select se completa y devuelve 1. Cualquier otro valor
leída hace que nombre se defina como un valor vacío.
La línea leída se guarda en la variable REPLY.
La lista se ejecuta tras cada selección hasta que se
ejecute una orden break. El estado de salida de
select es el de la última orden ejecutada en lista o
cero si no se ha ejecutado ninguna orden.
- case palabra
in [ [(] patrón [ | patrón ] ... )
lista ;; ] ... esac
- Una orden case expandirá primero palabra y
buscará si concuerda con cada uno de los patrones en base a
las reglas de concordancia descritas más adelante en
Concordancia. La palabra se expandirá empleando
expansión de tilde, expansión de parámetros y
variables, expansión aritmética, sustitución de
órdenes, sustitución de procesos y eliminación de
comillas. Cada patrón examinado se expande empleando
expansión de tilde, expansión de parámetros y
variables, expansión aritmética, sustitución de
órdenes, sustitución de procesos y eliminación de
comillas. Si está activa la opción nocasematch, se
buscará la concordancia sin distinguir entre mayúsculas y
minúsculas. Cada vez que se encuentre una concordancia, se
ejecutará la correspondiente lista. Si se emplea el operador
;;, una vez encontrada una concordancia, no se seguirán
buscando más. Si se emplea ;& en lugar de ;;, la
ejecución continuará con la lista asociada con el
siguiente conjunto de patrones. Si se utiliza ;;& en lugar de
;; hará que la shell pruebe el siguiente conjunto de
patrones, si lo hubiese, ejecutando las listas de una concordancia,
siguiendo con la ejecución de la estructura 'case' como si no
hubiese habido concordancia alguna. El valor de salida será cero si
no existen concordancias con ningún patrón. En cualquier
otro caso, será el estado de salida correspondiente a la
última orden ejecutada en lista.
- if lista;
then lista; [ elif lista; then
lista; ] ... [ else lista; ] fi
- La lista if se ejecuta. Si su estado de salida es cero, se
ejecuta la lista then. De otro modo, se ejecuta por turno
cada lista elif, y si su estado de salida es cero, se
ejecuta la lista then correspondiente y la orden se
completa. Si no, se ejecuta la lista then si está
presente. El estado de salida es el de la última orden ejecutada, o
cero si ninguna condición fue verdadera.
- while lista-1;
do lista-2; done
- until lista-1;
do lista-2; done
- La orden while ejecuta continuamente la lista lista-2
siempre que la última orden de lista-1 devuelva un estado de
salida cero. La orden until es idéntica a la while,
salvo que la comprobación es a la inversa: la lista-2 se
ejecuta mientras que la última orden en lista-1 devuelva un
estado de salida distinto de cero. El estado de salida de las
órdenes while y until es el de la última orden
de la lista-2 ejecutada, o cero si no se ejecutó ninguna
orden.
Un coproceso es una orden de la shell precedida de la
palabra reservada coproc. Un coproceso se ejecuta de modo
asíncrono en una subshell, de igual modo que si la orden fuese
seguida del operador de control &, con una tubería
bidireccional entre la shell y el coproceso.
La sintaxis de un coproceso es la siguiente:
coproc [NOMBRE] orden
[redirecciones]
Esto creará un coproceso llamado NOMBRE.
orden puede ser un orden simple o compuesta. NOMBRE
será una variable de la shell. Si no se da ningún
NOMBRE, por defecto se asignará el de COPROC.
El formato recomendado de un coproceso es el siguiente:
coproc NOMBRE { orden [redirecciones];
}
Esta forma es recomendable porque las ordenes simples harán
que el coproceso siempre se llame COPROC, siendo más sencillo
su uso y más completo que las otras órdenes compuestas.
Si orden es una orden compuesta, NOMBRE será
opcional. La palabra que siga a coproc determinará si dicha
palabra debe interpretarse como el nombre de una variable: se
considerará como el valor de NOMBRE si no es una palabra
reservada que introduzca una orden compuesta. Si orden es una orden
simple, NOMBRE no está permitido; esto se hace para evitar
confusiones entre NOMBRE y la primera palabra de la orden
compuesta.
Cuando se ejecuta un coproceso, la shell crea una variable
vectorial (consulte vectores más adelante) llamada
NOMBRE dentro de la shell que lo ejecuta. La salida estándar
de orden está unida a un descriptor de archivo de la shell
mediante una tubería, asignándose éste a
NOMBRE[0]. La entrada estándar de la orden
también está conectada mediante una tubería a otro
descriptor de archivo de la shell asignado a NOMBRE[1]. Esta
tubería se define antes de cualquier redirección definida en
la orden (consulte REDIRECCIONES más adelante). Estos
descriptores de archivo pueden emplearse como argumentos en órdenes y
redirecciones mediante epansión de palabra. Salvo aquellos creados
durante la ejecución de órdenes y la sustitución de
procesos, los descriptores de archivo no están disponibles en
subshells.
El identificador de proceso de la shell abierta para ejecutar el
coproceso se almacena en el valor de la variable NAME_PID. La orden
nativa wait puede emplearse para esperar la finalización del
coproceso.
Como el coproceso se creó como una orden asíncrona,
la orden coproc siempre tiene una valor de salida de éxito. El
valor de salida de un coproceso es el de orden.
Una función de la shell es un objeto que se invoca de igual
manera que las órdenes simples y pero ejecutan una orden compuesta
con un conjunto propio de parámetros posicionales. Las funciones de
la shell se declaran del siguiente modo:
- nombre_función
() orden_incluida [redirección]
- function
nombrefunción [()] orden-compuesta
[redirección]
- Define una función llama nombrefunción. La palabra
reservada function es opcional, si se indica pueden omitirse los
paréntesis. El cuerpo de la función será la
orden compuesta (consulte Órdenes Compuestas más
atrás). Esta orden suele consistir en una lista de
órdenes entre { y }, pero puede ser cualquier orden que figure bajo
Órdenes Compuestas con una única excepción: si
se emplea la palabra reservada function sin paréntesis, son
recomendables las llaves. orden-compuesta se ejecutará
siempre y cuando nombrefunción se especifique como el nombre
de una orden simple. Si estamos en modo posix,
nombrefunción deberá ser un nombre de shell
válido y no podrá ser una de las órdenes
nativas de POSIX. En el modo por defecto, podrá emplearse
cualquier palabra de la shell sin entrecomillar como nombre de una
función (simpre que no contenga $. Cualquier
redirección que se haga cuando se define una función se
llevará a cabo cuando se ejecute la función. El estado de
salida al definir una función será cero salvo que se incurra
en un error de sintaxis o ya exista una función de
sólo-lectura con el mismo nombre. El estado de salida de la
ejecución de una función viene dado por el de la
última orden ejecutada. Consulte FUNCIONES más
adelante.
En una shell no interactiva, o en una interactiva en el que la
opción interactive_comments de la orden nativa shopt
está activa (consulte ÓRDENES NATIVAS DE LA
SHELL más adelante), una palabra que empiece por #
hace que esa palabra y todos los caracteres que queden en esa línea
no sean tenidos en cuenta. Una shell interactiva sin la opción
interactive_comments habilitada, no admite comentarios. La
opción interactive_comments está activa por defecto en
shells interactivas.
El entrecomillado se emplea para quitar el significado
especial para la shell de ciertos metacaracteres o palabras. Puede emplearse
para que no se traten caracteres especiales de forma especial, para que
palabras reservadas no sean reconocidas como tales, y para evitar la
expansión de parámetros.
Cada uno de los metacaracteres listados a
continuación bajo el epígrafe DEFINICIONES tiene
un significado especial para la shell y deben ser protegidos o
entrecomillados si quieren referirse a sí mismos.
Cuando se utilizan la funciones de expansión de historial
(consulte EXPANSIÓN DEL HISTORIAL a
continuación), tiene que entrecomillarse el
carácter de expansión del historial, generalmente
! si se desea evitar dicha expansión.
Existen tres métodos de entrecomillado: El
carácter de escape, comillas simples y comillas dobles.
Una barra inclinada inversa no entrecomillada (\) es el
carácter de escape. Preserva el valor literal del siguiente
carácter que lo acompaña, con la excepción de
<nueva-línea>. Si aparece un par
\<nueva-línea> y la barra invertida no está ella
misma entre comillas, el \<nueva-línea> se trata como
una continuación de línea (esto es, se quita del flujo de
entrada y no se tiene efectivamente en cuenta).
Encerrar caracteres entre apóstrofes preserva el valor
literal de cada carácter entre las comillas. Una comilla simple no
puede estar entre comillas simples, ni siquiera precedida de una barra
invertida.
Encerrar caracteres entre comillas dobles preserva el valor
literal de todos los caracteres de dentro de las comillas, con la
excepción de $, `, y \, si está activa la
expansión del historial, también !. Cuando la shell
está en modo posix, ! no tiene un significado especial
si va entre dobles comillas aunque esté activa la expansión
del historial. Los caracteres $ y ` mantienen sus significados
especiales dentro de comillas dobles. La barra invertida mantiene su
significado especial solamente cuando está seguida por uno de los
siguientes caracteres: $, `, "", \, o
<nueva-línea>. Una comilla doble puede ser
entrecomillada entre otras comillas dobles precediéndola de una barra
invertida. Si está activa, la expansión del historial se
realizará salvo que un ! entre comillas dobles se escape con
una barra invertida. No se elimina la barra invertida si precede a
!.
Los parámetros especiales * y @ tienen un
significado especial cuando están entre comillas dobles (consulte
PARÁMETROS más adelante).
Las secuencias de caracteres de la forma $'cadena'
se consideran como una forma espcial de comillas simples. La secuencia se
expande a cadena, con los caracteres de cadena que
estén protegidos por una barra invertida reemplazados según
especifica el estándar ANSI de C. Las secuencias de escape con barra
invertida, si están presentes, se descodifican como sigue:
- \a
- alerta (pitido)
- \b
- espacio-atrás
- \e
- \E
- un carácter de escape (ESC)
- \f
- nueva página
- \n
- nueva linea
- \r
- retorno de carro
- \t
- tabulación horizontal
- \v
- tabulación vertical
- \\
- barra invertida
- \'
- comillas simples
- \"
- comillas dobles
- \?
- signo de interrogación
- \nnn
- el carácter de 8-bits cuyo código es el valor octal
nnn (de uno a tres dígitos octales)
- \xHH
- el carácter de 8-bits cuyo código es el valor hexadecimal
HH (uno o dos dígitos hexadecimales)
- \uHHHH
- caŕácter Unicode (ISO/IEC 10646) cuyo valor hexadecimal es
HHHH (de uno a cuatro caracteres hexadecimales)
- \UHHHHHHHH
- caŕácter Unicode (ISO/IEC 10646) cuyo valor hexadecimal es
HHHHHHHH (de uno a ocho caracteres hexadecimales)
- \cx
- un carácter de control -x
El resultado de la expansión es entrecomillado con comillas
simples, como si el signo de dólar no hubiera estado presente.
Una cadena entre comillas dobles precedida por un signo de
dólar ($"cadena") hará que la cadena
se traduzca según la localización actual.gettext
buscará su traducción en el catálogo de mensajes
mediante las variables de la shell LC_MESSAGES, TEXTDOMAINDIR
y TEXTDOMAIN. Si la localización actual es C o
POSIX, la cadena no estuviese traducida o no hubiese ninguna
traducción disponible, el signo de dólar no se tiene en
cuenta. Esta es una manera de entrecomillado doble ya que la cadena preserva
las dobles comillas por defecto ya sea traducida o no. Si se activa la
opción noexpand_translation mediante la orden nativa
shopt, las cadenas traducidas tendrán comillas simples en
lugar de dobles. Consulte la descripción de shopt más
adelante en el aprtado ÓRDENES NATIVAS DE LA
SHELL.
Un parámetro es una entidad que almacena valores.
Puede ser un nombre, un número, o uno de los caracteres
especiales listados a continuación bajo el epígrafe
Parámetros especiales. Una variable es un
parámetro que se denota mediante un nombre, puede tener un
valor de cero o más atributos. Dichos atributos se
asigna mediante la orden nativa declare (consulte declare
más adelante en la sección ÓRDENES NATIVAS DE
LA SHELL).
Un parámetro está definido si se le ha asignado un
valor. La cadena vacía es un valor válido. Una vez que una
variable está definida, solo puede quitarse de la lista de variables
mediante la orden nativa unset (consulte ÓRDENES
NATIVAS DE LA SHELL más adelante).
A una variable se le puede asignar un valor mediante una
sentencia de la forma
Si no se da el valor, a la variable se asigna la cadena
vacía. Todos los valores están sujetos a
expansión de tilde, de parámetros y de variables,
sustitución de órdenes, expansión aritmética, y
eliminación de comillas (consulte EXPANSIÓN
más adelante). Si la variable tiene activado su atributo
integer entonces valor se evaluará como una
expresión aritmética incluso si no se emplea la
expansión $((...)) (consulte Expansión
aritmética más adelante). No se realiza la división
de palabras ni la expansión de nombres de ruta. Las asignaciones
también pueden figurar como argumentos de las órdenes nativas
alias, declare, typeset, export, readonly
y local (órdenes de declaración). En modo
posix estas órdenes nativas puede aparecer en una orden
después de una o más instancias de la orden nativa y
mantener las propiedades de la asignación.
En el contexto en el que una declaración de
asignación asigna un valor a una variable de la shell o índice
vectorial, el operador += puede emplearse para agregar o incluir en el valor
anterior de la variable. Esto incluye argumentos para órdenes nativas
como declare que acepten declaraciones de asignación
(órdenes de declaración). Cuando se aplica += a una
variable que se definido como número entero (integer), su
valor se calcula como una expresión aritmética y se
suma al valor actual de la variable, que también se calcula. Cuando
+= se aplica a una variable vectorial mediante asignación compuesta
(consulte Vectores a continuación), el valor de la variable no
se anula (como sucede cuando se usa =), y los nuevos valores se agregan al
vector a partir de uno mayor que el índice máximo del mismo
(caso de vectores indexados) o agregados como pares clave-valor adicionales
si es un vector asociativo. Cuando se aplica a una variable con valor de
cadena, el valor se expande y se agrega al valor de la variable.
A una variable se le puede asignar el atributo nameref
ejecutando las órdenes nativas declare o local con la
opción -n (consulte las descripciones de declare y
local a continuación) para crear un nameref, o una
referencia a otra variable. Esto permite que las variables sean manipuladas
de forma indirecta. Cada vez que se hace referencia a la variable
nameref, se asigna, se anula o se modifican sus atributos (no usando
o cambiando el atributo nameref en sí), la operación se
realizará sobre la variable definida por el valor de la variable
nameref. Una referencia de nombre (nameref) suele usarse dentro de las
funciones de shell para referirse a una variable cuyo nombre se pasa como
argumento a la función. Por ejemplo, si se pasa un nombre de variable
a una función de shell como su primer argumento, ejecutando
declare -n ref=$1
dentro de la función se creará una variable
ref cuyo valor es el nombre de la variable pasado como primer
argumento. Las referencias y asignaciones a ref, y los cambios en sus
atributos, se tratan como referencias, asignaciones y modificaciones de
atributos a la variable cuyo nombre se pasó como $1. Si la
variable de control en un bucle for tiene el atributo nameref, la
lista de palabras puede ser una lista de variables de shell, y se
establecerá una referencia de nombre para cada palabra en la lista,
cada vez que se ejecute el ciclo. A las variables vectoriales no se les
puede asignar el atributo nameref. Sin embargo, las variables nameref
pueden hacer referencia a variables vectoriales y variables vectoriales con
subíndice. Las referencias de nombre se pueden desactivar mediante la
opción -n en la orden nativa unset. De lo contrario, si se
ejecuta unset con el nombre de una variable nameref como argumento,
la variable a la que hace referencia se desactivará.
Parámetros Posicionales
Un parámetro posicional es un parámetro
denotado por uno o más dígitos, distintos del simple 0. Los
parámetros posicionales se asignan a partir de los argumentos de la
shell cuando éste es llamado, y pueden ser reasignados mediante la
orden nativa set. Los parámetros posicionales no pueden ser
asignados con sentencias de asignación. Los parámetros
posicionales se reemplazan temporalmente cuando se ejecuta una
función de la shell (consulte FUNCIONES más
adelente).
Cuando un parámetro posicional consistente en más de
un solo dígito se expande, debe rodearse por llaves (consulte
EXPANSIÓN más adelante).
Parámetros Especiales
la shell trata de forma especial a ciertos parámetros.
Éstos solo pueden referenciarse; no se permite asignarles nada.
- *
- Se expande a los parámetros posicionales, empezando por 1. Cuando
la expansión no ocurre entre comillas dobles, cada parámetro
posicional se expande a una palabra separada. En los contextos en los que
se realiza, estas palabras pueden ser objeto de separación y de
expansión del nombre de ruta. Cuando dicha expansión ocurren
dentro de un entrecomillado doble, ésta se expande a una sola
palabra con el valor de cada parámetro separado por el primer
carácter de la variable especial IFS. Esto es,
"$*" es equivalente a
"$1c$2c...", donde c
es el primer carácter del valor de la variable IFS.
Si IFS no está definida, los
parámetros se separan por espacios. Si IFS es la
cadena vacía, los parámetros se juntan sin
ningún separador.
- @
- Se expande a los parámetros posicionales, comenzando desde el uno.
En donde se realiza la división de palabras, se expande cada
parámetro posicional a una palabra separada; si no están
entrecomillada con comillas dobles, estas palabras estarán sujetas
a división de palabra. Donde no se realiza la división de
palabra, se expande a una sola palabra con cada parámetro
posicional separado por un espacio. Cuando la expansión ocurre
entre comillas dobles, cada parámetro se expande a una palabra
separada. Es decir, "$@" es equivalente a '$1'
'$2'... Si la expansión entre comillas dobles ocurre dentro
de una palabra, la expansión del primer parámetro se une con
la parte inicial de la palabra original y la expansión del
último parámetro se une con la última parte de la
palabra original. Cuando no hay parámetros posicionales,
'$@'y $@ se eliminan (se expande a 'nada').
- #
- Se expande al número en base 10 de parámetros
posicionales.
- ?
- Se expande al estado de salida de la tubería más
recientemente ejecutada en primer plano.
- -
- Se expande a las opciones de la shell activas actualmente según se
hayan especificado en la llamada, mediante la orden nativa set, o
las que haya puesto el mismo shell (como la opción -i).
- $
- Se expande al PID de la shell. En una subshell, se expande al PID de la
shell actual, no al del subshell.
- !
- Se expande al PID del proceso más recientemente ejecutado en
segundo plano ya fuese ejecutado como una orden asíncrona o
mediante la orden nativa bg. Consulte CONTROL DE
TAREAS más adelante.
- 0
- Se expande al nombre de la shell o script de la shell. Este
parámetro se pone en el inicio de la shell. Si bash se llama
con un fichero de órdenes, $0 se pone al nombre de ese
fichero. Si bash se arranca con la opción -c,
entonces $0 se pone al primer argumento tras la cadena que se va a
ejecutar, si hay alguno presente. Si no, se pone al nombre de fichero
empleado para llamar a bash, como se da en el argumento cero.
la shell define automáticamente las siguientes
variables:
- _
- Al inicio de la shell, adopta el valor de la ruta con la que se
inició dicha shell o el script que se ejecute tal como se
indicó en el entorno en los argumentos. Por lo tanto se
expandirá al último argumento de la anterior orden ejecutada
en primer plano después de la expansión. También
adopta el valor de la ruta completa empleada para invocar cada orden
ejecutada, se pone en el entorno exportado para esa orden. En el caso de
la lectura de correo electrónico, esta variable adopta el valor del
nombre del archivo de correo leído en cada instante.
- BASH
- Se expande al nombre completo del fichero empleado para llamar a esta
instancia de bash.
- BASHOPTS
- Una lista, de elementos separados por dos puntos, de opciones activas de
la shell. Cada palabra en la lista es un argumento válido para la
opción -s de la orden nativa shopt (consulte
ÓRDENES NATIVAS DE LA SHELL más
adelante). Las opciones que aparecen en BASHOPTS son
aquéllas que aparecen como on en shopt. Si
esta variable está en el entorno cuando se inicia bash, cada
opción de la shell en la lista se activará antes de cargar
cualquier archivo de inicio. Es una variable de solo lectura.
- BASHPID
- Se expande al ID del proceso en ejecución de bash. Esto
difiere de $$ en ciertos casos, como las subshells que no requieren
una reinicialización de bash. No se consideran las
asignaciones de BASHPID. Si se anula el valor
definido a BASHPID, ésta pierde sus propiedades especiales
aunque se vuelva a definir posteriormente.
- BASH_ALIASES
- Una variable vectorial asociativa cuyos miembros pertenecen a la lista
interna de alias tal como la gestiona la orden nativa alias. Los
elementos agregados a este vector aparecen en la lista de los alias; sin
embargo, desactivar elementos del vector no hará que los alias se
eliminen de dicha lista. Si se desactiva BASH_ALIASES,
perderá sus propiedades especiales, incluso si se reactiva
posteriormente.
- BASH_ARGC
- Una variable vectorial formada por el número de parámetros
en cada marco de la pila de llamadas de la actual ejecución de
bash. El número de parámetros de la subrutina actual
(función o script ejecutado mediante . o source) se
encuentra en la parte superior de la pila. Cuando se ejecuta una
subrutina, se envian los parámetros a BASH_ARGC. La
shell activa BASH_ARGC solo cuando está en
modo de depuración ampliado (consulte más adelante
la descripción de la opción extdebug de la orden
nativa shopt). La activación de extdebug
después de iniciar la ejecución de un script, o hacer
referencia a esta variable cuando no se ha configurado, puede dar lugar a
resultados inconsistentes.
- BASH_ARGV
- Una variable vectorial que contiene todos los parámetros de la pila
de llamadas de la ejecución actual de bash. El
parámetro final de la última llamada a la subrutina
está en la parte superior de la pila; el primer parámetro de
la llamada inicial está en la parte inferior. Cuando se ejecuta una
subrutina, los parámetros proporcionados se envían a
BASH_ARGV. La shell activa BASH_ARGV
solo cuando está en modo de depuración ampliado
(consulte a continuación la descripción de la opción
extdebug de la orden nativa shopt). Activar extdebug
después del inicio de la ejecución de un script, o hacer
referencia a él cuando no se ha configurado, puede generar valores
inconsistentes.
- BASH_ARGV0
- Esta variable se expande al nombre de la shell o del script (igual que
$0, consulte al descripción del parámetro especial 0
anteriormente). Los valores asignados a BASH_ARGV0, también
se asignan automáticamente a $0. Si se desactiva
BASH_ARGV0, perderá sus propiedades especiales aunque
posteriormente sea reactivado.
- BASH_CMDS
- Variable vectorial asociativa cuyos miembros corresponden al hash de la
tabla interna de órdenes tal como la gestiona la orden nativa
hash. Los elementos que se añadan a ese vector
aparecerán en dicha tabla, sin embargo los elementos que se
desactiven sí que seguirán apareciendo. Si se desactiva
BASH_CMDS, perderá sus propiedades especiales aunque se
vuelva a reactivar posteriormente.
- BASH_COMMAND
- La orden que está siendo ejecutada en ese instante o que va a
serlo, excepto cuando se ejecute una orden marcada en una tramp (trap) e
cuyo caso equivaldría a dicha orden. Si se anula la
definición de BASH_COMMAND, pierde sus propiedades
especiales aunque se vuelva a definir con posterioridad.
- BASH_EXECUTION_STRING
- La orden dada como argumento al ejecutar con la opción
-c.
- BASH_LINENO
- Variable vectorial cuyos miembros corresponden a los números de
línea de código fuente donde se invocó
FUNCNAME. ${BASH_LINENO[$i]}
será el número de línea en el archivo de
código fuente (${BASH_SOURCE[$i+1]}) donde se
invocó ${FUNCNAME[$i]} (o bien
${BASH_LINENO[$i-1]} si está referenciado en
el seno de otra función de la shell). El número de
línea actual puede obtenerse mediante
LINENO.
- BASH_LOADABLES_PATH
- Lista de directorios separados entre si po dos puntos en los cuales la
shell busca órdenes nativas cargables dinámicamente
definidas por la orden enable.
- BASH_REMATCH
- Variable vectorial cuyos miembros se asignan mediante el operador
=~ a la orden condicional [[. El elemento con índice
0 corresponderá a la parte de la cadena que concuerda con la
totalidad de la expresión regular. El elemento con índice
n corresponderá a la porción de cadena que concuerda
con la nésima subexpresión entre
paréntesis.
- BASH_SOURCE
- Variable vectorial cuyos miembros lo forman los nombres de los archivos de
código fuente donde se definen los nombres de las funciones de la
shell de la variable vectorial FUNCNAME. La función
de la shell ${FUNCNAME[$i]} se define en el
archivo ${BASH_SOURCE[$i]} y se invoca desde
${BASH_SOURCE[$i+1]}.
- BASH_SUBSHELL
- Se incrementa en una unidad dentro de cada subshell o cada entorno de
subshell cuando la shell se incia en él. El valor inicial es 0. Si
se desactiva BASH_SUBSHELL, ésta perderá su
propiedades especiales aunque luego se vuelva a definir.
- BASH_VERSINFO
- Una variable vector de lectura exclusiva cuyos miembros contienen
información de versión para esta instancia de bash.
Los valores asignados a los miembros del vector son como sigue:
- BASH_VERSION
- Se expande a una cadena que describe la versión de esta instancia
de bash.
- COMP_CWORD
- Índice en ${COMP_WORDS} de la palabra que contiene la
posición actual del cursos. Esta variable solo está
disponible en las funciones de la shell invocadas por las utilidades de
autocompletado. Consulte Autocompletado Programable a
continuación.
- COMP_KEY
- La clave (o última clave de una secuencia de claves) empleada para
invocar la actual función de autocompletado.
- COMP_LINE
- Línea de órdenes actual. Esta variable solo estará
disponible para las funciones de la shell y órdenes externas
invocadas por las utilidades de autocompletado programable. Consulte
Autocompletado Programable a continuación.
- COMP_POINT
- Índice de la posición actual del cursor respecto del
comienzo de la orden actual. Si el cursor está al final de dicha
orden, el valor de esta variable será igual a ${#COMP_LINE}.
Esta variable sólo estará disponible en funciones de la
shell y órdenes externas invocadas durante autocompletados.
Consulte Autocompletado Programable más adelante.
- COMP_TYPE
- Definida como un entero según el tipo de completado provocó
la llamada a una función de autocompletado: TAB para un
autocompletado normal, ? para mostrar autocompletados
después de varias tabulaciones, ! para mostrar las
alternativas disponibles en autocompletados parciales, @ para
mostrar alternativas disponibles cuando se modificó la palabra en
cuestión o % para los menus. Esta variable sólo
estará disponible en funciones de la shell y órdenes
externas invocadas durante autocompletados. Consulte Autocompletado
Programable más adelante.
- COMP_WORDBREAKS
- Conjunto de caracteres que la biblioteca readline considera
separadores de palabras durante el autocompletado. Si se desactiva
COMP_WORDBREAKS, perderá sus características
especiales aunque se reactive de nuevo.
- COMP_WORDS
- Una variable vectorial (consulte Vectores más adelante) que
consta de palabras individuales en la actual línea de
órdenes. La línea se divide en palabras como lo haría
readline, usando COMP_WORDBREAKS tal como se
describe anteriormente. Esta variable está disponible solo en las
funciones de la shell invocadas mediante autocompletado (consulte
Autocompletado Progamable a continuación).
- COPROC
- Variable vectorial (consulte Vectores más adelante) creada
para contener los descriptores de archivo de entrada/salida de un
coproceso cualquiera (consulte Coprocesos anteriormente.
- DIRSTACK
- Una variable vector (consulte Vectores más adelante) que
aloja los contenidos actuales de la pila de directorios. Los directorios
aparecen en la pila en el orden en el que se muestran con la orden nativa
dirs. La asignación a miembros de este vector puede
emplearse para modificar directorios que ya estén en la pila, pero
entonces deben utilizarse las órdenes nativas pushd y
popd para añadir y quitar directorios. La asignación
a esta variable no cambiará el directorio de trabajo. Si
DIRSTACK no está definido, pierde sus propiedades
especiales, incluso si posteriormente es redefinido.
- EPOCHREALTIME
- Este parámetro se sustituirá por una cifra de coma flotante
con el número de segundos desde el Inicio (Epoch) de Unix (consulte
time(3)) medidos en microsegundos. No se tienen en cuenta las
asignaciones a EPOCHREALTIME. Si
EPOCHREALTIME no está definido, pierde sus
propiedades especiales, incluso si posteriormente es redefinido.
- EPOCHSECONDS
- Cada vez que este parámetro es referenciado, se devuelve en
él el número de segundos transcurridos desde el Inicio
(Epoch) de Unix (consulte time(3)). No se tendrá en cuenta
ninguna asignación de un valor a EPOCHSECONDS.
Si EPOCHSECONDS no está definido, pierde
sus propiedades especiales, incluso si posteriormente es
redefinido.
- EUID
- Se expande al UID efectivo del usuario actual, puesta en el incio de la
shell. Esta variable es de solo lectura.
- FUNCNAME
- Una matriz variable que contiene todas las funciones de la shell que
están en la pila de ejecución en ese instante. El elemento
con índice 0 es el nombre de cualquier función de la shell
que se esté ejecutando. El último elemento (aquel con el
índice más elevado) es "main". Esta variable solo
existe cuando se está ejecutando un función de la shell. No
se tendrá en cuenta ninguna asignación en a
FUNCNAMES. Si FUNCNAMES no está
definido, pierde sus propiedades especiales, incluso si
posteriormente es redefinido.
Esta variable puede emplearse con BASH_LINENO y con
BASH_SOURCE. Cada elemento de FUNCNAME se corresponde con
otros en BASH_LINENO y BASH_SOURCE para describir la pila
de llamadas. Por ejemplo: ${FUNCNAME[$i]} se invoca
desde el archivo ${BASH_SOURCE[$i+1]} en el
número de línea ${BASH_LINENO[$i]}.
La función interna caller muestra la invocación
actual en base a esta información.
- GROUPS
- Una matriz variable que contiene la lista de grupos a los que pertenece el
usuario actual. No se tendrá en cuenta ninguna asignación en
a GROUPS. Si GROUPS no está
definido, pierde sus propiedades especiales, incluso si
posteriormente es redefinido.
- HISTCMD
- El número de historial o índice en el historial de la orden
actual. No se consideran asignaciones a HISTCMD. Si
HISTCMD no está definido, pierde sus
propiedades especiales, incluso si posteriormente es redefinido.
- HOSTNAME
- Asignados automáticamente al nombre del anfitrión (equipo)
actual.
- HOSTTYPE
- Asignado automáticamente a una cadena que describe de forma
unívoca el tipo de máquina en la que bash se
está ejecutando. El valor predefinido depende del sistema.
- LINENO
- Cada vez que este parámetro es referenciado, la shell sustituye un
número en base 10 representando el número de línea
secuencial actual (empezando por 1) dentro de un script o función.
Si no estamos en un script o función, no se garantiza que el valor
sustituido tenga significado. Si LINENO no
está definido, pierde sus propiedades especiales, incluso si
posteriormente es redefinido.
- MACHTYPE
- Asignado automáticamente a una cadena que describe completamente el
tipo de sistema en el que bash se está ejecutando, en el
formato estándar de GNU cpu-compañía-sistema.
El valor predefinido depende del sistema.
- MAPFILE
- Una matriz variable (consulte Matrices a continuación)
creada para incluir el texto captado por la orden nativa mapfile
cuando no se indica ningún nombre de variable.
- OLDPWD
- El directorio de trabajo anterior como lo puso la orden cd.
- OPTARG
- El valor del último argumento que es una opción procesado
por la orden nativa getopts (consulte ÓRDENES
NATIVAS DE LA SHELL a continuación).
- OPTIND
- El índice del siguiente argumento a ser procesado por la orden
nativa getopts (consulte ÓRDENES NATIVAS DE LA
SHELL más adelante).
- OSTYPE
- Asignado automáticamente a una cadena que describe el sistema
operativo en el que bash se está ejecutando. El valor
predefinido depende del sistema.
- PIPESTATUS
- Una variable vector (consulte Vectores más adelante) que
contiene una lista de valores de estado de salida de los procesos en la
tubería en primer plano ejecutada más recientemente (que
puede contener una sola orden).
- PPID
- El PID del proceso padre de la shell. Esta variable es de lectura
exclusiva.
- PWD
- El directorio de trabajo actual como lo pone la orden cd.
- RANDOM
- Cada vez que este parámetro sea referenciado, se genera un entero
aleatorio entre 0 y 32767. Si se asigna un valor a RANDOM se
inicia (se 'siembra') la secuencia de números aleatorios.
Si RANDOM no está definido, pierde sus
propiedades especiales, incluso si posteriormente es redefinido.
- READLINE_ARGUMENT
- Cualquier argumento numérico dado un una orden Readline definido
mediante "bind -x" (consulte ÓRDENES NATIVAS DE
LA SHELL a continuación) cuando se ha invocado.
- READLINE_LINE
- Contenido del buffer de línea de readline, para emplear con
"bind -x" (consulte ÓRDENES NATIVAS DE LA
SHELL a continuación).
- READLINE_MARK
- Posición de la marca (punto de inserción) en la línea
guardad de readline para emplear con "bind -x" (consulte
ÓRDENES NATIVAS DE LA SHELL más adelante).
Los caracteres situadoes entre el punto de inserción y la
marca suelen denominarse región.
- READLINE_POINT
- Posición del punto de inserción en la línea guardada
de readline, para emplear con "bind -x" (consulte
ÓRDENES NATIVAS DE LA SHELL a
continuación).
- REPLY
- La línea de entrada leída por la orden nativa read
cuando no se le dan argumentos.
- SECONDS
- Cada vez que este parámetro es referenciado, se devuelve en
él el número de segundos transcurridos desde la llamada al
shell. Si se asigna un valor a SECONDS, el valor devuelto en
posteriores referencias es el número de segundos desde la
asignación más el valor asignado. La cantidad de segundos
transcurridos hasta la llamada de la shell y hasta el momento actual
vienen dados por el reloj del sistema. Si SECONDS no
está definido, pierde sus propiedades especiales, incluso
si posteriormente es redefinido.
- SHELLOPTS
- Una lista, de elementos separados por dos puntos, de opciones activas del
shell. Cada palabra en la lista es un argumento válido para la
opción -o de la orden nativa set (consulte
ÓRDENES NATIVAS DE LA SHELL más
adelante). Las opciones que aparecen en SHELLOPTS son
aquéllas que aparecen como on en set -o. Si
esta variable está en el entorno cuando bash empieza, cada
opción de la shell en la lista se activará antes de leer
cualquier archivo de inicio. Esta variable es de lectura exclusiva.
- SHLVL
- Se incrementa en uno cada vez que se arranca una nueva instancia de
bash.
- SRANDOM
- Esta variable se expande en un número pseudo-aleatorios de 32-bits
cada vez que es referenciada. El generador de números aleatorios no
es lineal en los sistemas con soporte para
/dev/urandom o arc4random por lo que cada
número generado no tendrá ninguna relación con los
anteriores. No es posible 'sembrar' el generador por lo que no
tendrán ningún efecto las asignaciones a esta variable. Si
SRANDOM no está definido, pierde todas sus
propiedades aunque se redefina posteriormente.
- UID
- Se expande al UID del usuario en curso, puesta en el inicio de la shell.
Esta variable es de solo lectura.
la shell hace uso de las siguientes variables. En algunos casos,
bash asigna un valor predeterminado a una variable; estos casos se
indican a continuación.
- BASH_COMPAT
- Este valor define el nivel de compatibilidad de la shell. Más
adelante en MODO DE COMPATIBILIDAD DE LA SHELL puede leer la
descripción de los distintos niveles de compatibilidad y
sus efectos. Su valor puede ser un número decimal (p.ej: 4.2) o un
entero (p.ej: 42) debiendo corresponder al nivel de compatibilidad
deseado. Si BASH_COMPAT no está definido o lo está
como una cadena vacía, el nivel de compatibilidad se
establecerá al de la versión actual. Si se define a un valor
inválido (no coincida con ningún valor válido de
compatibilidad), la shell mostrará un mensaje de error y
definirá el nivel de compatibilidad por defecto al de la
versión actual. Los valores válidos de compatibilidades se
definen más adelante bajo el epígrafe MODO DE
COMPATIBILIDAD DE LA SHELL. Ejemplos de valores válidos
serían 4.2 o 42, ambos correspondientes a la opción
compat42 shopt definiendo el nivel de compatibilidad a 42.
La versión actual también es un nivel de compatibilidad
válido.
- BASH_ENV
- Si este parámetro está definido cuando bash
está ejecutando un script de shell, su valor se interpreta como un
nombre de archivo que contiene órdenes para iniciar la shell, como
en ~/.bashrc. El valor de BASH_ENV
está sujeto a expansión de parámetros,
sustitución de órdenes y expansión aritmética,
antes de ser interpretado como un nombre de archivo. PATH no
se usa para buscar el nombre de archivo resultante.
- BASH_XTRACEFD
- Si se le asigna un número entero cuyo valor coincida con un
descriptor de archivo válido, bash anotará la salida
generada cuando set -x is enabled to that file descriptor. The file
descriptor is closed when BASH_XTRACEFD is unset or assigned
a new value. Unsetting BASH_XTRACEFD or assigning it
the empty string causes the trace output to be sent to the
standard error. Note that setting BASH_XTRACEFD to 2
(the standard error file descriptor) and then unsetting it will result in
the standard error being closed.
- CDPATH
- Ruta de búsqueda para la orden cd. Es una lista de
directorios separados por dos puntos en los cuales la shell busca
directorios destino especificados por la orden cd. Un valor de
muestra es ".:~:/usr".
- CHILD_MAX
- Define el valor númerico del estado de salida del descendiente para
ser recordado por la shell. Bash no permitirá que este valor se
reduzca más allá de lo definido por POSIX, el valor
máximo (actualmente 8192) tampoco puede ser excedido. El valor
mínimo varía según el sistema.
- COLUMNS
- Utilizado por la orden compuest select para determinar el ancho del
terminal al imprimir listas de selección. Si la opción
checkwinsize está activada o si, estando en una shell
interactiva, se recibe una señal SIGWINCH,
seactivará automáticamente.
- COMPREPLY
- Variable vectorial donde bash leerá las diferentes
posibilidades de autocompletado que genere una función de la shell
invocada por la utilidad de autocompletado programable (consulte
Autocompletado Programable más adelante). Cada elemento del
vector contiene una posibilidad de autocompletado.
- EMACS
- Si bash encuentra esta variable en el entorno cuando se inicia con
el valor "t", interpretará que se está ejecutando
dentro de un buffer de Emacs y deshabilitará la edición de
línea.
- ENV
- Expanded and executed similarly to BASH_ENV (see
INVOCATION above) when an interactive shell is invoked in
posix mode.
- EXECIGNORE
- A colon-separated list of shell patterns (see Pattern Matching)
defining the list of filenames to be ignored by command search using
PATH. Files whose full pathnames match one of these patterns are
not considered executable files for the purposes of completion and command
execution via PATH lookup. This does not affect the behavior of the
[, test, and [[ commands. Full pathnames in the
command hash table are not subject to EXECIGNORE. Use this variable
to ignore shared library files that have the executable bit set, but are
not executable files. The pattern matching honors the setting of the
extglob shell option.
- FCEDIT
- El editor predeterminado para la orden nativa fc.
- FIGNORE
- Una lista de sufijos separados por dos puntos que no hay que tener en
cuenta cuando se realice una terminación de nombres de ficheros
(consulte READLINE más adelante). Un nombre de
archivo cuyo sufijo concuerde con una de las entradas en
FIGNORE se excluye de la lista de nombres de archivo
a completar. Un valor de muestra es ".o:~" (Es necesario
entrecomillar el valor asignado a esta variable al contener tildes).
- FUNCNEST
- Si se le asigna un valor mayor de cero, definirá el máximo
nivel de anidamiento. Las funciones que se invoquen con un nivel mayor
provocarán que se interrumpa la ejecución de la orden en
curso.
- GLOBIGNORE
- Una lista de patrones separados por dos puntos que definen en conjunto de
nombres de ficheros que no hay que tener en cuenta en la expansión
de nombres de ruta. Si un nombre de fichero que concordaba en un
patrón de expansión de nombres de rutas también
concuerda con uno de los patrones en GLOBIGNORE, se quita de
la lista de concordancias.
- HISTCONTROL
- Lista de valores separados por comas que gestiona la forma en que las
órdenes se guardan en el histórico. Si esta lista contiene
ignorespace, no se guardarán en el histórico las
líneas que comiencen por un espacio. Un vale de
ignoredups hará que no se guarden las líneas que
coincidan con la entrada inmediatamente anterior. ignoreboth es una
combinación de ignorespace e ignoredups.
erasedups hará que se borren todas las entradas anteriores
que coincidan con la línea actual antes de insertarse ésta.
Cualquier valor distinto de los anteriores será ignorado. Si
HISTCONTROL no está definido o no contiene un
valor válido se guardarán en el histórico
todas las líneas leídas por la shell, siempre según
el valor de HISTIGNORE. La segunda y subsiguientes
líneas de una órden compuesta multilínea no se
chequean y por lo tanto, se guardan en el histórico
independientemente del valor de HISTCONTROL.
- HISTFILE
- El nombre del archivo en el que se guarda el historial de órdenes
(consulte HISTORIAL más adelante). El valor
predeterminado es ~/.bash_history. Si no está
definido, no se guarda el historial de órdenes cuando se finalice
una shell interactivo.
- HISTFILESIZE
- El número máximo de líneas contenidas en el
historial. Cuando se asigna un valor a esta variable, el historial se
trunca, si es menester, para evitar sobrepasar dicho número de
líneas. El valor predeterminado es 500. El historial se trunca
también a este tamaño cuando finaliza una shell
interactiva.
- HISTIGNORE
- Una lista de patrones separados por dos puntos empleados para decidir
qué líneas de órdenes deben guardarse en el
historial. Cada patrón se ancla al principio de la línea y
debe especificar la línea completamente (no se añade
ningún `*'). Cada patrón se comprueba con la
línea tras aplicarse las comprobaciones especificadas por
HISTCONTROL. Además de los caracteres normales de
concordancia de patrones de la shell, `&' concuerda con la
línea de historia anterior. `&' puede protegerse
empleando una barra inversa. Ésta se quita antes de intentarse una
concordancia. La segunda línea y siguientes de una orden compuesta
multi-línea no se comprueban, y se añaden a la historia sin
importar el valor de HISTIGNORE. La concordancia de patrones
depende de la configuración de la opción de la shell
extglob.
- HISTSIZE
- Cantidad de órdenes que debe guardar el historial (Consulte
HISTORIAL más adelante). Si el valor es cero, no se
guardarán las órdenes en el historial. Cualquier
valor negativo hará que se guarden todas las órdenes sin
límite alguno. Por defecto, la shell guarda 500 órdenes
después de leer los archivos de inicio.
- HISTTIMEFORMAT
- If this variable is set and not null, its value is used as a format string
for strftime(3) to print the time stamp associated with each
history entry displayed by the history builtin. If this variable is
set, time stamps are written to the history file so they may be preserved
across shell sessions. This uses the history comment character to
distinguish timestamps from other history lines.
- HOME
- El directorio inicial de trabajo del usuario en curso; el argumento
predeterminado para la orden nativa cd. El valor de esta variable
se usa también cuando se realiza la expansión de tilde.
- HOSTFILE
- Contiene el nombre de un fichero con el mismo formato que
/etc/hosts que debería leerse cuando la shell necesite
completar un nombre de equipo. El archivo puede ser modificado durante la
ejecución de la shell; la siguiente vez que se intente completar un
nombre de equipo, bash añade el contenido del nuevo archivo
a la base de datos ya existente. Si está definida la variable
HOSTFILE pero no tiene ningún valor asignado o tiene
asignado el nombre de un archivo que no se puede leer, bash
intentará leer /etc/hosts para conseguir la lista de
posibles nombres de equipo. Si se resetea el valor de
HOSTFILE se vacia la lista de nombres de
equipo.
- IFS
- El Separador Interno de Campo que se emplea para la división
de palabras tras la expansión y para dividir líneas en
palabras con la orden nativa read. El valor predeterminado es
“<espacio><tab><nueva-línea>”.
- IGNOREEOF
- Controla la acción de una shell interactiva al recibir un
carácter EOF como sola entrada. Si está
definido, el valor es el número de caracteres
EOF consecutivos que deben teclearse como los
primeros caracteres de una línea de entrada antes de que
bash acabe. Si la variable existe pero no tiene un valor
numérico, o ninguno, el valor predeterminado es 10. Si no existe,
EOF significa el final de la entrada para la
shell.
- INPUTRC
- El nombre de fichero para el de inicio de readline, en vez del
predeterminado ~/.inputrc (consulte READLINE
más adelante).
- INSIDE_EMACS
- Si está presente esta variable cuando se inicia la shell,
bash asume que se está ejecutando en el buffer de una shell
de Emacs y podrá deshabilitar la edición en línea
según el valor de TERM.
- LANG
- Empleado para determinar la categoría de localización
("escenario") para cualquier categoría no seleccionada
específicamente con una variable de las que empiezan por
LC_.
- LC_ALL
- Esta variable tiene preferencia sobre el valor de LANG y
de cualquier otra variable de las que empiecen por LC_
especificando una categoría de localización.
- LC_COLLATE
- Esta variable determina el orden de clasificación empleado cuando
se ordene el resultado de una expansión de nombres de rutas, y
determina el comportamiento de expresiones de intervalo, clases de
equivalencia, y secuencias de clasificación dentro de expansiones
de nombres de rutas y concordancia de patrones.
- LC_CTYPE
- Esta variable determina la interpretación de caracteres y el
comportamiento de clases de caracteres dentro de expansiones de nombres de
rutas y concordancia de patrones.
- LC_MESSAGES
- Esta variable determina la localización empleada para traducir
cadenas entrecomilladas con comillas dobles precedidas por un
$.
- LC_NUMERIC
- Esta variable determina la localización empleada para el formato de
los números.
- LC_TIME
- Esta variable determina la localización empleada para el formato de
fecha y hora.
- LINES
- Utilizada por la orden compuesta select para determinar la longitud
de la columna para mostrar listas de selección. Definida
automáticamente siempre que la opción checkwinsize
está activada o cuando se reciba una señal
SIGWINCH en una shell interactiva.
- MAIL
- Si este parámetro está puesto a un nombre de archivo y la
variable MAILPATH no está definida, bash
informa al usuario de la llegada de correo en el archivo definido
o con formato Maildir.
- MAILCHECK
- Define la frecuencia (en segundos) a la que bash comprueba si hay
correo nuevo. El valor predeterminado es 60 s. Si es hora de comprobar si
hay correo, la shell lo hace antes de mostrar el indicador primario. Si
esta variable no está definida, o lo está con un valor
inferior a cero, la shell no comprueba si hay correo nuevo.
- MAILPATH
- Una lista de nombres de fichero separados por dos puntos donde hay que
comprobar si hay correo nuevo. El mensaje que haya que mostrar cuando
llegue correo a un fichero particular puede especificarse separando el
nombre de fichero del mensaje con un '?'. Cuando se use en el texto del
mensaje, $_ se expande al nombre del fichero de correo en curso.
Ejemplo:
MAILPATH='/var/mail/bfox?"Tienes
carta":~/shell-mail?"¡$_ tiene carta!"'
Bash proporciona un valor predeterminado para esta
variable, pero la localización de los archivos de correo del usuario
que emplea, dependerá del sistema (p.ej. /var/mail/$USER).
- OPTERR
- Si se pone al valor 1, bash muestra mensajes de error generados por
la orden nativa getopts (consulte ÓRDENES NATIVAS
DE LA SHELL más adelante). OPTERR se
inicia a 1 cada vez que se llama al shell o cuando se ejecuta un
script de la shell.
- PATH
- La ruta de búsqueda para órdenes, programas ejecutables. Es
una lista de directorios separados entre si por dos puntos en los cuales
la shell busca órdenes (consulte EJECUCIÓN DE
ÓRDENES a continuación). La ruta predeterminada
depende del sistema siendo definida por el administrador que instala
bash. Un valor habitual es
``/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin''.
- POSIXLY_CORRECT
- Si esta variable está en el entorno cuando de inicie bash,
la shell entrará en modo posix antes de cargar los archivos
de inicio igual que si se emplease la opción --posix. Si se
define una vez que la shell se está ejecutando, bash
activará el modo posix tal como si la orden set -o
posix se hubiese ejecutado. Cuando la shell entra en modo
posix, definirá está variable si no lo está
ya.
- PROMPT_COMMAND
- If this variable is set, and is an array, the value of each set element is
executed as a command prior to issuing each primary prompt. If this is set
but not an array variable, its value is used as a command to execute
instead.
- PROMPT_DIRTRIM
- Si su valor es un número mayor que cero, su valor definirá
la cantidad de componentes finales de directorios que se retienen al
expandir las cadenas de escape \w y \W del indicador
(prompt) (sonsulte PROMPTING más adelante). Los
caracteres eliminados se sustituyen por una elipsis.
- PS0
- El valor de este parámetro se expande (consulte
INDICADORES más adelante) y lo muestran las
shells interactivas después de leer una orden y despuñes de
que sea ejecutada.
- PS1
- El valor de este parámetro se expande (consulte
INDICADORES más adelante) y se emplea como la
cadena del indicador primario. El valor predeterminado es
“\s-\v\$ ”.
- PS2
- El valor de este parámetro se expande como con PS1 y
se emplea como la cadena del indicador secundario. El valor
predeterminado es “> ”.
- PS3
- El valor de este parámetro se emplea como el indicador para la
orden select (consulte GRAMÁTICA DE LA SHELL
anteriormente).
- PS4
- El valor de este parámetro se expande como con PS1 y
el valor se imprime antes de cada orden que bash muestra
durante una traza de ejecución. El primer carácter de
PS4 se replica múltiples veces, tantas como
sean necesarias, para indicar múltiples niveles de
indirección. El valor predeterminado es “+
”.
- SHELL
- Se expande al nombre completo de la ruta de la shell. Si no está
definida al inicio de la shell, bash le asignará la ruta
completa de la shell de inicio actual del usuario.
- TIMEFORMAT
- El valor de este parámetro se emplea como una cadena de formato
para especificar cómo debe mostrarse la información de
tiempos para tuberías precedidas por la palabra reservada
time. El carácter % introduce una secuencia de escape
que se expande a un valor de tiempo o a otra información. Las
secuencias de escape y sus significados son como sigue; los corchetes
denotan partes opcionales.
- %%
- Un % literal.
- %[p][l]R
- El tiempo total transcurrido en segundos.
- %[p][l]U
- El número de segundos de CPU gastados en modo usuario.
- %[p][l]S
- El número de segundos de CPU gastados en modo sistema.
- %P
- El porcentaje de CPU, computado como (%U + %S) ÷ %R.
- La p opcional es un dígito que especifica la
precisión, el número de decimales. Un valor de 0 hace
que no se muestre ningún decimal, ni el punto o coma decimal. Como
mucho se pueden especificar tres decimales; valores de p mayores de
3 se cambian a 3. Si p no se especifica, se usa precisamente el
valor 3.
- La l opcional especifica un formato más largo, incluyendo
minutos, en la forma MMmSS.FFs. El valor de p
determina si se incluye o no la fracción.
- Si esta variable no está definida, bash actúa como si
tuviera el valor $'\nreal\t%3lR\nuser\t%3lU\nsys\t%3lS'. Si el
valor es nulo, no se muestra ninguna información de tiempos. Se
añade un salto de línea al final cuando se muestra la cadena
de formato.
- TMOUT
- Si se define a un valor mayor que cero, TMOUT se interpreta
como la cantidad de segundos de timout de la orden nativa
read. Si se espera alguna entrada desde un terminal, la orden
select finaliza si ésta no llega transcurridos
TMOUT segundos. En una shell interactiva, este valor
representa la cantidad de segundos a esperar por una entrada; si
éste no llega, se muestra el indicador primario. Bash
finalizará transcurrida dicha cantidad de segundos no llega una
línea completa de entrada.ue hay que esperar una entrada
después de mostrarse el indicador primario. Bash termina
después de esperar ese número de segundos si no recibe
ninguna entrada.
- TMPDIR
- Si está definido, bash empleará su valor como nombre
del directorio en el que creará los archivos temporales necesario
para su el uso de la shell.
- auto_resume
- Esta variable controla cómo la shell interactúa con el
usuario para el control de trabajos. Si esta variable está
definida, las órdenes simples de una palabra sin redirección
se tratan como candidatas para reanudar un trabajo existente parado. No se
permite ninguna ambigüedad; si hay más de un trabajo que
empiece con la cadena tecleada, se selecciona el trabajo al que se ha
accedido más recientemente. El nombre de un trabajo parado,
en este contexto, es la línea de órdenes empleada para
arrancarlo. Si se define al valor exact, la cadena suministrada
debe concordar exactamente con el nombre de un trabajo parado; si se
define como substring, la cadena suministrada necesita concordar
con una subcadena del nombre de un trabajo parado. El valor
substring proporciona una funcionalidad análoga a la del
identificador de trabajo %? (consulte CONTROL DE
TAREAS más adelante). Si se pone a cualquier otro valor, la
cadena suministrada debe ser un prefijo del nombre de un trabajo
parado; esto proporciona una funcionalidad análoga a la del
identificador de trabajo %cadena.
- histchars
- Los dos o tres caracteres que controlan la expansión y
separación en lexemas de la historia (consulte
EXPANSIÓN DEL HISTORIAL a
continuación). El primer carácter es el
carácter de expansión del historial, el
carácter que señala el comienzo de una expansión de
historia, normalmente `!'. El segundo carácter es el
carácter de sustitución rápida, que se usa
como una abreviatura para reejecutar la orden anterior, sustituyendo una
cadena por otra en la orden. El valor predeterminado es `^'. El
tercer carácter, opcional, es el carácter que indica que el
resto de la línea es un comentario cuando se encuentra como el
primer carácter de una palabra, normalmente es `#'. El
carácter de comentario de historia hace que la sustitución
de historia se salte en el resto de palabras de la línea. No hace
que necesariamente el analizador léxico de la shell trate al resto
de la línea como un a un comentario.
Bash proporciona variables vectores monodimensionales,
indexados y asociativos. Cualquier variable puede usarse como un vector
indexado; la orden nativa declare declarará un vector de forma
expresa. No hay un límite máximo en el tamaño de un
vector, ni ningún requisito para que los miembros se indexen o
asignen de forma contigua. Los vectores se indexan empleando enteros
(incluso expresiones aritméticas) y su primer elemento es el de
índice cero, los vectores asociativos se referencian empleando
cualquier cadena. Salvo que se indique expresamente lo contrario, los
índices de los vectores indexados deberán ser siempre enteros
positivos.
Un vector indexado se crea automáticamente si se asigna
algo a una variable con la sintaxis
nombre[índice]=valor. El índice se
trata como una expresión aritmética que debe evaluarse a un
número. Para declarar un vector explícitamente, emplee
declare -a nombre (consulte ÓRDENES NATIVAS
DE LA SHELL más adelante). También se acepta declare -a
nombre[índice], donde el
índice no se tiene en cuenta.
Los vectores asociativos se crean mediante declare -A
nombre.
Attributes may be specified for an array variable using the
declare and readonly builtins. Each attribute applies to all
members of an array.
Arrays are assigned to using compound assignments of the form
name=(value1 ... valuen), where each
value may be of the form [subscript]=string. Indexed
array assignments do not require anything but string. Each
value in the list is expanded using all the shell expansions
described below under EXPANSION. When assigning to
indexed arrays, if the optional brackets and subscript are supplied, that
index is assigned to; otherwise the index of the element assigned is the
last index assigned to by the statement plus one. Indexing starts at
zero.
When assigning to an associative array, the words in a compound
assignment may be either assignment statements, for which the subscript is
required, or a list of words that is interpreted as a sequence of
alternating keys and values: name=( key1 value1 key2
value2 ...). These are treated identically to
name=( [key1]=value1 [key2]=value2
...). The first word in the list determines how the remaining words
are interpreted; all assignments in a list must be of the same type. When
using key/value pairs, the keys may not be missing or empty; a final missing
value is treated like the empty string.
This syntax is also accepted by the declare builtin.
Individual array elements may be assigned to using the
name[subscript]=value syntax introduced above. When
assigning to an indexed array, if name is subscripted by a negative
number, that number is interpreted as relative to one greater than the
maximum index of name, so negative indices count back from the end of
the array, and an index of -1 references the last element.
El operador += realizará añadidos a una variable
vectorial cuando se haga con la sintaxis adecuada. Consulte
PARÁMETROS anteriormente.
Cualquier elemento de un vector puede referenciarse mediante
${nombre[índice]}. Las llaves son necesarias para
evitar conflictos con la expansión de nombres de rutas. Si
índice es @ o *, la palabra se expande a todos
los miembros de nombre. Estos índices difieren solamente
cuando la palabra aparece entre comillas dobles. Si la palabra está
entre comillas dobles, ${nombre[*]} se expande a una sola palabra con
el valor de cada miembro del vector separados por el primer carácter
de la variable especial IFS, y ${nombre[@]}
expande cada elemento de nombre a una palabra separada.
Cuando no hay miembros del vector, ${nombre[@]} se expande a nada. Si
la expansión entre dobles comillas ocurre dentro de una palabra, la
expansión del primer parámetro se une al inicio de la palabra
original y la expansión del último se une al final de dicha
palabra. Esto es análogo a la expansión de los
parámetros especiales * y @ (consulte
Parámetros especiales anteriormente).
${#nombre[índice]} se expande a la longitud de
${nombre[índice]}. Si índice es *
o @, la expansión es el número de elementos del vector.
Si índice empleado para referirse a un elemento de un vector
indexado equivale a un número menor que cero se entenderá como
un número mayor que el máximo índice del vector, un
índice de -1 se referirá al último elemento.
Referencing an array variable without a subscript is equivalent to
referencing the array with a subscript of 0. Any reference to a variable
using a valid subscript is legal, and bash will create an array if
necessary.
An array variable is considered set if a subscript has been
assigned a value. The null string is a valid value.
It is possible to obtain the keys (indices) of an array as well as
the values. ${!name[@]} and
${!name[*]} expand to the indices assigned in array
variable name. The treatment when in double quotes is similar to the
expansion of the special parameters @ and * within double
quotes.
La orden nativa unset se emplea para eliminar vectores.
unset nombre[índice] elimina el elemento del
vector con el índice definido tanto en vectores asociativos
como indexados. Los índices negativos en vectores indexados se
interpretan tal como se describió anteriormente. Aunque se desactive
el último elemento de una variable vectorial, no se
desactivará dicha variable. unset nombre, donde
nombre es un vector, eliminará por completo dicho vector.
unset nombre[índice], donde índice
es * o @, tendrá un comportamiento diferente
según sea un vector asociativo o indexado. Si nombre es un
vector asociativo, desactivará el elemento con índice *
o @. Si nombre es un vector indexado, se eliminarán
todos los elementos, no así el propio vector.
When using a variable name with a subscript as an argument to a
command, such as with unset, without using the word expansion syntax
described above, the argument is subject to pathname expansion. If pathname
expansion is not desired, the argument should be quoted.
Las órdenes nativas declare, local, y
readonly aceptan cada una una opción -a para
especificar un vector indexado (indexed array) y la opción -A
para especificad un vector asociativo (asociative array). Si se define ambas
opciones, prevalecerá -A. La orden nativa read acepta
una -a para asignar una lista de palabras leídas desde la
entrada estándar a un vector. Las órdenes nativas set y
declare muestran valores de un vector en una manera tal que les
permite ser reutilizadas como asignaciones.
La expansión se realiza en la línea de
órdenes una vez que la orden ha sido dividida en palabras. Hay siete
clases de expansión: expansión de llaves,
expansión de tilde, expansión de parámetro y
variable, sustitución de orden, expansión
aritmética, división de palabras,
expansión de nombre de ruta.
La orden de las expansiones es: expansión de llaves, de
tilde, de parámetro, variable y aritmética, y
sustitución de orden (hechas de izquierda a derecha), división
de palabras, y expansión de nombre de ruta.
En sistemas que puedan admitirla, hay una expansión
adicional disponible: sustitución de proceso. Ésta se
realiza al mismo tiempo que la expansión de llaves, de tilde, de
parámetro, variable y aritmética, y sustitución de
orden.
Después de realizar estas expansiones, se eliminan las
comillas de la palabra original salvo que éstas hayan sido
entrecomilladas (eliminación de comillas).
Solo la expansión de llaves, la división de palabras
y la expansión de nombre de ruta, pueden cambiar el número de
palabras de la expansión; las otras expanden una palabra simple a
otra palabra simple. Las únicas excepciones a esto son las
expansiones de "$@" y
"${nombre[@]}" y en muchos casos $* y
${name[*]} como se ha explicado más
anteriormente (consulte PARÁMETROS).
Expansión de Llaves
La expansión de llaves es un mecanismo por el cual
pueden generarse cadenas arbitrarias. Este mecanismo es similar a la
expansión de nombre de ruta, pero los nombres de archivo
creados no necesitan existir. Los patrones a ser expandidos con la
expansión de llaves toman la forma de un preámbulo
opcional seguido por bien por una serie de cadenas separadas por comas entre
un par de llaves o por una expresión secuencial entre llaves, seguido
por un post scriptum opcional. El preámbulo sirve de prefijo a
cada cadena de entre las llaves, y el post scriptum se añade luego a
cada cadena resultante, expandiendo de izquierda a derecha.
Las expansiones de llaves pueden anidarse. Los resultados de cada
cadena expandida no se ordenan; se preserva el orden de izquierda a derecha.
Por ejemplo, a{d,c,b}e se expande a `ade ace abe'.
A sequence expression takes the form
{x..y[..incr]}, where
x and y are either integers or single letters, and
incr, an optional increment, is an integer. When integers are
supplied, the expression expands to each number between x and
y, inclusive. Supplied integers may be prefixed with 0 to
force each term to have the same width. When either x or y
begins with a zero, the shell attempts to force all generated terms to
contain the same number of digits, zero-padding where necessary. When
letters are supplied, the expression expands to each character
lexicographically between x and y, inclusive, using the
default C locale. Note that both x and y must be of the same
type (integer or letter). When the increment is supplied, it is used as the
difference between each term. The default increment is 1 or -1 as
appropriate.
La expansión de llaves se realiza antes que cualquier otra,
y cualquier carácter especial para otras expansiones se preserva en
el resultado. Es estrictamente textual. Bash no aplica ninguna
interpretación sintáctica al contexto de la expansión
ni al texto entre las llaves.
Una expansión de llaves correctamente formada debe contener
llaves de apertura y cierre sin entrecomillar, y al menos una coma sin
entrecomillar o una secuencia válida. Cualquier expansión de
llaves formada incorrectamente se deja inalterada. Una { o ,
puede protegerse con una barra invertida para evitar que sea considerada
como parte de una expansión de llaves. Para evitar conflictos con la
expansión de parámetros, la cadena ${ no puede
incorporarse en una expansión de llaves y evita que se ocurra hasta
la llave de cierre }.
Esta construcción se emplea normalmente como una
abreviatura cuando el prefijo común de las cadenas a generar es mayor
que en el ejemplo de antes:
mkdir /usr/local/src/bash/{old,new,dist,bugs}
o
chown root /usr/{ucb/{ex,edit},lib/{ex?.?*,how_ex}}
La expansión de llaves introduce una pequeña
incompatibilidad con versiones anteriores de sh. sh no
considera como caracteres especiales a las llaves de apertura o cierre
cuando aparecen como parte de una palabra, y las deja en la entrada.
Bash quita las llaves de palabras, como una consecuencia de la
expansión de llaves. Por ejemplo, una palabra introducida a sh
como fichero{1,2} aparece así mismo en la entrada. La misma
palabra se muestra como fichero1 fichero2 tras la expansión
hecha por bash. Si se desea una compatibilidad estricta con
sh, inicie bash con la opción +B o inhabilite la
expansión de llaves con la opción +B de la orden nativa
set (consulte ÓRDENES NATIVAS DE LA
SHELL más adelante).
Expansión de Tilde
Si una palabra comienza con un carácter tilde de la
ñ sin entrecomillar (`~'), todos los caracteres que precedan a
la primera barra inclinada sin entrecomillar (o todos los caracteres, si no
hay ninguna barra inclinada sin proteger), se consideran un
prefijo-tilde. Si ninguno de los caracteres en el prefijo-tilde
están protegidos, los caracteres en el prefijo-tilde que siguen a la
tilde se tratan como un posible nombre de entrada de usuario (login).
Si este nombre de entrada es la cadena vacía, la tilde se reemplaza
con el valor del parámetro de la shell HOME. Si
HOME no está definida, se sustituye en su lugar el
directorio de trabajo inicial del usuario que está ejecutando
la shell. De otra forma, el prefijo-tilde se reemplaza con el directorio de
trabajo inicial (de casa) asociado con el nombre de entrada
especificado.
Si el prefijo-tilde es un `~+', el valor de la variable de la
shell PWD reemplaza al prefijo-tilde. Si el prefijo-tilde es
un `~-', el valor de la variable de la shell OLDPWD,
si está definido, se sustituye. Si los caracteres que siguen
a la tilde en el prefijo-tilde consisten en un número N,
prefijado opcionalmente por un `+' o un `-', el prefijo-tilde se reemplaza
con el elemento correspondiente de la pila de directorios, como lo
mostraría la orden nativa dirs llamada con el prefijo-tilde
como argumento. Si los caracteres tras la tilde en el prefijo-tilde
consisten en un número sin un `+' ni `-' iniciales, se supone
`+'.
Si el nombre de entrada es inválido, o si la
expansión de tilde falla, la palabra se deja tal cual.
A cada asignación de variable se comprueba si hay
prefijos-tilde sin entrecomillar inmediatamente tras un : o el primer
=. En estos casos, la expansión de tilde también tiene
lugar. Consecuentemente, uno puede usar nombres de ficheros con tildes en
asignaciones a PATH, MAILPATH, y
CDPATH, y la shell asigna el valor expandido.
Bash also performs tilde expansion on words satisfying the
conditions of variable assignments (as described above under
PARAMETERS) when they appear as arguments to simple
commands. Bash does not do this, except for the declaration commands
listed above, when in posix mode.
Expansión de Parámetro
El carácter `$' introduce la expansión de
parámetro, sustitución de orden, o expansión
aritmética. El nombre de parámetro o símbolo a ser
expandido puede estar encerrado entre llaves, que son opcionales pero sirven
para proteger a la variable en la expansión de caracteres que la
sigan y puedan interpretarse como parte de su nombre.
Cuando se empleen llaves, la de cierre es la primera `}' no
protegida con una barra invertida o en una cadena entrecomillada, y no
dentro de una expansión aritmética empotrada,
sustitución de orden, o expansión de parámetro.
- ${parámetro}
- Se sustituye el valor de parámetro. Se requieren llaves
cuando parámetro es un parámetro posicional de
más de un dígito, o cuando parámetro viene
seguido por un carácter que no debe interpretarse como parte de su
nombre. El parámetro es un parámetro de la shell tal
como se describe en la sección PARÁMETROS o una
referencia a un vector (Vectores).
If the first character of parameter is an exclamation point
(!), and parameter is not a nameref, it introduces a
level of indirection. Bash uses the value formed by expanding the
rest of parameter as the new parameter; this is then expanded
and that value is used in the rest of the expansion, rather than the
expansion of the original parameter. This is known as indirect
expansion. The value is subject to tilde expansion, parameter expansion,
command substitution, and arithmetic expansion. If parameter is a
nameref, this expands to the name of the parameter referenced by
parameter instead of performing the complete indirect expansion. The
exceptions to this are the expansions of ${!prefix*}
and ${!name[@]} described below. The exclamation point
must immediately follow the left brace in order to introduce
indirection.
En cada uno de los casos descritos a continuación, sobre
palabra se aplican expansión de tilde, expansión de
parámetro, sustitución de orden y expansión
aritmética.
When not performing substring expansion, using the forms
documented below (e.g., :-), bash tests for a parameter that
is unset or null. Omitting the colon results in a test only for a parameter
that is unset.
- ${parámetro:-palabra}
- Emplear valores predeterminados. Si parámetro no
está definido o está vacío, se sustituye la
expansión de palabra. De otro modo, se sustituye el valor de
parámetro.
- ${parámetro:=palabra}
- Asignar valores predeterminados. Si parámetro no
está definido o es nulo, la expansión de palabra se
asigna a parámetro. Luego, el valor de
parámetro se sustituye. No se puede asignar nada de esta
manera a los parámetros posicionales ni a los especiales.
- ${parámetro:?palabra}
- Muestra un error si no está definido o está
vacío. Si parámetro es nulo o no está
definido, la expansión de palabra (o un mensaje a tal efecto
si palabra no está presente) se escribe en la salida
estándar de errores y la shell, si no es interactivo, acaba. De
otra manera, se sustituye el valor de parámetro.
- ${parámetro:+palabra}
- Emplear un valor alternativo. Si parámetro
está vacío o no está definido, no se sustituye nada;
de otro modo, se sustituye la expansión de palabra.
- ${parámetro:desplazamiento}
- ${parámetro:desplazamiento:longitud}
- Substring Expansion. Expands to up to length characters of
the value of parameter starting at the character specified by
offset. If parameter is @ or *, an indexed
array subscripted by @ or *, or an associative array name,
the results differ as described below. If length is omitted,
expands to the substring of the value of parameter starting at the
character specified by offset and extending to the end of the
value. length and offset are arithmetic expressions (see
ARITHMETIC EVALUATION below).
If offset evaluates to a number less than zero, the
value is used as an offset in characters from the end of the value of
parameter. If length evaluates to a number less than zero,
it is interpreted as an offset in characters from the end of the value
of parameter rather than a number of characters, and the
expansion is the characters between offset and that result. Note
that a negative offset must be separated from the colon by at least one
space to avoid being confused with the :- expansion.
If parameter is @ or *, the result is
length positional parameters beginning at offset. A
negative offset is taken relative to one greater than the
greatest positional parameter, so an offset of -1 evaluates to the last
positional parameter. It is an expansion error if length
evaluates to a number less than zero.
If parameter is an indexed array name subscripted by @
or *, the result is the length members of the array beginning
with ${parameter[offset]}. A negative offset is
taken relative to one greater than the maximum index of the specified
array. It is an expansion error if length evaluates to a number
less than zero.
Substring expansion applied to an associative array produces
undefined results.
Substring indexing is zero-based unless the positional
parameters are used, in which case the indexing starts at 1 by default.
If offset is 0, and the positional parameters are used, $0
is prefixed to the list.
- ${!prefijo*}
- ${!prefijo@}
- Names matching prefix. Expands to the names of variables whose
names begin with prefix, separated by the first character of the
IFS special variable. When @ is used and the
expansion appears within double quotes, each variable name expands to a
separate word.
- ${!nombre[@]}
- ${!nombre[*]}
- List of array keys. If name is an array variable, expands to
the list of array indices (keys) assigned in name. If name
is not an array, expands to 0 if name is set and null otherwise.
When @ is used and the expansion appears within double quotes, each
key expands to a separate word.
- ${#parámetro}
- Parameter length. The length in characters of the value of
parameter is substituted. If parameter is * or
@, the value substituted is the number of positional parameters. If
parameter is an array name subscripted by * or @, the
value substituted is the number of elements in the array. If
parameter is an indexed array name subscripted by a negative
number, that number is interpreted as relative to one greater than the
maximum index of parameter, so negative indices count back from the
end of the array, and an index of -1 references the last element.
- ${parámetro#palabra}
- ${parámetro##palabra}
- Remove matching prefix pattern. The word is expanded to
produce a pattern just as in pathname expansion, and matched against the
expanded value of parameter using the rules described under
Pattern Matching below. If the pattern matches the beginning of the
value of parameter, then the result of the expansion is the
expanded value of parameter with the shortest matching pattern (the
“#” case) or the longest matching pattern (the
“##” case) deleted. If parameter is @
or *, the pattern removal operation is applied to each positional
parameter in turn, and the expansion is the resultant list. If
parameter is an array variable subscripted with @ or
*, the pattern removal operation is applied to each member of the
array in turn, and the expansion is the resultant list.
- ${parámetro%palabra}
- ${parámetro%%palabra}
- Remove matching suffix pattern. The word is expanded to
produce a pattern just as in pathname expansion, and matched against the
expanded value of parameter using the rules described under
Pattern Matching below. If the pattern matches a trailing portion
of the expanded value of parameter, then the result of the
expansion is the expanded value of parameter with the shortest
matching pattern (the “%” case) or the longest
matching pattern (the “%%” case) deleted. If
parameter is @ or *, the pattern removal operation is
applied to each positional parameter in turn, and the expansion is the
resultant list. If parameter is an array variable subscripted with
@ or *, the pattern removal operation is applied to each
member of the array in turn, and the expansion is the resultant list.
- ${parámetro/patrón/cadena}
- ${parámetro//patrón/cadena}
- ${parámetro/#patrón/cadena}
- ${parámetro/%patrón/cadena}
- Pattern substitution. The pattern is expanded to produce a
pattern just as in pathname expansion. Parameter is expanded and
the longest match of pattern against its value is replaced with
string. string undergoes tilde expansion, parameter and
variable expansion, arithmetic expansion, command and process
substitution, and quote removal. The match is performed using the rules
described under Pattern Matching below. In the first form above,
only the first match is replaced. If there are two slashes separating
parameter and pattern (the second form above), all matches
of pattern are replaced with string. If pattern is
preceded by # (the third form above), it must match at the
beginning of the expanded value of parameter. If pattern is
preceded by % (the fourth form above), it must match at the end of
the expanded value of parameter. If the expansion of string
is null, matches of pattern are deleted. If string is null,
matches of pattern are deleted and the / following
pattern may be omitted.
Si la opción de shell pathsub_replacement
está activada mediante shopt, cualquier instancia de
& sin entrecomillar contenida en cadena será
sustituida por la parte concordante de patrón.
Quoting any part of string inhibits replacement in the
expansion of the quoted portion, including replacement strings stored in
shell variables. Backslash will escape & in string;
the backslash is removed in order to permit a literal & in
the replacement string. Backslash can also be used to escape a
backslash; \\ results in a literal backslash in the replacement.
Users should take care if string is double-quoted to avoid
unwanted interactions between the backslash and double-quoting, since
backslash has special meaning within double quotes. Pattern substitution
performs the check for unquoted & after expanding
string; shell programmers should quote any occurrences of
& they want to be taken literally in the replacement and
ensure any instances of & they want to be replaced are
unquoted.
If the nocasematch shell option is enabled, the match
is performed without regard to the case of alphabetic characters. If
parameter is @ or *, the substitution operation is
applied to each positional parameter in turn, and the expansion is the
resultant list. If parameter is an array variable subscripted
with @ or *, the substitution operation is applied to each
member of the array in turn, and the expansion is the resultant
list.
- ${parámetro^patrón}
- ${parámetro^^patrón}
- ${parámetro,patrón}
- ${parámetro,,patrón}
- Case modification. This expansion modifies the case of alphabetic
characters in parameter. The pattern is expanded to produce
a pattern just as in pathname expansion. Each character in the expanded
value of parameter is tested against pattern, and, if it
matches the pattern, its case is converted. The pattern should not attempt
to match more than one character. The ^ operator converts lowercase
letters matching pattern to uppercase; the , operator
converts matching uppercase letters to lowercase. The ^^ and
,, expansions convert each matched character in the expanded value;
the ^ and , expansions match and convert only the first
character in the expanded value. If pattern is omitted, it is
treated like a ?, which matches every character. If
parameter is @ or *, the case modification operation
is applied to each positional parameter in turn, and the expansion is the
resultant list. If parameter is an array variable subscripted with
@ or *, the case modification operation is applied to each
member of the array in turn, and the expansion is the resultant list.
- ${parámetro:operador}
- Transformación de parámetros. La expansión
puede ser una transformación del valor de parámetro o
información sobre el propio parámetro dependiendo del
valor del operador. Cada operador consta de una única
letra:
- U
- La expansión será una cadena formada por el valor del
parámetro con sus letras minúsculas pasadas a
mayúsculas.
- u
- La expansión será una cadena formada por el valor de
parámetro con su primer carácter en
mayúsculas, siempre que sea una letra.
- L
- La expansión será una cadena formada por el valor de
parámetros con sus letras mayúsculas convertidas en
minúsculas.
- Q
- La expansión es una cadena formada por el valor de
parámetro en un formato adecuado para ser utilizado como
valor de entrada.
- E
- La expansión será una cadena formada por el valor de
parámetro expandiendo las barras invertidas de forma
análoga al sistema de comillas $'...'.
- P
- La expansión será una cadena formada por el resultado de
expandir el valor de parámetro como si fuera un indicador de
la shell (consulte INDICADORES más adelante).
- A
- The expansion is a string in the form of an assignment statement or
declare command that, if evaluated, will recreate parameter
with its attributes and value.
- K
- Produces a possibly-quoted version of the value of parameter,
except that it prints the values of indexed and associative arrays as a
sequence of quoted key-value pairs (see Arrays above).
- a
- La expansión será una cadena formada por los valores de
opciones que representan los atributos de parámetro.
- k
- Igual que la transformación K, salvo que expande las claves y los
valores de los vectores asociativos e indexados en palabras separadas
después de la división de palabra.
Si parámetro es @ o *, la
operación se aplicará a cada parámetro posicional por
turnos, y la expansión es la lista resultante. Si
parámetro es una variable vectorial indexada con @ o
*, la operación de borrado del patrón se aplica a cada
miembro del vector por orden, y la expansión es la lista
resultante.
El resultado de la expansión puede posteriormente ser
objeto de división de palabra y expansión del nombre de ruta
tal como se describe más adelante.
Sustitución de Orden
La sustitución de orden permite a la salida de una
orden reemplazar al nombre de la orden. Hay dos formas:
o
`orden`
Bash realiza la expansión ejecutando orden en
una subshell y reemplazando la sustitución de orden con la salida
estándar de la orden, quitando los saltos de línea finales.
Los saltos de línea empotrados no se borran, pero pueden ser
eliminados durante la división de palabras. La sustitución de
orden $(cat archivo) puede reemplazarse por lo
equivalente pero más rápido $(<
archivo).
Cuando se emplea la forma de sustitución al viejo estilo
con las comillas inversas, la barra invertida mantiene su significado
literal excepto cuando es seguida por $, `, o \. La
primera comilla inversa no precedida por una barra invertida termina la
sustitución de orden. Cuando se emplea la forma $(orden),
todos los caracteres entre los paréntesis forman parte de la orden;
ninguno se considera como especial.
Las sustituciones de orden pueden anidarse. Para anidar cuando se
emplee la forma de comillas inversas, proteja las comillas inversas internas
con barras inversas.
Si la sustitución aparece dentro de las dobles comillas, la
división de palabras y la expansión de nombres no se realiza
en los resultados.
Expansión Aritmética
La expansión aritmética permite la evaluación
de una expresión aritmética y la sustitución del
resultado. El formato para la expansión aritmética es:
El antiguo formato $[expresión] es
obsoleto y se eliminará en futuras versiones de bash.
La expresión se trata como si estuviera entre
comillas dobles, pero un signo de doble comilla en expresión
no se considera un carácter especial y se elimina. Todos los lexemas
en la expresión están sujetos a expansión de
parámetro, expansión de cadena, sustitución de orden, y
eliminación de comillas. El resultado se tratará coma la
expansión aritmética a evaluar, dichas expansiones pueden
anidarse.
La evaluación se realiza de acuerdo a las reglas listadas
más adelante en EVALUACIÓN ARITMÉTICA. Si
expresión no es válida, bash imprime un
mensaje indicando el fallo y no ocurre ninguna sustitución.
Sustitución de Proceso
Process substitution allows a process's input or output to
be referred to using a filename. It takes the form of
<(list) or >(list). The
process list is run asynchronously, and its input or output appears
as a filename. This filename is passed as an argument to the current command
as the result of the expansion. If the >(list) form
is used, writing to the file will provide input for list. If the
<(list) form is used, the file passed as an argument
should be read to obtain the output of list. Process substitution is
supported on systems that support named pipes (FIFOs) or the
/dev/fd method of naming open files.
Cuando esté disponible, se realiza la sustitución de
proceso simultáneamente con la expansión de parámetro y
variable, sustitución de orden y expansión
aritmética.
la shell examina los resultados de la expansión de
parámetro, sustitución de orden y expansión
aritmética que no ocurrieron dentro de comillas dobles para realizar
la división de palabras.
The shell treats each character of IFS as a
delimiter, and splits the results of the other expansions into words
using these characters as field terminators. If IFS is unset,
or its value is exactly
<space><tab><newline>, the default, then sequences
of <space>, <tab>, and <newline> at
the beginning and end of the results of the previous expansions are ignored,
and any sequence of IFS characters not at the
beginning or end serves to delimit words. If IFS has a
value other than the default, then sequences of the whitespace
characters space, tab, and newline are ignored at the
beginning and end of the word, as long as the whitespace character is in the
value of IFS (an IFS whitespace
character). Any character in IFS that is not
IFS whitespace, along with any adjacent
IFS whitespace characters, delimits a field. A
sequence of IFS whitespace characters is also treated
as a delimiter. If the value of IFS is null, no word
splitting occurs.
Explicit null arguments ("" or '') are
retained and passed to commands as empty strings. Unquoted implicit null
arguments, resulting from the expansion of parameters that have no values,
are removed. If a parameter with no value is expanded within double quotes,
a null argument results and is retained and passed to a command as an empty
string. When a quoted null argument appears as part of a word whose
expansion is non-null, the null argument is removed. That is, the word
-d'' becomes -d after word
splitting and null argument removal.
Observe que si no hay expansión, tampoco se realiza la
división de palabras.
Expansión de Nombres de Ruta
After word splitting, unless the -f option has been set,
bash scans each word for the characters *, ?, and
[. If one of these characters appears, and is not quoted, then the
word is regarded as a pattern, and replaced with an alphabetically
sorted list of filenames matching the pattern (see Pattern
Matching below). If no matching filenames are found, and the
shell option nullglob is not enabled, the word is left unchanged. If
the nullglob option is set, and no matches are found, the word is
removed. If the failglob shell option is set, and no matches are
found, an error message is printed and the command is not executed. If the
shell option nocaseglob is enabled, the match is performed without
regard to the case of alphabetic characters. Note that when using range
expressions like [a-z] (see below), letters of the other case may be
included, depending on the setting of LC_COLLATE. When a pattern is
used for pathname expansion, the character “.” at the
start of a name or immediately following a slash must be matched explicitly,
unless the shell option dotglob is set. In order to match the
filenames “.” and “..”, the
pattern must begin with “.” (for example, “.?”),
even if dotglob is set. If the globskipdots shell option is
enabled, the filenames “.” and
“..” are never matched, even if the pattern begins with
a “.”. When not matching pathnames, the
“.” character is not treated specially. When matching a
pathname, the slash character must always be matched explicitly by a slash
in the pattern, but in other matching contexts it can be matched by a
special pattern character as described below under Pattern
Matching. See the description of shopt below under
SHELL BUILTIN COMMANDS for a description of the
nocaseglob, nullglob, globskipdots, failglob,
and dotglob shell options.
La variable de la shell GLOBIGNORE puede utilizarse
para restringir el conjunto de nombres de archivo que concuerden con
un patrón. Si GLOBIGNORE está definido,
cada nombre de archivo concordante que también coincida con
uno de los patrones en GLOBIGNORE se quita de la lista de
concordancias. Los nombres de archivo “.” y
“..” nunca son tenidos en cuenta, incluso cuando
GLOBIGNORE esté puesto. Sin embargo, definir
GLOBIGNORE activa la opción de la shell
dotglob, de modo que todos los otros nombres de archivo que comiencen
con un “.” concordarán. Para obtener el
comportamiento anterior de no hacer caso de nombres de archivo que comienzan
con un “.”, haga que “.*” sea uno
de los patrones de GLOBIGNORE. La opción dotglob
está deshabilitada cuando GLOBIGNORE no
está definido. La concordancia de patrones depende de la
configuración de la opción de la sehll extglob.
Concordancia
Cualquier carácter que aparezca en un patrón, aparte
de los especiales descritos más adelante, concuerda consigo mismo. El
carácter NUL no puede estar en un patrón. Una barra invertida
protege al siguiente caracter y no se tiene en cuenta durante la
búsqueda de concordancias. Los caracteres de patrón especiales
deben protegerse si han de concordar literalmente consigo mismos.
Los caracteres de patrón especiales tienen los siguientes
significados:
- *
- Matches any string, including the null string. When the globstar
shell option is enabled, and * is used in a pathname expansion
context, two adjacent *s used as a single pattern will match all
files and zero or more directories and subdirectories. If followed by a
/, two adjacent *s will match only directories and
subdirectories.
- ?
- Concuerda con un solo carácter cualquiera.
- [...]
- Matches any one of the enclosed characters. A pair of characters separated
by a hyphen denotes a range expression; any character that falls
between those two characters, inclusive, using the current locale's
collating sequence and character set, is matched. If the first character
following the [ is a ! or a ^ then any character not
enclosed is matched. The sorting order of characters in range expressions,
and the characters included in the range, are determined by the current
locale and the values of the LC_COLLATE or
LC_ALL shell variables, if set. To obtain the
traditional interpretation of range expressions, where [a-d] is
equivalent to [abcd], set value of the LC_ALL shell variable
to C, or enable the globasciiranges shell option. A -
may be matched by including it as the first or last character in the set.
A ] may be matched by including it as the first character in the
set.
Dentro de [ y ], se pueden especificar clases
de caracteres mediante la sintaxis [:clase:],
donde clase es una de las siguientes clases definidas en el
estándar POSIX:
alnum alpha ascii blank cntrl digit graph lower print
punct space upper word xdigit
Una clase de caracteres concuerda con cualquier carácter que pertenezca a
esa clase El carácter
word concordará con letras, cifras
y el carácter '_'.
Dentro de [ y ], una clase de equivalencia se
puede especificar empleando la sintaxis [=c=], que
concuerda con todos los caracteres con el mismo peso de clasificación
(tal como lo defina la localización en curso) que el carácter
c.
Dentro de [ y ], la sintaxis
[.símbolo.] concuerda con el símbolo de
clasificación símbolo.
Si la opción de la shell extglob se activa mediante
la orden nativa shopt, se reconocen algunos operadores de patrones
avanzados. En la siguiente descripción, una
lista-patrón es una lista de uno o más patrones
separados por el carácter |. Se pueden formar patrones
compuestos usando uno o más de los siguientes sub-patrones:
- ?(lista-patrón)
- Concuerda con ninguna o una ocurrencia de los patrones dados
- *(lista-patrón)
- Concuerda con ninguna o más ocurrencias de los patrones dados
- +(lista-patrón)
- Concuerda con una o más ocurrencias de los patrones dados
- @(lista-patrón)
- Concuerda con uno de los patrones dados
- !(lista-patrón)
- Concuerda con cualquier cosa excepto con uno de los patrones dados
Theextglob option changes the behavior of the parser, since
the parentheses are normally treated as operators with syntactic meaning. To
ensure that extended matching patterns are parsed correctly, make sure that
extglob is enabled before parsing constructs containing the patterns,
including shell functions and command substitutions.
When matching filenames, the dotglob shell option
determines the set of filenames that are tested: when dotglob is
enabled, the set of filenames includes all files beginning with
“.”, but “.” and “..” must be
matched by a pattern or sub-pattern that begins with a dot; when it is
disabled, the set does not include any filenames beginning with
“.” unless the pattern or sub-pattern begins with a
“.”. As above, “.” only has a special meaning
when matching filenames.
Complicated extended pattern matching against long strings is
slow, especially when the patterns contain alternations and the strings
contain multiple matches. Using separate matches against shorter strings, or
using arrays of strings instead of a single long string, may be faster.
Tras las expansiones precedentes, todas las ocurrencias no
entrecomilladas de los caracteres \, ', y " que no
resulten de una de las expansiones anteriores, se eliminan.
Before a command is executed, its input and output may be
redirected using a special notation interpreted by the shell.
Redirection allows commands' file handles to be duplicated, opened,
closed, made to refer to different files, and can change the files the
command reads from and writes to. Redirection may also be used to modify
file handles in the current shell execution environment. The following
redirection operators may precede or appear anywhere within a simple
command or may follow a command. Redirections are processed in
the order they appear, from left to right.
Each redirection that may be preceded by a file descriptor number
may instead be preceded by a word of the form {varname}. In this
case, for each redirection operator except >&- and <&-, the
shell will allocate a file descriptor greater than or equal to 10 and assign
it to varname. If >&- or <&- is preceded by
{varname}, the value of varname defines the file descriptor to
close. If {varname} is supplied, the redirection persists beyond the
scope of the command, allowing the shell programmer to manage the file
descriptor's lifetime manually. The varredir_close shell option
manages this behavior.
En las descripciones siguientes, si se omite el número del
descriptor de fichero, y el primer carácter del operador de
redirección es <, la redirección se refiere a la
entrada estándar (descriptor de fichero 0). Si el primer
carácter del operador de redirección es >, la
redirección se refiere a la salida estándar (descriptor de
fichero 1).
La palabra tras el operador de redirección en las
descripciones siguientes, a menos que se diga otra cosa, está sujeta
a la expansión de llaves, expansión de tilde, expansión
de parámetro, sustitución de orden, expansión
aritmética, eliminación de comillas, división de
palabra y expansión de nombre de ruta. Si se expande a más de
una palabra, bash informa de un error.
Observe que el orden de las redirecciones es significativo. Por
ejemplo, la orden
dirige la salida estándar normal y la de errores, ambas, al
fichero listadir, mientras que la orden
dirige solamente la salida estándar al archivo
listadir, porque la salida de errores estándar se ha duplicado
como salida estándar antes de que ésta se redirigiera a
listadir.
Bash handles several filenames specially when they are used
in redirections, as described in the following table. If the operating
system on which bash is running provides these special files, bash
will use them; otherwise it will emulate them internally with the behavior
described below.
- /dev/fd/fd
- Si fd es un entero válido, el decriptor de archivo fd
se duplica.
- /dev/stdin
- El descriptor de archivo 0 se duplica.
- /dev/stdout
- El descriptor de archivo 1 se duplica.
- /dev/stderr
- El descriptor de archivo 2 se duplica.
- /dev/tcp/equipo/puerto
- Si equipo es un nombre de equipo válido o una
dirección de internet y puerto es un número entero
correspondiente a un número de puerto o nombre de servicio,
bash intentará abrir el conector TCP correspondiente.
- /dev/udp/equipo/puerto
- Si equipo es un nombre de equipo válido o una
dirección de internet y puerto es un número entero
correspondiente a un número de puerto o nombre de servicio,
bash intentará abrir el conector UDP correspondiente.
Un fallo en la apertura o creación de un fichero hace que
la redirección fracase.
Deben usarse con cautela las redicrecciones con descriptores de
archivo mayores que 9 ya que pueden entrar en conflicto con los empleados
internamente por la propia shell.
Observe que la orden interna exec puede ejecutar
redirecciones con efecto en la shell actual.
Redirección de la Entrada
La redirección de la entrada hace que el fichero cuyo
nombre resulte de la expansión de palabra se abra para lectura
en el descriptor de fichero n, o la entrada estándar
(descriptor de fichero 0) si no se especificó n.
El formato general para la redirección de la entrada
es:
Redirección de la Salida
La redirección de la salida hace que el fichero cuyo nombre
resulte de la expansión de palabra se abra para escritura en
el descriptor de fichero n, o la salida estándar (descriptor
de fichero 1) si n no se especificó. Si el fichero no existe
se crea; si existe se trunca a longitud cero, se vacía.
El formato general para la redirección de la salida es:
Si el operador de redirección es >, y la
opción noclobber de la orden nativa set ha sido
activada, la redirección fallará si el nombre de fichero
resultante de la expansión de palabra existiera y fuera un
fichero regular. Si el operador de redirección es >|, o es
> y la opción noclobber de la orden nativa
set no está activada, la redirección se intenta incluso
si el archivo nombrado por palabra existe.
Añadir a la Salida Redirigida
La redirección de la salida en esta forma hace que el
fichero cuyo nombre resulte de la expansión de palabra se abra
para añadir en el descriptor de fichero n, o la salida
estándar (descriptor de fichero 1) si n no se
especificó. Si el fichero no existe, se crea.
El formato general para añadir a la salida es:
Redirección de las Salidas Estándar y de
Errores
Este constructo permite que ambas salidas estándares, la
normal (descriptor de archivo 1) y la de errores (descriptor de archivo 2)
se redirijan hacia el archivos cuyo nombre sea la expansión de
palabra con esta construcción.
hay dos formatos para la redirección de la salida
estándar y la salida de errores:
y
>&palabra
De las dos formas, es preferible la primera. Ésta es
semánticamente equivalente a
When using the second form, word may not expand to a number
or -. If it does, other redirection operators apply (see
Duplicating File Descriptors below) for compatibility reasons.
Este constructo permite que ambas salidas estándares, la
normal (descriptor de archivo 1) y la de errores (descriptor de fichero 2)
se redirijan hacia el archivo cuyo nombre sea la expansión de
palabra.
el formato para unir la redirección de la salida
estándar y la salida de errores sería el siguiente:
Ésta es semánticamente equivalente a
(consulte Duplicación de descriptores de fichero
más adelante).
Este tipo de redirección indica a la shell que lea la
entrada desde la fuente actual hasta que vea una línea que contenga
solamente separador (sin espacios en blanco al final). Todas las
líneas leídas hasta ese punto se emplean como la entrada
estándar de una orden.
El formato de los documentos internos es:
[n]<<[-]palabra
documento-interno
delimitador
No parameter and variable expansion, command substitution,
arithmetic expansion, or pathname expansion is performed on word. If
any part of word is quoted, the delimiter is the result of
quote removal on word, and the lines in the here-document are not
expanded. If word is unquoted, all lines of the here-document are
subjected to parameter expansion, command substitution, and arithmetic
expansion, the character sequence \<newline> is ignored, and
\ must be used to quote the characters \, $, and
`.
Si el operador de redirección es <<-, entonces
se quitan de las líneas de la entrada todos los caracteres de
tabulación iniciales, así como de la línea que contiene
delimitador. Esto permite que los documentos internos dentro de
guiones de la shell se sangren de manera natural.
Una variante de los documentos internos con el siguiente
formato:
The word undergoes tilde expansion, parameter and variable
expansion, command substitution, arithmetic expansion, and quote removal.
Pathname expansion and word splitting are not performed. The result is
supplied as a single string, with a newline appended, to the command on its
standard input (or file descriptor n if n is specified).
Operador de Redirección
se emplea para duplicar descriptores de ficheros de entrada. Si
palabra se expande a uno o más dígitos, el descriptor
de fichero denotado por n se hace ser una copia de este descriptor de
fichero. Si los dígitos en palabra no especifican un
descriptor de fichero abierto para entrada, se produce un error de
redirección. Si palabra se evalúa a -, el
descriptor de fichero n se cierra. Si n no se especifica, se
emplea la entrada estándar (descriptor de fichero 0).
Operador
is used similarly to duplicate output file descriptors. If
n is not specified, the standard output (file descriptor 1) is used.
If the digits in word do not specify a file descriptor open for
output, a redirection error occurs. If word evaluates to -,
file descriptor n is closed. As a special case, if n is
omitted, and word does not expand to one or more digits or -,
the standard output and standard error are redirected as described
previously.
Operador de Redirección
moves the file descriptor digit to file descriptor
n, or the standard input (file descriptor 0) if n is not
specified. digit is closed after being duplicated to n.
De forma análoga, el operador de redirección
moves the file descriptor digit to file descriptor
n, or the standard output (file descriptor 1) if n is not
specified.
Operador de Redirección
hace que el fichero cuyo nombres sea la expansión de
palabra se abra para lectura y para escritura en el descriptor de
fichero n, o en el descriptor de fichero 0 si no se especifica
n. Si el fichero no existe, se crea.
Aliases allow a string to be substituted for a word when it
is used as the first word of a simple command. The shell maintains a list of
aliases that may be set and unset with the alias and unalias
builtin commands (see SHELL BUILTIN COMMANDS below). The first
word of each simple command, if unquoted, is checked to see if it
has an alias. If so, that word is replaced by the text of the alias. The
characters /, $, `, and = and any of the shell
metacharacters or quoting characters listed above may not appear in
an alias name. The replacement text may contain any valid shell input,
including shell metacharacters. The first word of the replacement text is
tested for aliases, but a word that is identical to an alias being expanded
is not expanded a second time. This means that one may alias ls to
ls -F, for instance, and bash does not try to recursively
expand the replacement text. If the last character of the alias value is a
blank, then the next command word following the alias is also checked
for alias expansion.
Los alias se crean y listan con la orden alias, y se quitan
con la orden unalias.
No hay ningún mecanismo para poder usar argumentos en el
texto de reemplazo. Si se necesitan, debería emplearse
preferentemente una función de la shell. Consulte
FUNCIONES más adelante.
Los alias no se expanden cuando la shell no es interactivo, a
menos que se haya puesto la opción expand_aliases mediante
shopt (consulte la descripción de shopt bajo
ÓRDENES NATIVAS DE LA SHELL más
adelante).
The rules concerning the definition and use of aliases are
somewhat confusing. Bash always reads at least one complete line of
input, and all lines that make up a compound command, before executing any
of the commands on that line or the compound command. Aliases are expanded
when a command is read, not when it is executed. Therefore, an alias
definition appearing on the same line as another command does not take
effect until the next line of input is read. The commands following the
alias definition on that line are not affected by the new alias. This
behavior is also an issue when functions are executed. Aliases are expanded
when a function definition is read, not when the function is executed,
because a function definition is itself a command. As a consequence, aliases
defined in a function are not available until after that function is
executed. To be safe, always put alias definitions on a separate line, and
do not use alias in compound commands.
Para casi cualquier propósito, los alias pueden sustituirse
por funciones de la shell.
A shell function, defined as described above under SHELL
GRAMMAR, stores a series of commands for later execution. When
the name of a shell function is used as a simple command name, the list of
commands associated with that function name is executed. Functions are
executed in the context of the current shell; no new process is created to
interpret them (contrast this with the execution of a shell script). When a
function is executed, the arguments to the function become the positional
parameters during its execution. The special parameter # is updated
to reflect the change. Special parameter 0 is unchanged. The first
element of the FUNCNAME variable is set to the name of the
function while the function is executing.
All other aspects of the shell execution environment are identical
between a function and its caller with these exceptions: the
DEBUG and RETURN traps (see the description of
the trap builtin under SHELL BUILTIN COMMANDS below)
are not inherited unless the function has been given the
trace attribute (see the description of the declare
builtin below) or the -o functrace shell option has been
enabled with the set builtin (in which case all functions inherit the
DEBUG and RETURN traps), and the ERR trap is not
inherited unless the -o errtrace shell option has been
enabled.
Variables local to the function may be declared with the
local builtin command (local variables). Ordinarily, variables
and their values are shared between the function and its caller. If a
variable is declared local, the variable's visible scope is
restricted to that function and its children (including the functions it
calls).
In the following description, the current scope is a
currently- executing function. Previous scopes consist of that function's
caller and so on, back to the "global" scope, where the shell is
not executing any shell function. Consequently, a local variable at the
current scope is a variable declared using the local or
declare builtins in the function that is currently executing.
Las variables locales "invisibilizan" otras variables
con el mismo nombre que hayan sido delclaradas en un ámbito anterior.
Por ejemplo, una variable local declarada dentro de una función,
invisibiliza otra variable global que tenga el mismo nombre: las diversas
referencias y asignaciones serán referidas a la variable local, sin
modificar la variable global. Cuando la función termine, la variable
global vuelve a ser visible.
The shell uses dynamic scoping to control a variable's
visibility within functions. With dynamic scoping, visible variables and
their values are a result of the sequence of function calls that caused
execution to reach the current function. The value of a variable that a
function sees depends on its value within its caller, if any, whether that
caller is the "global" scope or another shell function. This is
also the value that a local variable declaration "shadows", and
the value that is restored when the function returns.
For example, if a variable var is declared as local in
function func1, and func1 calls another function func2,
references to var made from within func2 will resolve to the
local variable var from func1, shadowing any global variable
named var.
The unset builtin also acts using the same dynamic scope:
if a variable is local to the current scope, unset will unset it;
otherwise the unset will refer to the variable found in any calling scope as
described above. If a variable at the current local scope is unset, it will
remain so (appearing as unset) until it is reset in that scope or until the
function returns. Once the function returns, any instance of the variable at
a previous scope will become visible. If the unset acts on a variable at a
previous scope, any instance of a variable with that name that had been
shadowed will become visible (see below how the localvar_unset shell
option changes this behavior).
The FUNCNEST variable, if set to a numeric value greater
than 0, defines a maximum function nesting level. Function invocations that
exceed the limit cause the entire command to abort.
If the builtin command return is executed in a function,
the function completes and execution resumes with the next command after the
function call. Any command associated with the RETURN trap is
executed before execution resumes. When a function completes, the values of
the positional parameters and the special parameter # are restored to
the values they had prior to the function's execution.
Function names and definitions may be listed with the -f
option to the declare or typeset builtin commands. The
-F option to declare or typeset will list the function
names only (and optionally the source file and line number, if the
extdebug shell option is enabled). Functions may be exported so that
child shell processes (those created when executing a separate shell
invocation) automatically have them defined with the -f option to the
export builtin. A function definition may be deleted using the
-f option to the unset builtin.
Las funciones pueden anidarse. La variable FUNCNEST limita
el tamaño de la pila de llamadas de la función y restringir la
cantidad de llamadas que puede hacer una función. Por defecto, no se
impone ninguna restricción sobre este aspecto.
The shell allows arithmetic expressions to be evaluated, under
certain circumstances (see the let and declare builtin
commands, the (( compound command, and Arithmetic Expansion).
Evaluation is done in fixed-width integers with no check for overflow,
though division by 0 is trapped and flagged as an error. The operators and
their precedence, associativity, and values are the same as in the C
language. The following list of operators is grouped into levels of
equal-precedence operators. The levels are listed in order of decreasing
precedence.
- id++
id--
- variable post-incremento y post-reducción
- - +
- menos y más unarios
- ++id --id
- variable pre-incremento y pre-reducción
- ! ~
- negación lógica y bit a bit.
- **
- exponenciación
- * / %
- multiplicación, división, resto
- + -
- adición, sustracción
- << >>
- desplazamientos de bits a izquierda y derecha
- <= >= < >
- comparación
- == !=
- igualdad y desigualdad
- &
- Y de bits (AND)
- ^
- O exclusivo de bits (XOR)
- |
- O inclusivo de bits (OR)
- &&
- Y lógico (AND)
- ||
- O lógico (OR)
- expr?expr:expr
- Operador condicional
- = *= /= %= += -= <<= >>= &= ^= |=
- asignación
- expr1 ,
expr2
- coma
Shell variables are allowed as operands; parameter expansion is
performed before the expression is evaluated. Within an expression, shell
variables may also be referenced by name without using the parameter
expansion syntax. A shell variable that is null or unset evaluates to 0 when
referenced by name without using the parameter expansion syntax. The value
of a variable is evaluated as an arithmetic expression when it is
referenced, or when a variable which has been given the integer
attribute using declare -i is assigned a value. A null value
evaluates to 0. A shell variable need not have its integer attribute
turned on to be used in an expression.
Integer constants follow the C language definition, without
suffixes or character constants. Constants with a leading 0 are interpreted
as octal numbers. A leading 0x or 0X denotes hexadecimal. Otherwise, numbers
take the form [base#]n, where the optional base is a decimal
number between 2 and 64 representing the arithmetic base, and n is a
number in that base. If base# is omitted, then base 10 is used. When
specifying n, if a non-digit is required, the digits greater than 9
are represented by the lowercase letters, the uppercase letters, @, and _,
in that order. If base is less than or equal to 36, lowercase and
uppercase letters may be used interchangeably to represent numbers between
10 and 35.
Los operadores se evalúan en orden de precedencia. Las
sub-expresiones entre paréntesis se evalúan primero y pueden
sustituir a las reglas de precedencia anteriores.
Conditional expressions are used by the [[ compound command
and the test and [ builtin commands to test file attributes
and perform string and arithmetic comparisons. The test and [
commands determine their behavior based on the number of arguments; see the
descriptions of those commands for any other command-specific actions.
Expressions are formed from the following unary or binary
primaries. Bash handles several filenames specially when they are
used in expressions. If the operating system on which bash is running
provides these special files, bash will use them; otherwise it will emulate
them internally with this behavior: If any file argument to one of
the primaries is of the form /dev/fd/n, then file descriptor n
is checked. If the file argument to one of the primaries is one of
/dev/stdin, /dev/stdout, or /dev/stderr, file
descriptor 0, 1, or 2, respectively, is checked.
Salvo que se indique lo contrario, las primarias que operan en
archivos seguirán enlaces simbólicos operando en el archivo
enlazado en lugar de hacerlo sobre el propio enlace.
Cuando se emplea con [[, los operadores < y
> ordenan de modo lexicográfico en base a la
configuración de idioma del equipo. La orden test realiza la
ordenación en base a ASCII.
- -a
archivo
- Verdad si archivo existe.
- -b
archivo
- Verdad si archivo existe y es un archivo especial de bloques.
- -c
fichero
- Verdad si fichero existe y es un fichero especial de
caracteres.
- -d fichero
- Verdad si fichero existe y es un directorio.
- -e
fichero
- Verdad si archivo existe.
- -f
fichero
- Verdad si fichero existe y es un fichero regular.
- -g fichero
- Verdad si fichero existe y tiene el bit SGID.
- -h fichero
- Verdad si archivo existe y es un enlace simbólico o
blando.
- -k
archivo
- Verdad si archivo existe y tiene el bit 'pegajoso' (STIcky).
- -p fichero
- Verdad si fichero existe y es una tubería con nombre
(FIFO).
- -r
fichero
- Verdad si fichero existe y se puede leer.
- -s
fichero
- Verdad si fichero existe y tiene un tamaño mayor que
cero.
- -t fd
- Verdad si el descriptor de fichero fd está abierto y se
refiere a una terminal.
- -u
archivo
- Verdad si fichero existe y tiene el bit SUID.
- -w fichero
- Verdad si fichero existe y se puede modificar.
- -x
fichero
- Verdad si fichero existe y es ejecutable.
- -G fichero
- Verdad si fichero existe y su grupo es el GID efectivo.
- -L
fichero
- Verdad si archivo existe y es un enlace simbólico o
blando.
- -N fichero
- Verdad si fichero existe y ha sido modificado desde que se
leyó la última vez.
- -O archivo
- Verdad si fichero existe y su propietario es el UID efectivo.
- -S fichero
- Verdad si fichero existe y es un zócalo (socket).
- fichero1
-ef fichero2
- Verdad si archivo1 y archivo2 tienen los mismos
números de nodo-í y de dispositivo.
- fichero1
-nt fichero2
- Verdad si archivo1 es más reciente (según la fecha de
modificación) que archivo2, o si archivo1 existe
mientras que archivo2 no.
- archivo1
-ot archivo2
- Verdad si archivo1 es más antiguo que archivo2, o si
archivo2 existe mientras que archivo1 no.
- -o
nombre-opción
- Verdad si la opción de la shell nombre-opción
está activada. Vea la lista de opciones bajo la descripción
de la opción -o de la orden interna set más
adelante.
- -v
nombre-variable
- Verdadero si está definida la variable de la shell varname
(se le ha asignado un valor).
- -R
nombre-variable
- Verdadero si la variable de la shell varname está definida y
es una referencia de nombre.
- -z cadena
- Verdad si la longitud de cadena es cero.
- cadena
- -n cadena
- Verdad si la longitud de cadena no es cero.
- cadena1 ==
cadena2
- cadena1
= cadena2
- True if the strings are equal. = should be used with the
test command for POSIX conformance. When used with the [[
command, this performs pattern matching as described above (Compound
Commands).
- cadena1
!= cadena2
- Verdad si las cadenas no son iguales.
- cadena1
< cadena2
- Verdad si cadena1 se ordena lexicográficamente antes de
cadena2.
- cadena1
> cadena2
- Verdad si cadena1 se clasifica lexicográficamente tras
cadena2.
- arg1 OP
arg2
- OP is one of -eq, -ne, -lt, -le,
-gt, or -ge. These arithmetic binary operators
return true if arg1 is equal to, not equal to, less than, less than
or equal to, greater than, or greater than or equal to arg2,
respectively. Arg1 and arg2 may be positive or negative
integers. When used with the [[ command, Arg1 and
Arg2 are evaluated as arithmetic expressions (see
ARITHMETIC EVALUATION above).
EXPANSIÓN DE ORDEN SIMPLE
Cuando se ejecuta una orden simple, la shell realiza las
siguientes expansiones, asignaciones y redirecciones, de izquierda a derecha
en el siguiente orden:
- 1.
- Las palabras que el analizador ha marcado como asignaciones de variables
(aquéllas que preceden al nombre de la orden) y redirecciones se
guardan para un procesado posterior.
- 2.
- Las palabras que no sean asignaciones de variables ni redirecciones se
expanden. Si tras la expansión quedan aún palabras, la
primera palabra se toma como el nombre de la orden y las palabras
restantes son los argumentos.
- 3.
- Se ejecutan las redirecciones como se describió más arriba
bajo REDIRECCIÓN.
- 4.
- El texto tras el = en cada asignación de variable
está sujeto a expansión de tilde, expansión de
parámetro, sustitución de orden, expansión
aritmética y eliminado de comillas antes de ser asignado a la
variable.
If no command name results, the variable assignments affect the
current shell environment. In the case of such a command (one that consists
only of assignment statements and redirections), assignment statements are
performed before redirections. Otherwise, the variables are added to the
environment of the executed command and do not affect the current shell
environment. If any of the assignments attempts to assign a value to a
readonly variable, an error occurs, and the command exits with a non-zero
status.
Si no resulta ningún nombre de orden, se hacen las
redirecciones, pero no afectan al entorno de la shell en curso. Un error de
redirección hace que el shell acabe con un estado distinto de
cero.
Si hay un nombre de orden tras la expansión, la
ejecución procede como se describió antes. De otro modo, la
orden sale. Si una de las expansiones contenía una sustitución
de orden, el estado de salida de la orden es el de la última
sustitución de orden realizada. Si no había sustituciones de
órdenes, la orden acaba con un estado de cero.
Después de que una orden ha sido dividida en palabras, si
el resultado es una orden simple y una lista opcional de argumentos, tienen
lugar las siguientes acciones.
Si el nombre de la orden no contiene barras inclinadas, la shell
intenta localizarla. Si existe una función de la shell con ese
nombre, esa función se llama como se describió arriba en
FUNCIONES. Si el nombre no coincide con el de ninguna
función, la shell lo busca en la lista de órdenes internas. Si
se encuentra, se llama a la orden interna correspondiente.
Si el nombre no es ni una función de la shell ni una orden
interna, y no contiene barras inclinadas, bash busca en cada elemento
de PATH un directorio que contenga un archivo
ejecutable con ese nombre. Bash emplea una tabla de dispersión
(hash) para recordar los nombres de ruta completos de los archivos
ejecutables (consulte hash en ÓRDENES NATIVAS DE LA
SHELL a continuación). Solo se realiza una búsqueda
completa de los directorios de PATH si la orden no se
encuentra en la tabla de llamada command_not_found_handle. Si
la función existe, se invoca en un entorno de ejecución
separado con la orden y sus argumentos originales, el valor de salida de
esta función será el de esa subshell. Si la función no
está definida, la shell muestra un mensaje de error y devuelve un
estado de salida de 127.
Si la búsqueda fue exitosa, o si el nombre de la orden
contiene una o más barras inclinadas, la shell ejecuta el programa
con ese nombre en un entorno de ejecución separado. El argumento 0 se
pone al nombre dado, y el resto de argumentos de la orden se ponen a los
argumentos dados, si los hay.
Si esta ejecución fallara porque el fichero no tuviera un
formato ejecutable y tampoco fuese un directorio, se asumiría que es
un script de la shell, un archivo e contiene órdenes de la
shell; la shell crea una subshell para ejecutarlo. Esta subshell se reinicia
a si misma, así que el efecto es el mismo que si se hubiera llamado
una nueva shell para ejecutar el script, con la excepción de que el
proceso hijo retiene las localizaciones de órdenes recordadas por su
antecesor (vea hash más adelante en ÓRDENES
NATIVAS DE LA SHELL).
Si el programa es un fichero que empieza con los dos caracteres
#!, el resto de la primera línea especifica un
intérprete para el programa. El shell ejecuta el intérprete
especificado en sistemas operativos que no manejen por sí mismos este
formato de ejecutable. Los argumentos del intérprete consisten en un
solo argumento opcional tras el nombre del intérprete en la primera
línea del programa, seguido del nombre del programa, seguido por los
argumentos de la orden, si los hubiera.
la shell tiene un entorno de ejecución, que consiste
en lo siguiente:
- ficheros abiertos heredados por la shell en la llamada, quizás
modificada por redirecciones suministradas a la orden interna
exec
- el directorio de trabajo en curso, establecido por cd, pushd
o popd, o heredado por la shell en la llamada
- la máscara de modo de creación de ficheros, establecida por
umask o heredada del padre de la shell
- las trampas en curso establecidas por trap
- parámetros de la shell que han sido establecidos por asignaciones
de variables o con set, o heredados del padre de la shell en el
entorno
- funciones de la shell definidas durante la ejecución o heredadas
del padre de la shell en el entorno
- opciones activadas en la llamada (bien por omisión o mediante
argumentos en la línea de órdenes) o por set
- opciones activadas mediante shopt
- alias de la shell definidos con alias
- varios identificadores de proceso, incluyendo los de tareas en segundo
plano, el valor de $$, y el valor de
$PPID
Cuando una orden simple distinta de una interna o una
función de la shell se va a ejecutar, se llama en un entorno de
ejecución separado que consiste en lo siguiente. A menos que se diga
otra cosa, los valores se heredan del shell.
- los ficheros abiertos de la shell, más las modificaciones y
adiciones especificadas en la orden por redirecciones
- el directorio de trabajo en curso
- la máscara de modo de creación de ficheros
- variables de la shell marcadas para la exportación, junto con
variables exportadas para la orden, pasadas en el entorno
- las trampas capturadas por la shell se restauran a los valores del padre
del shell, y las trampas que no son tenidas en cuenta por la shell tampoco
lo son
Una orden llamada en este entorno separado no puede afectar al
entorno de ejecución de la shell.
Una subshell es una copia del proceso de la shell.
Command substitution, commands grouped with parentheses, and
asynchronous commands are invoked in a subshell environment that is a
duplicate of the shell environment, except that traps caught by the shell
are reset to the values that the shell inherited from its parent at
invocation. Builtin commands that are invoked as part of a pipeline are also
executed in a subshell environment. Changes made to the subshell environment
cannot affect the shell's execution environment.
Subshells spawned to execute command substitutions inherit the
value of the -e option from the parent shell. When not in posix
mode, bash clears the -e option in such subshells.
If a command is followed by a & and job control is not
active, the default standard input for the command is the empty file
/dev/null. Otherwise, the invoked command inherits the file
descriptors of the calling shell as modified by redirections.
Cuando se llama a un programa, se le da un vector de cadenas de
caracteres llamado el entorno. Esto es una lista de parejas
nombre-valor, de la forma nombre=valor.
La shell proporciona diversos medios para manipular el entorno. Al
inciarse, la shell busca en su entorno y crea un parámetro para cada
nombre encontrado, marcándolo automáticamente para
exportar a procesos hijos. Las órdenes ejecutadas heredan el
entorno. Las órdenes export y declare -x permiten
añadir y quitar parámetros y funciones del entorno. Si el
valor de un parámetro en el entorno se modifica, el nuevo valor pasa
a formar parte del entorno, reemplazando al antiguo. El entorno heredado por
cualquier orden ejecutada consiste en el entorno inicial de la shell, cuyos
valores pueden ser modificados, menos las parejas quitadas mediante la orden
unset más las adiciones con las órdenes export y
declare -x.
El entorno para cualquier orden simple o función
puede aumentarse temporalmente prefijándola con asignaciones de
parámetros, como se describió arriba en
PARÁMETROS. Estas sentencias de asignación
afectan solamente al entorno visto por esa orden.
Si la opción -k está puesta (vea la orden
interna set más adelante), entonces todas las
asignaciones de parámetros se ponen en el entorno para una orden, no
solo las que preceden a su nombre.
Cuando bash llama a una orden externa, la variable _
se pone con el nombre completo del fichero de la orden y se pasa a esa orden
en su entorno.
El estado de salida de una orden ejecutada es el valor retornado
por las llamada del sistema waitpid o una función equivalente.
El valor de los estados de salida varía entre 0 y 255, aunque como se
explica más adelante, la shell suele usar valores superiores a 125.
Los estados de salida de las órdenes nativas de la shell y de las
órdenes compuestas también están limitadas a ese
intervalo. En circunstancias concretas, la shell empleará valores
especiales para indicar algún error específico.
Para los propósitos de la shell, una orden que acabe con un
estado de salida cero, ha tenido éxito. Un estado de salida de cero
indica éxito. Un estado de salida distinto de cero indica fallo.
Cuando una orden termina por una señal fatal N, bash
emplea el valor de 128+N como el estado de salida.
Si una orden no se encuentra, el proceso hijo creado para
ejecutarla devuelve un estado de 127. Si una orden se encuentra pero no es
ejecutable, el estado de salida es 126.
Si una orden falla debido a un error durante la expansión o
redirección, el estado de salida es mayor que cero.
Las órdenes nativas de la shell devuelven un estado de 0
(verdad) si acaban con éxito, y distinto de cero
(falso) si ocurre un error mientras se ejecutan. Todas las
órdenes nativas devuelven un estado de salida de 2 para indicar un
modo de empleo incorrecto, habitualmente el uso de opciones no
válidas o la falta de algún argumento.
El estado de salida de la última orden puede verse
comprobando el parámetro especial $?.
El propio bash devuelve el estado de salida de la
última orden ejecutada, a menos que ocurra un error de sintaxis, en
cuyo caso acaba con un estado distinto de cero. Consulte la orden interna
exit más adelante.
Cuando bash es interactivo, en la ausencia de trampas, no
hace caso de SIGTERM (de modo que kill 0 no mata una
shell interactiva), y se captura y maneja SIGINT (de
manera que la orden interna wait es interrumpible). En todos
los casos, bash no hace caso de SIGQUIT. Si el control
de tareas tiene efecto, bash no hace caso de
SIGTTIN, SIGTTOU, y
SIGTSTP.
Las órdenes no nativas ejecutadas por bash tienen
gestores de señales puestos a los valores heredados por la shell de
su padre. Cuando el control de tareas no está activo, las
órdenes asíncronas ignorarán
SIGINT y también SIGQUIT
además de estos gestores heredados. Las órdenes
ejecutadas como resultado de sustitución de orden ignoran las
señales de control de tareas generadas mediante el teclado
SIGTTIN, SIGTTOU, ni
SIGTSTP.
la shell, de forma predeterminada, finaliza al recibir una
señal SIGHUP. Antes de salir, reenvía la
señal SIGHUP a todas las tareas, en
ejecución o paradas. A las tareas detenidas se les envía
SIGCONT para asegurarse de que reciben la señal
SIGHUP. Para evitar que la shell envíe la
señal a una tarea en particular, debería quitarse de la lista
con la orden nativa disown (vea ÓRDENES NATIVAS DE
LA SHELL más adelante) o marcarlo para no recibir
SIGHUP empleando disown -h.
Si la opción de la shell huponexit se ha puesto
mediante shopt, bash envía una señal
SIGHUP a todas las tareas cuando una shell de entrada
interactiva finaliza.
If bash is waiting for a command to complete and receives a
signal for which a trap has been set, the trap will not be executed until
the command completes. When bash is waiting for an asynchronous
command via the wait builtin, the reception of a signal for which a
trap has been set will cause the wait builtin to return immediately
with an exit status greater than 128, immediately after which the trap is
executed.
When job control is not enabled, and bash is waiting for a
foreground command to complete, the shell receives keyboard-generated
signals such as SIGINT (usually generated by ^C) that
users commonly intend to send to that command. This happens because
the shell and the command are in the same process group as the terminal, and
^C sends SIGINT to all processes in that
process group.
When bash is running without job control enabled and
receives SIGINT while waiting for a foreground command, it
waits until that foreground command terminates and then decides what
to do about the SIGINT:
- 1.
- If the command terminates due to the SIGINT, bash
concludes that the user meant to end the entire script, and acts
on the SIGINT (e.g., by running a
SIGINT trap or exiting itself);
- 2.
- If the command does not terminate due to SIGINT, the
program handled the SIGINT itself and did not treat
it as a fatal signal. In that case, bash does not treat
SIGINT as a fatal signal, either, instead assuming
that the SIGINT was used as part of the program's
normal operation (e.g., emacs uses it to abort editing commands) or
deliberately discarded. However, bash will run any trap set on
SIGINT, as it does with any other trapped signal it receives
while it is waiting for the foreground command to complete, for
compatibility.
El control de tareas se refiere a la capacidad de parar
selectivamente (suspender) la ejecución de procesos y
continuar (reanudar) su ejecución posteriormente. Un usuario
emplea esta utilidad generalmente a través de una interfaz
interactiva suministrada conjuntamente por el controlador del terminal del
núcleo del sistema operativo y bash.
la shell asocia un trabajo con cada tubería.
Mantiene una tabla de tareas ejecutándose actualmente, que pueden
listarse con la orden jobs. Cuando bash arranca un trabajo
asíncronamente (en segundo plano), imprime una línea
con un aspecto como ésta:
indicando que este trabajo es el número 1 y que el PID del
último proceso en la tubería asociada con él es 25647.
Todos los procesos en una misma tubería son miembros del mismo
trabajo. Bash emplea la abstracción del trabajo como la
base para el control de tareas.
To facilitate the implementation of the user interface to job
control, the operating system maintains the notion of a current terminal
process group ID. Members of this process group (processes whose process
group ID is equal to the current terminal process group ID) receive
keyboard-generated signals such as SIGINT. These processes are
said to be in the foreground. Background processes are
those whose process group ID differs from the terminal's; such processes are
immune to keyboard-generated signals. Only foreground processes are allowed
to read from or, if the user so specifies with stty
tostop, write to the terminal. Background processes which attempt to
read from (write to when stty tostop is in effect)
the terminal are sent a SIGTTIN (SIGTTOU) signal by
the kernel's terminal driver, which, unless caught, suspends the
process.
Si el sistema operativo en el que bash se está
ejecutando, admite el control de tareas y bash da facilidades para su
uso. Teclear el carácter suspender (típicamente
^Z, Control-Z) mientras que un proceso se está ejecutando,
hace que ese proceso se pare y le devuelve a Ud. al bash. Teclear el
carácter suspensión diferida (típicamente
^Y, Control-Y) hace que el proceso se pare cuando intente leer
entrada desde la terminal, y el control se devuelve a bash. El
usuario puede entonces manipular el estado de este trabajo, empleando la
orden bg para continuar con él en segundo plano, la orden
fg para continuar con él en primer plano, o la orden
kill para matarlo. Un ^Z tiene efecto inmediatamente, y tiene
el efecto adicional colateral de que la salida pendiente y lo que haya en el
búfer de entrada del teclado se descartan.
There are a number of ways to refer to a job in the shell. The
character % introduces a job specification (jobspec). Job
number n may be referred to as %n. A job may also be referred
to using a prefix of the name used to start it, or using a substring that
appears in its command line. For example, %ce refers to a stopped job
whose command name begins with ce. If a prefix matches more than one
job, bash reports an error. Using %?ce, on the other hand,
refers to any job containing the string ce in its command line. If
the substring matches more than one job, bash reports an error. The
symbols %% and %+ refer to the shell's notion of the
current job, which is the last job stopped while it was in the
foreground or started in the background. The previous job may be
referenced using %-. If there is only a single job, %+ and
%- can both be used to refer to that job. In output pertaining to
jobs (e.g., the output of the jobs command), the current job is
always flagged with a +, and the previous job with a -. A
single % (with no accompanying job specification) also refers to the current
job.
Si simplemente damos el nombre de una tarea, esto puede traerlo a
primer plano: %1 es un sinónimo de “fg
%1”, que trae el trabajo número 1 desde el segundo plano
al primero. Similarmente, “%1 &” reanuda la tarea 1
en segundo plano, equivalente a “bg %1”.
La shell se entera inmediatamente cuando una tarea cambia de
estado. Normalmente, bash espera hasta que está a punto de
mostrar un indicador antes de informar de cambios en el estado de una tarea,
para no interrumpir cualquier otra salida. Si la opción -b de
la orden interna set está activada, bash informa de
tales cambios inmediatamente. Cualquier trampa en SIGCHILD
será ejecutada para cada descendiente que termine.
If an attempt to exit bash is made while jobs are stopped
(or, if the checkjobs shell option has been enabled using the
shopt builtin, running), the shell prints a warning message, and, if
the checkjobs option is enabled, lists the jobs and their statuses.
The jobs command may then be used to inspect their status. If a
second attempt to exit is made without an intervening command, the shell
does not print another warning, and any stopped jobs are terminated.
Cuando la shell está esperando por una tarea o un proceso
con la orden interna wait y el control de tareas está
activado, wait retornará cuando la tarea cambie su estado. La
opción -f hace que wait espere hasta que la tarea o el
proces termine para retornar.
Cuando se ejecuta interactivamente, bash muestra el
indicador primario PS1 cuando está dispuesto para leer
una orden, y el secundario PS2 cuando necesita
más entrada para completar una orden. Bash muestra el
indicador PS0 después de recibir una orden pero
antes de ejecutarla. Bash muestra PS4 como se
describió anteriormente antes de seguir la ejecución
de cada orden cuando la opción -x está activada.
Bash permite personalizar estos indicadores insertando caracteres
especiales protegidos con barras invertidas que se interpretarán de
este modo:
- \a
- un carácter de alerta ASCII (07)
- \d
- la fecha en el formato "Día-Semana Mes Día"
(ejemplo, "Tue May 26") en inglés
- \D{formato}
- el formato se envía a strftime(3) y el resultado se
introduce en la cadena del indicador; si formato está en
blanco, se mostrará la fecha y hora en formato local. Las llaves
son necesarias
- \e
- un carácter de escape (ESC) ASCII (033)
- \h
- el nombre del equipo anfitrión hasta el primer `.'
- \H
- el nombre del equipo anfitrión completo
- \j
- la cantidad de tareas gestionadas por la shell al mismo tiempo
- \l
- el nombre base del nombre de dispositivo del terminal de la shell
- \n
- salto de línea
- \r
- retorno de carro
- \s
- el nombre de la shell, el nombre base de $0 (la porción que
sigue a la última barra inclinada)
- \t
- la hora actual en el formato de 24 horas HH:MM:SS
- \T
- la hora actual en el formato de 12 horas HH:MM:SS
- \@
- la hora actual en el formato de 12 horas con indicador AM/PM
- \A
- la hora actual en el formato de 24 horas HH:MM
- \u
- el nombre de usuario del usuario en curso
- \v
- la versión de bash (e.g., 2.00)
- \V
- la distribución de bash, versión + nivel de parcheo
(e.g., 2.00.0)
- \w
- el valor de la variable de la shell PWD ($PWD), con
$HOME abreviado con una tilde (emplea el valor de la
variable PROMPT_DIRTRIM).
- \W
- el nombre base del directorio de $PWD, cin $HOME
abreviado con una tilde.
- \!
- el número de historia de esta orden
- \#
- el número de orden de esta orden
- \$
- si el UID efectivo es 0 (el super-usuario), un #, si no un
$
- \nnn
- el carácter correspondiente al número octal nnn
- \\
- una barra inclinada invertida
- \[
- empieza una secuencia de caracteres no imprimibles, que pueden emplearse
para empotrar una secuencia de control del terminal en el indicador
- \]
- termina una secuencia de caracteres no imprimibles
El número de orden y el número de historia son
usualmente diferentes: el número de historia de una orden es su
posición en la lista de historia, que puede incluir órdenes
restauradas desde el historial (consulte HISTORIAL más
adelante), mientras que el número de orden es la
posición en la secuencia de órdenes ejecutadas durante
la sesión de shell actual. Después de que la cadena es
descodificada, se expande mediante la expansión de parámetros,
sustitución de órdenes, expansión aritmética,
expansión de cadena, y eliminación de comillas, sujeta al
valor de la opción de la shell promptvars (vea la
descripción de la orden shopt bajo ÓRDENES
INTERNAS DE LA SHELL más adelante). Esto puede tener algún
efecto indeseado si la parte protegida de la cadena aparece dentro
de la sustitución de órdenes o contiene algún caracter
especial para la expansión de palabras.
This is the library that handles reading input when using an
interactive shell, unless the --noediting option is given at shell
invocation. Line editing is also used when using the -e option to the
read builtin. By default, the line editing commands are similar to
those of Emacs. A vi-style line editing interface is also available. Line
editing can be enabled at any time using the -o emacs or -o vi
options to the set builtin (see SHELL BUILTIN COMMANDS
below). To turn off line editing after the shell is running, use the
+o emacs or +o vi options to the set builtin.
En esta sección, se emplea la notación al estilo de
Emacs para denotar las teclas. Las teclas de control se representan por
medio de C-tecla; así, C-n significa Control-N. De forma
similar, las teclas meta (Alt) se representan con M-tecla, de
forma que M-x significa Meta-X. (En teclados sin tecla meta,
M-x significa ESC x, i.e., pulsar la tecla de escape (Esc) y
luego la tecla x. Esto hace que ESC sea el prefijo meta. La
combinación M-C-x quiere decir ESC-Control-x, o pulsar
la tecla Escape y luego mantener presionada la tecla Control mientras se
pulsa la tecla x.)
Las órdenes de readline pueden recibir argumentos
numéricos que actúan normalmente como un número de
repetición. Algunas veces, empero, lo que tiene significado es el
signo del argumento. Pasar un argumento negativo a una orden que
actúa en la dirección adelante (p. ej., kill-line) hace
que esa orden actúe en la dirección contraria, hacia
atrás. Las órdenes cuyo comportamiento con argumentos se
desvíe de esto se señalan más adelante.
Cuando una orden se describe como que corta texto, el texto
borrado se guarda para una posible futura recuperación
(pegado). El texto cortado se guarda en un anillo de corte.
Cortes consecutivos hacen que el texto se acumule en una unidad, que puede
pegarse toda de golpe, de una vez. Las órdenes que no cortan texto
separan los trozos de texto en el anillo de corte.
Readline se personaliza poniendo órdenes en un archivo de
inicio (el archivo inputrc). El nombre de este archivo se toma del
valor de la variable INPUTRC. Si esta variable no está
definida, el valor predeterminado es /etc/inputrc. Cuando un
programa que hace uso de la biblioteca readline arranca, el archivo de
inicio se lee, y se establecen las definiciones de teclas y variables. Solo
se permiten unas pocas construcciones básicas en el archivo de inicio
de readline. Las líneas en blanco no se tienen en cuenta. Las
líneas que comiencen con un # son comentarios. Las
líneas que comiencen con un $ indican construcciones
condicionales. Otras líneas representan definiciones de teclas y
definiciones de variables.
Las definiciones predeterminadas de teclas pueden cambiarse con un
fichero inputrc. Otros programas que usen esta biblioteca pueden
añadir sus propias órdenes y definiciones.
Por ejemplo, el poner
M-Control-u: universal-argument
o
C-Meta-u: universal-argument
dentro del fichero inputrc haría que M-C-u ejecutara la orden de
readline universal-argument.
Se reconocen los siguientes nombres simbólicos de
caracteres: RUBOUT, DEL, ESC, LFD,
NEWLINE, RET, RETURN, SPC, SPACE, y
TAB.
Además de los nombres de órdenes, readline permite
que se enlace una tecla cualquiera a una cadena de caracteres que se inserta
cuando la tecla se pulse (una macro).
La sintaxis para controlar las definiciones de teclas en el
fichero inputrc es simple. Todo lo que se requiere es el nombre de la
orden o el texto de una macro y una secuencia de teclas con la cual debe
enlazarse. El nombre se puede especificar en una de dos formas: como un
nombre simbólico de tecla, posiblemente con prefijos Meta- o
Control-, o como una secuencia de teclas.
Cuando se use la forma
nombre-tecla:nombre-función o macro,
nombre-tecla es el nombre de una tecla en inglés. Por
ejemplo:
Control-u: universal-argument
Meta-Rubout: backward-kill-word
Control-o: "> salida"
En el ejemplo de arriba, C-u se enlaza a la función
universal-argument, M-DEL se vincula a la función
backward-kill-word, y C-o se define como que se ejecute la
macro expresada en la parte derecha (esto es, insertar el texto ``>
output'' en la línea).
En la segunda forma,
"sectecla":nombre-función o macro,
sectecla difiere de la nombre-tecla de antes en que las
cadenas que representan una secuencia entera de teclas pueden especificarse
poniendo la secuencia entre comillas dobles. Así se pueden utilizar
algunas teclas de escape al estilo de GNU Emacs, como en el siguiente
ejemplo, pero no se reconocen los nombres de caracteres
simbólicos.
"\C-u": universal-argument
"\C-x\C-r": re-read-init-file
"\e[11~": "Tecla de Función 1"
En este ejemplo, C-u se enlaza de nuevo a la función
universal-argument. C-x C-r se vincula a la función
re-read-init-file, y ESC [ 1 1 ~ se define como que se inserte
el texto ``Function Key 1''.
El conjunto completo de las secuencias de escape al estilo de GNU
Emacs es
- \C-
- prefijo de control
- \M-
- prefijo meta
- \e
- un carácter de escape (ESC)
- \\
- barra invertida
- \"
- una " literal
- \'
- una ' literal
Además de las secuencias de escape al estilo de GNU Emacs,
se dispone de un segundo conjunto de escapes con la barra invertida:
- \a
- alerta (pitido)
- \b
- espacio-atrás
- \d
- espacio atrás
- \f
- nueva página
- \n
- salto de línea
- \r
- retorno de carro
- \t
- tabulación horizontal
- \v
- tabulación vertical
- \nnn
- el carácter de 8 bits cuyo código es el valor octal
nnn (de uno a tres dígitos)
- \xHH
- el carácter de 8-bits cuyo código es el valor hexadecimal
HH (uno o dos dígitos hexadecimales)
Cuando se mete el texto de una macro, se deben emplear comillas
simples o dobles para indicar una definición de macro. El texto no
entrecomillado se supone un nombre de función. En el cuerpo de la
macro, los escapes con barra inversa de arriba se expanden. La barra inversa
protegerá a cualquier otro carácter en el texto de la macro,
incluyendo a " y a '.
Bash permite mostrar o modificar las definiciones de teclas
en curso mediante la orden interna bind. El modo de edición
puede cambiarse durante una sesión interactiva empleando la
opción -o de la orden interna set (vea
ÓRDENES NATIVAS DE LA SHELL más
adelante).
Readline tiene variables que se pueden usar para personalizar
más aún su comportamiento. Una variable se puede definir en el
fichero inputrc con una sentencia de la forma
set nombre-variable valor
o bien empleando la orden nativa bind (consulte ÓRDENES
NATIVAS DE LA SHELL más adelante).
Except where noted, readline variables can take the values
On or Off (without regard to case). Unrecognized variable
names are ignored. When a variable value is read, empty or null values,
"on" (case-insensitive), and "1" are equivalent to
On. All other values are equivalent to Off. The variables and
their default values are:
- active-region-start-color
- A string variable that controls the text color and background when
displaying the text in the active region (see the description of
enable-active-region below). This string must not take up any
physical character positions on the display, so it should consist only of
terminal escape sequences. It is output to the terminal before displaying
the text in the active region. This variable is reset to the default value
whenever the terminal type changes. The default value is the string that
puts the terminal in standout mode, as obtained from the terminal's
terminfo description. A sample value might be
"\e[01;33m".
- active-region-end-color
- A string variable that "undoes" the effects of
active-region-start-color and restores "normal" terminal
display appearance after displaying text in the active region. This string
must not take up any physical character positions on the display, so it
should consist only of terminal escape sequences. It is output to the
terminal after displaying the text in the active region. This variable is
reset to the default value whenever the terminal type changes. The default
value is the string that restores the terminal from standout mode, as
obtained from the terminal's terminfo description. A sample value might be
"\e[0m".
- bell-style
(audible)
- Controla qué pasa cuando readline quiere tocar el pito de la
terminal. Si se define como none, readline nunca toca el pito. Si
se pone a visible, readline usa una alerta visible si está
disponible. Si se pone como audible, readline intenta hacer sonar
el pito de la terminal.
- bind-tty-special-chars
(On)
- If set to On, readline attempts to bind the control characters
treated specially by the kernel's terminal driver to their readline
equivalents.
- blink-matching-paren
(Off)
- If set to On, readline attempts to briefly move the cursor to an
opening parenthesis when a closing parenthesis is inserted.
- colored-completion-prefix
(Off)
- If set to On, when listing completions, readline displays the
common prefix of the set of possible completions using a different color.
The color definitions are taken from the value of the LS_COLORS
environment variable. If there is a color definition in $LS_COLORS
for the custom suffix "readline-colored-completion-prefix",
readline uses this color for the common prefix instead of its
default.
- colored-stats
(Off)
- If set to On, readline displays possible completions using
different colors to indicate their file type. The color definitions are
taken from the value of the LS_COLORS environment variable.
- La cadena que se inserta cuando se ejecuta la orden de readline
insert-comment. Esta orden está enlazada a M-# en
modo emacs y a # en modo vi.
- completion-display-width
(-1)
- The number of screen columns used to display possible matches when
performing completion. The value is ignored if it is less than 0 or
greater than the terminal screen width. A value of 0 will cause matches to
be displayed one per line. The default value is -1.
- completion-ignore-case
(Off)
- Si se pone a On, readline realiza la concordancia y
terminación de nombres de ficheros sin importar si las letras son
mayúsculas o minúsculas.
- completion-map-case
(Off)
- If set to On, and completion-ignore-case is enabled,
readline treats hyphens (-) and underscores (_) as
equivalent when performing case-insensitive filename matching and
completion.
- completion-prefix-display-length
(0)
- The length in characters of the common prefix of a list of possible
completions that is displayed without modification. When set to a value
greater than zero, common prefixes longer than this value are replaced
with an ellipsis when displaying possible completions.
- completion-query-items
(100)
- Esto determina cuándo se pregunta al usuario si quiere ver el
número de terminaciones posibles generadas por la orden
possible-completions. Puede ponerse a cualquier valor entero mayor
o igual a cero. Si el número de posibles terminaciones es mayor o
igual que el valor de esta variable, al usuario se le pregunta si desea o
no verlas; si no, simplemente se muestran en la terminal. El valor cero
indica que readline no debe preguntar nunca mientras que valores negativos
son interpretados igual que el cero.
- convert-meta
(On)
- Si se pone a On, readline convertirá caracteres con el
octavo bit definido a una secuencia de teclas ASCII recortando el octavo
bit y añadiendo un carácter Esc como prefijo (es decir,
usando Esc como el prefijo meta). Por está definido como
On, pero readline lo define como Off si la
localización contiene caracteres de 8 bits. Esta variable depende
de la LC_TYPE pudiendo variar según la localización
empleada.
- disable-completion
(Off)
- Si se pone a On, readline inhibirá la terminación de
palabras. Los caracteres para la terminación se insertarán
en la línea como si se hubieran hecho corresponder con
self-insert.
- echo-control-characters
(On)
- When set to On, on operating systems that indicate they support it,
readline echoes a character corresponding to a signal generated from the
keyboard.
- editing-mode
(emacs)
- Controla si readline empieza con un conjunto de definiciones de teclas
similar a las de Emacs o vi. editing-mode puede
ponerse a los valores emacs o vi.
- emacs-mode-string
(@)
- If the show-mode-in-prompt variable is enabled, this string is
displayed immediately before the last line of the primary prompt when
emacs editing mode is active. The value is expanded like a key binding, so
the standard set of meta- and control prefixes and backslash escape
sequences is available. Use the \1 and \2 escapes to begin and end
sequences of non-printing characters, which can be used to embed a
terminal control sequence into the mode string.
- enable-active-region
(On)
- The point is the current cursor position, and mark refers to
a saved cursor position. The text between the point and mark is referred
to as the region. When this variable is set to On, readline
allows certain commands to designate the region as active. When the
region is active, readline highlights the text in the region using the
value of the active-region-start-color, which defaults to the
string that enables the terminal's standout mode. The active region shows
the text inserted by bracketed-paste and any matching text found by
incremental and non-incremental history searches.
- enable-bracketed-paste
(On)
- When set to On, readline configures the terminal to insert each
paste into the editing buffer as a single string of characters, instead of
treating each character as if it had been read from the keyboard. This
prevents readline from executing any editing commands bound to key
sequences appearing in the pasted text.
- enable-keypad
(Off)
- Cuando se pone a On, readline intentará activar el teclado
auxiliar cuando se llame. Algunos sistemas necesitan esto para activar las
teclas de flechas de cursor.
- enable-meta-key
(On)
- Cuando se pone a On, readline intentará activar cualquier
modificación con la tecla meta para la que el terminal tenga
soporte. En muchos terminales, la tecla meta se usa para escribir
caracteres de 8 bits.
- expand-tilde
(Off)
- Si se pone a On, la expansión de tilde se realiza cuando
readline intenta la terminación de palabras.
- history-preserve-point
(Off)
- If set to On, the history code attempts to place point at the same
location on each history line retrieved with previous-history or
next-history.
- history-size
(unset)
- Set the maximum number of history entries saved in the history list. If
set to zero, any existing history entries are deleted and no new entries
are saved. If set to a value less than zero, the number of history entries
is not limited. By default, the number of history entries is set to the
value of the HISTSIZE shell variable. If an attempt is made to set
history-size to a non-numeric value, the maximum number of history
entries will be set to 500.
- horizontal-scroll-mode
(Off)
- When set to On, makes readline use a single line for display,
scrolling the input horizontally on a single screen line when it becomes
longer than the screen width rather than wrapping to a new line. This
setting is automatically enabled for terminals of height 1.
- input-meta
(Off)
- Si se pone a On, readline habilitará la entrada de 8 bits
(esto es, no pondrá a cero el octavo bit de los caracteres que
lea), sin importar lo que la terminal diga que admite. El nombre
meta-flag es un sinónimo para esta variable. Por defecto, su
valor es off aunque readline lo pondrá a On si la
localización contiene caracteres de 8 bits. Esta variable depende
de LC_TYPE pudiendo variar según la localización
empleada.
- isearch-terminators
(“C-[C-J”)
- The string of characters that should terminate an incremental search
without subsequently executing the character as a command. If this
variable has not been given a value, the characters ESC and
C-J will terminate an incremental search.
- keymap
(emacs)
- Establece el mapa de teclado actual para readline. El conjunto de nombres
de mapas de teclado válidos es emacs, emacs-standard,
emacs-meta, emacs-ctlx, vi, vi-command, y vi-insert. vi
es equivalente a vi-command; emacs es equivalente a
emacs-standard. El valor predeterminado es emacs; el valor
de editing-mode también afecta al mapa de teclado
predeterminado.
- keyseq-timeout
(500)
- Specifies the duration readline will wait for a character when
reading an ambiguous key sequence (one that can form a complete key
sequence using the input read so far, or can take additional input to
complete a longer key sequence). If no input is received within the
timeout, readline will use the shorter but complete key sequence.
The value is specified in milliseconds, so a value of 1000 means that
readline will wait one second for additional input. If this
variable is set to a value less than or equal to zero, or to a non-numeric
value, readline will wait until another key is pressed to decide
which key sequence to complete.
- mark-directories
(On)
- Si se pone a On, los nombres de directorios completados
tendrán una barra inclinada añadida al final.
- mark-modified-lines
(Off)
- Si se pone a On, las líneas de historia que hayan sido
modificadas se muestran con un asterisco precediéndolas
(*).
- mark-symlinked-directories
(Off)
- If set to On, completed names which are symbolic links to
directories have a slash appended (subject to the value of
mark-directories).
- match-hidden-files
(On)
- This variable, when set to On, causes readline to match files whose
names begin with a `.' (hidden files) when performing filename completion.
If set to Off, the leading `.' must be supplied by the user in the
filename to be completed.
- If set to On, menu completion displays the common prefix of the
list of possible completions (which may be empty) before cycling through
the list.
- output-meta
(Off)
- If set to On, readline will display characters with the eighth bit
set directly rather than as a meta-prefixed escape sequence. The default
is Off, but readline will set it to On if the locale
contains eight-bit characters. This variable is dependent on the
LC_CTYPE locale category, and may change if the locale is
changed.
- page-completions
(On)
- Si está a On, readline emplea un paginador interno, similar
a more, para mostrar en la pantalla todas las posibilidades
autocompletado al mismo tiempo.
- print-completions-horizontally
(Off)
- Si se pone a On, readline mostrará terminaciones con
concordancias clasificadas horizontalmente en orden alfabético, en
vez de verticalmente.
- revert-all-at-newline
(Off)
- If set to On, readline will undo all changes to history lines
before returning when accept-line is executed. By default, history
lines may be modified and retain individual undo lists across calls to
readline.
- show-all-if-ambiguous
(Off)
- Esto altera el comportamiento predeterminado de las funciones de
terminación. Si se pone a On, las palabras que tienen
más de una posible terminación hacen que las concordancias
se muestren inmediatamente en vez de tocarse el pito de la terminal.
- show-all-if-unmodified
(Off)
- This alters the default behavior of the completion functions in a fashion
similar to show-all-if-ambiguous. If set to On, words which
have more than one possible completion without any possible partial
completion (the possible completions don't share a common prefix) cause
the matches to be listed immediately instead of ringing the bell.
- show-mode-in-prompt
(Off)
- If set to On, add a string to the beginning of the prompt
indicating the editing mode: emacs, vi command, or vi insertion. The mode
strings are user-settable (e.g., emacs-mode-string).
- skip-completed-text
(Off)
- If set to On, this alters the default completion behavior when
inserting a single match into the line. It's only active when performing
completion in the middle of a word. If enabled, readline does not insert
characters from the completion that match characters after point in the
word being completed, so portions of the word following the cursor are not
duplicated.
- vi-cmd-mode-string
((orden))
- If the show-mode-in-prompt variable is enabled, this string is
displayed immediately before the last line of the primary prompt when vi
editing mode is active and in command mode. The value is expanded like a
key binding, so the standard set of meta- and control prefixes and
backslash escape sequences is available. Use the \1 and \2 escapes to
begin and end sequences of non-printing characters, which can be used to
embed a terminal control sequence into the mode string.
- vi-ins-mode-string
((ins))
- If the show-mode-in-prompt variable is enabled, this string is
displayed immediately before the last line of the primary prompt when vi
editing mode is active and in insertion mode. The value is expanded like a
key binding, so the standard set of meta- and control prefixes and
backslash escape sequences is available. Use the \1 and \2 escapes to
begin and end sequences of non-printing characters, which can be used to
embed a terminal control sequence into the mode string.
- visible-stats
(Off)
- Si se pone a On, se añade un carácter que represente
un tipo de fichero según lo que devuelve stat(2) cuando se
listan las terminaciones posibles.
Readline implementa una facilidad similar en espíritu a las
características de compilación condicional del preprocesador
de C que permite que las definiciones de teclas y variables se realicen en
función de pruebas o condiciones. Hay cuatro directivas del
analizador que se usan.
- $if
- The $if construct allows bindings to be made based on the editing
mode, the terminal being used, or the application using readline. The text
of the test, after any comparison operator,
extends to the end of the line; unless otherwise noted, no characters are
required to isolate it.
- mode
- La forma mode= de la directiva $if se usa para ver si
readline está en modo emacs o vi. Esto se puede emplear en
conjunción con la orden set keymap, por ejemplo, para poner
el teclado en los mapas emacs-standard y emacs-ctlx solo si
readline está arrancando en modo emacs.
- term
- La forma term= puede emplearse para incluir definiciones de teclas
específicas de una terminal determinada, quizás para enlazar
las secuencias de teclas generadas por las teclas de función de la
terminal. La palabra en la parte derecha del = se prueba contra el
nombre completo de la terminal y contra la porción del nombre de la
terminal antes del primer -. Esto permite que sun concuerde
con sun y con sun-cmd, por ejemplo.
- version
- The version test may be used to perform comparisons against
specific readline versions. The version expands to the current
readline version. The set of comparison operators includes =, (and
==), !=, <=, >=, <, and
>. The version number supplied on the right side of the operator
consists of a major version number, an optional decimal point, and an
optional minor version (e.g., 7.1). If the minor version is
omitted, it is assumed to be 0. The operator may be separated from
the string version and from the version number argument by
whitespace.
- application
- La construcción application se emplea para incluir
definiciones específicas de la aplicación. Cada programa que
usa la biblioteca readline define el nombre de la
aplicación, y en un archivo de inicio se puede comprobar si
existe un valor en particular. Esto se podría emplear para enlazar
secuencias de teclas a funciones útiles para un programa
específico. Por ejemplo, la orden siguiente añade una
secuencia de teclas que entrecomilla la palabra en curso o la anterior en
bash:
$if Bash
# Entrecomilla la palabra actual o previa
"\C-xq": "\eb\"\ef\""
$endif
- variable
- The variable construct provides simple equality tests for readline
variables and values. The permitted comparison operators are =,
==, and !=. The variable name must be separated from the
comparison operator by whitespace; the operator may be separated from the
value on the right hand side by whitespace. Both string and boolean
variables may be tested. Boolean variables must be tested against the
values on and off.
- $endif
- Esta orden, como se ha visto en el ejemplo precedente, termina una orden
$if.
- $else
- Las órdenes en esta rama de la directiva $if se ejecutan si
la comprobación falla.
- $include
- Esta directiva toma como argumento un solo nombre de fichero y lee
órdenes y definiciones de ese fichero. Por ejemplo, la siguiente
directiva leería de /etc/inputrc:
Readline proporciona órdenes para buscar a través
del historial de órdenes (vea HISTORIAL más
adelante) líneas que contengan una cadena especificada. Hay
dos modos de búsqueda: incremental y no
incremental.
La búsqueda incremental comienza antes de que el usuario
haya acabado de teclear la cadena a buscar. Tan pronto como se teclea cada
carácter de la cadena de búsqueda, readline muestra la
siguiente entrada de la historia que concuerde con la cadena que se
esté tecleando hasta este punto. Una búsqueda incremental
requiere solamente tantos caracteres como se necesiten para encontrar la
entrada deseada en el historial. Los caracteres contenidos en la variable
isearch-terminators se emplean para terminar una búsqueda
incremental. Control-G terminará una búsqueda incremental
reataurando la línea original. Una vez que la búsqueda
termine, la línea del historial que contenga la cadena de
búsqueda pasa a ser la línea actual.
To find other matching entries in the history list, type Control-S
or Control-R as appropriate. This will search backward or forward in the
history for the next entry matching the search string typed so far. Any
other key sequence bound to a readline command will terminate the search and
execute that command. For instance, a newline will terminate the
search and accept the line, thereby executing the command from the history
list.
Readline remembers the last incremental search string. If two
Control-Rs are typed without any intervening characters defining a new
search string, any remembered search string is used.
Las búsquedas no incrementales leen la cadena de
búsqueda entera antes de empezar a buscar en las líneas de la
lista de historia. La cadena de búsqueda puede ser tecleada por el
usuario o ser parte de los contenidos de la línea en curso.
Lo siguiente es una lista de los nombres de las órdenes y
las secuencias de teclas predeterminadas a las que están asociadas.
Los nombres de órdenes sin una secuencia de tecla acompañante
pertenecen a órdenes que no están asociadas a ninguna
secuencia de teclas de forma predeterminada. En las siguientes
descripciones, punto se refiere a la posición actual del
cursor y marca se refiere a una posición guardada mediante la
orden set-mark. El texto en dicho punto y la marca es lo que se
conoce como region.
Órdenes para el Movimiento
- beginning-of-line
(C-a)
- Mover al principio de la línea en curso.
- end-of-line
(C-e)
- Mover al final de la línea.
- forward-char
(C-f)
- Mover un carácter hacia adelante.
- backward-char
(C-b)
- Mover un carácter hacia atrás.
- forward-word
(M-f)
- Mover adelante hasta el final de la siguiente palabra. Las palabras se
componen de caracteres alfanuméricos (letras y
dígitos).
- backward-word
(M-b)
- Mover atrás hasta el principio de esta palabra o la anterior. Las
palabras se componen de caracteres alfanuméricos (letras y
dígitos).
- shell-forward-word
- Mover adelante hasta el final de la siguiente palabra. Las palabras
están delmitadas por metacaracteres de la shell no
entrecomillados.
- shell-backward-word
- Mover atrás hasta el principio de esta palabra o la anterior. Las
palabras se delimitan por metacaracteres de la shell no
entrecomillados.
- previous-screen-line
- Attempt to move point to the same physical screen column on the previous
physical screen line. This will not have the desired effect if the current
readline line does not take up more than one physical line or if point is
not greater than the length of the prompt plus the screen width.
- next-screen-line
- Attempt to move point to the same physical screen column on the next
physical screen line. This will not have the desired effect if the current
readline line does not take up more than one physical line or if the
length of the current readline line is not greater than the length of the
prompt plus the screen width.
- clear-display
(M-C-l)
- Clear the screen and, if possible, the terminal's scrollback buffer, then
redraw the current line, leaving the current line at the top of the
screen.
- clear-screen
(C-l)
- Despejar la pantalla y volver a crear la línea actual
dejándola en la parte superior de la pantalla. Si se proporciona un
argumento, refresca la línea actual sin despejar la pantalla.
- redraw-current-line
- Refrescar la línea en curso.
Órdenes para Manipular el Historial
- accept-line
(Nueva-línea, Intro)
- Aceptar la línea sin importar dónde esté el cursor.
Si esta línea no está vacía, añadirla al
historial de acuerdo con el estado de la variable
HISTCONTROL. Si la línea es una de las de la
historia, modificada, entonces restaurar el historial a su estado
original.
- previous-history
(C-p)
- Obtener la orden anterior del historial, moviéndose hacia
atrás en la misma.
- next-history
(C-n)
- Obtener la orden siguiente del historial, moviéndose hacia delante
en el mismo.
- beginning-of-history
(M-<)
- Mover a la primera línea del historial.
- end-of-history
(M->)
- Mover al final de la historia de entrada; esto es, la línea que
está siendo introducida en la actualidad.
- operate-and-get-next
(C-o)
- Aceptar la línea en curso para la ejecución y obtener la
línea siguiente relativa a la actual desde el historial, para la
edición. Si se añade un argumento numérico define la
línea del historial a emplear en lugar de usar al actual.
- fetch-history
- Con un argumento numérico, toma dicha entrada del histórico
y la copia en la línea actual. Si no se da ningún argumento,
se desplaza a la primera entrada del mismo.
- reverse-search-history
(C-r)
- Buscar hacia atrás empezando en la línea en curso y
moviéndose `arriba' a través del historial si es necesario.
Esta búsqueda es incremental.
- forward-search-history
(C-s)
- Buscar hacia adelante empezando en la línea en curso y
moviéndose `abajo' a través del historial si es necesario.
Esta búsqueda es incremental.
- non-incremental-reverse-search-history
(M-p)
- Buscar hacia atrás a través del historial empezando en la
línea en curso empleando una búsqueda no incremental de una
cadena suministrada por el usuario.
- non-incremental-forward-search-history
(M-n)
- Buscar hacia delante a través del historial empezando en la
línea en curso empleando una búsqueda no incremental de una
cadena suministrada por el usuario.
- history-search-forward
- Buscar hacia adelante a través del historial una cadena de
caracteres entre el comienzo de la línea en curso y el punto. Esta
búsqueda no es incremental.
- history-search-backward
- Buscar hacia atrás a través del historial una cadena de
caracteres entre el comienzo de la línea en curso y el punto. Esta
búsqueda no es incremental.
- history-substring-search-backward
- Buscar hacia atrás a través del historial una cadena de
caracteres entre el comienzo de la línea en curso y el punto. Esta
búsqueda no es incremental.
- history-substring-search-forward
- Buscar hacia delante a través del historial una cadena de
caracteres entre el comienzo de la línea en curso y el punto. Esta
búsqueda no es incremental.
- yank-nth-arg
(M-C-y)
- Insertar el primer argumento de la orden anterior (normalmente la segunda
palabra de la línea anterior) en el punto. Con un argumento
n, insertar la n-sima palabra de la orden anterior (las
palabras en la orden anterior empiezan con la palabra 0). Un argumento
negativo inserta la n-sima palabra desde el final de la orden
anterior.Una vez que se computa el argumento n, se extraerá
como si se definiese esta exapnsión del historial:
"!n"
- yank-last-arg (M-.,
M-_)
- Inserta el último argumento de la orden anterior (la última
palabra de la anterior entrada del historial). Con un argumento
numérico, se comporta de igual modo a yank-nth-arg.
Invocando varias veces yank-last-arg, se desplazará hacia
atrás en el historial insertando la última palabra (o
aquella definida en el argumento de la primera invocación) de cada
línea por la que se desplace. Cualquier aargumento numérico
que se proporcione en las sucesivas invocaciones determina la
dirección de desplazamiento en el historial. Un argumento negativo
cambiará dicha dirección hacia delante o hacia atrás.
Las utilidades de expansión del historial se usan para extraer la
última palabra como si se especificase "!$".
- shell-expand-line
(M-C-e)
- Expandir la línea como hace la shell. Esto realiza la
expansión de alias y de historia así como todas las
expansiones de palabra de la shell. Consulte EXPANSIÓN
DEL HISTORIAL más adelante para una descripción de
la expansión de historia.
- history-expand-line
(M-^)
- Realizar la expansión de historia en la línea en curso. Vea
EXPANSIÓN DEL HISTORIAL más adelante para una
descripción de la expansión de historia.
- magic-space
- Efectuar la expansión de historia en la línea en curso e
insertar un espacio. Vea EXPANSIÓN DEL HISTORIAL
más adelante para una descripción de la
expansión de historia.
- alias-expand-line
- Realizar la expansión de alias en la línea en curso. Vea
ALIAS arriba para una descripción de la
expansión de alias.
- history-and-alias-expand-line
- Realizar la expansión de historia y alias en la línea en
curso.
- insert-last-argument
(M-., M-_)
- Un sinónimo para yank-last-arg.
- edit-and-execute-command
(C-x C-e)
- Invoca un editor en la línea de órdenes actual
ejecutándose el resultado como órdenes de la shell.
bash intenta invocas $VISUAL,
$EDITOR y emacs en ese orden.
Órdenes para Cambiar el Texto
- end-of-file
(generalmente C-d)
- El caracter que determina el fin-de-archivo se define por ejemplo mediante
``stty''. Si se lee el carácter cuando no hay ninguno en la
línea y el punto está al principio de la línea,
Readline lo interpreta como el fin de la entrada y devuelve
EOF.
- delete-char
(C-d)
- Eliminar el carácter en el punto. Si esta función
está asociada con el mismo carácter que que tenga el tty
para EOF, como suele serlo C-d, vea anteriormente los
efectos.
- backward-delete-char
(Borrar)
- Borrar el carácter tras el cursor. Cuando se da un argumento
numérico, guardar el texto borrado en el anillo de corte.
- forward-backward-delete-char
- Borrar el carácter bajo el cursor, salvo que el cursor esté
al final de la línea, en cuyo caso se borrará el
carácter que esté detrás.
- quoted-insert (C-q,
C-v)
- Añadir el siguiente carácter tecleado a la línea tal
cual. Así es como se pueden insertar caracteres como C-q,
por ejemplo.
- tab-insert (C-v
TAB)
- Insertar un carácter de tabulación.
- self-insert
(a, b, A, 1, !, ...)
- Insertar el carácter tecleado.
- transpose-chars
(C-t)
- Arrastrar el carácter antes del punto hacia adelante sobre el
carácter en el punto. El punto se mueve adelante también. Si
el punto está al final de la línea, entonces transpone los
dos caracteres antes del punto. Los argumentos negativos no tienen
efecto.
- transpose-words
(M-t)
- Arrastrar la palabra antes del punto hacia adelante sobre el
carácter en el punto. El punto se mueve adelante también. Si
el punto está al final de la línea, se transponen los dos
últimas palabras de dicha línea.
- upcase-word
(M-u)
- Poner en mayúsculas la palabra en curso (o la siguiente). Con un
argumento negativo, pone la anterior, pero no mueve el punto.
- downcase-word
(M-l)
- Poner en minúsculas la palabra en curso (o la siguiente). Con un
argumento negativo, pone la anterior, pero no mueve el punto.
- capitalize-word
(M-c)
- Poner en mayúscula la inicial de la palabra en curso (o la
siguiente). Con un argumento negativo, pone la anterior, pero no mueve el
punto.
- overwrite-mode
- Toggle overwrite mode. With an explicit positive numeric argument,
switches to overwrite mode. With an explicit non-positive numeric
argument, switches to insert mode. This command affects only emacs
mode; vi mode does overwrite differently. Each call to
readline() starts in insert mode. In overwrite mode, characters
bound to self-insert replace the text at point rather than pushing
the text to the right. Characters bound to backward-delete-char
replace the character before point with a space. By default, this command
is unbound.
- kill-line
(C-k)
- Cortar el texto desde la posición actual del cursor hasta el final
de la línea.
- backward-kill-line
(C-x Borrar)
- Cortar hacia atrás hasta el principio de la línea.
- unix-line-discard
(C-u)
- Cortar hacia atrás desde el punto hasta el principio de la
línea. El texto cortado se guarda en el anillo de corte.
- kill-whole-line
- Cortar todos los caracteres de la línea en curso, sin importar
dónde esté el punto.
- kill-word
(M-d)
- Cortar desde el punto hasta el final de la palabra en curso, o si entre
palabras, hasta el final de la siguiente. Los extremos de las palabras son
los mismos que los empleados por forward-word.
- backward-kill-word
(M-supr)
- Cortar la palabra tras el punto. Los extremos de las palabras son los
mismos que los empleados por backward-word.
- shell-kill-word
- Cortar desde el punto hasta el final de la palabra en curso, o si entre
palabras, hasta el final de la siguiente. Los extremos de las palabras son
los mismos que los empleados por shell-forward-word.
- shell-backward-kill-word
- Cortar la palabra tras el punto. Los extremos de las palabras son los
mismos que los empleados por shell-backward-word.
- unix-word-rubout
(C-w)
- Cortar la palabra tras el punto, empleando el espacio en blanco como un
límite de palabra. El texto cortado se guarda en el anillo de
corte.
- unix-filename-rubout
- Cortar la palabra detrás del punto empleando el espacio en blanco y
la barra como límites de la palabra. El texto cortado se guarda en
el anillo de corte.
- delete-horizontal-space
(M-\)
- Borrar todos los espacios y tabuladores alrededor del punto.
- kill-region
- Cortar el texto en la región actual.
- copy-region-as-kill
- Copiar el texto de la región al anillo de corte.
- copy-backward-word
- Copiar la palabra antes del punto al búfer de corte. Los extremos
de palabras son los mismos que con backward-word.
- copy-forward-word
- Copiar la palabra que sigue al punto al búfer de corte. Los
extremos de palabra son los mismos que con forward-word.
- yank (C-y)
- Pegar la cima del anillo de corte en el búfer en el punto.
- yank-pop
(M-y)
- Rotar en el anillo de corte, y pegar la nueva cima. Solo funciona tras un
yank o yank-pop.
- digit-argument (M-0, M-1,
..., M--)
- Añadir este dígito al argumento, acumulándolo, o
comenzar con un nuevo argumento. M-- empieza un argumento negativo.
- universal-argument
- Ésta es otra forma de especificar un argumento. Si esta orden se
hace seguir de uno o más dígitos, opcionalmente con un signo
menos inicial, estos dígitos definen el argumento. Si a la orden
siguen dígitos, ejecutar de nuevo universal-argument
finaliza el argumento numérico, pero si no, no se tiene en cuenta.
Como un caso especial, si a esta orden sigue inmediatamente un
carácter que no es ni un dígito ni un signo menos, el
número del argumento para la siguiente orden se multiplica por
cuatro. El número del argumento es inicialmente uno, así que
ejecutar esta función por primera vez hace que el número del
argumento sea cuatro, una segunda vez lo hace dieciséis, y
así sucesivamente.
- complete
(TAB)
- Intentar realizar una terminación del texto antes del punto.
Bash intenta la terminación tratando al texto como una
variable (si el texto comienza con $), como un nombre de usuario
(si el texto empieza con ~), como un nombre de equipo
anfitrión (si el texto comienza con @), o como una orden
(incluyendo alias y funciones), por este orden. Si nada de esto concuerda,
se intenta la terminación de un nombre de fichero.
- possible-completions
(M-?)
- Listar las terminaciones posibles del texto antes del punto.
- insert-completions
(M-*)
- Insertar todas las terminaciones del texto antes del punto que
habrían sido generadas por possible-completions.
- Similar to complete, but replaces the word to be completed with a
single match from the list of possible completions. Repeated execution of
menu-complete steps through the list of possible completions,
inserting each match in turn. At the end of the list of completions, the
bell is rung (subject to the setting of bell-style) and the
original text is restored. An argument of n moves n
positions forward in the list of matches; a negative argument may be used
to move backward through the list. This command is intended to be bound to
TAB, but is unbound by default.
- Identical to menu-complete, but moves backward through the list of
possible completions, as if menu-complete had been given a negative
argument. This command is unbound by default.
- delete-char-or-list
- Deletes the character under the cursor if not at the beginning or end of
the line (like delete-char). If at the end of the line, behaves
identically to possible-completions. This command is unbound by
default.
- complete-filename
(M-/)
- Intentar la terminación de un nombre de fichero en el texto antes
del punto.
- possible-filename-completions
(C-x /)
- Listar las posibles terminaciones del texto antes del punto,
tratándolo como un nombre de fichero.
- complete-username
(M-~)
- Intentar la terminación del texto antes del punto,
tratándolo como un nombre de usuario.
- possible-username-completions
(C-x ~)
- Listar las posibles terminaciones del texto antes del punto,
tratándolo como un nombre de usuario.
- complete-variable
(M-$)
- Intentar la terminación del texto antes del punto,
tratándolo como una variable de la shell.
- possible-variable-completions
(C-x $)
- Listar las posibles terminaciones del texto antes del punto,
tratándolo como una variable de la shell.
- complete-hostname
(M-@)
- Intentar la terminación del texto antes del punto,
tratándolo como un nombre de equipo anfitrión.
- possible-hostname-completions
(C-x @)
- Listar las posibles terminaciones del texto antes del punto,
tratándolo como un nombre de equipo anfitrión.
- complete-command
(M-!)
- Intentar la terminación del texto antes del punto,
tratándolo como un nombre de orden. La terminación de orden
intenta hacer concordar el texto con alias, palabras reservadas, funciones
de la shell, órdenes internas de la shell, y finalmente nombres de
ficheros ejecutables, en ese orden.
- possible-command-completions
(C-x !)
- Listar las posibles terminaciones del texto antes del punto,
tratándolo como un nombre de orden.
- dynamic-complete-history
(M-TAB)
- Intentar la terminación del texto antes del punto, comparando el
texto con líneas del historial buscando concordancias para la
terminación.
- dabbrev-expand
- Intentar completar el menu en el texto antes del punto, comparando el
texto con líneas del historial buscando concordancias para la
terminación.
- complete-into-braces
(M-{)
- Efectuar la terminación de nombres de archivos e insertar la lista
de terminaciones posibles encerrada entre llaves de forma que la lista
esté disponible para la shell (vea Expansión de
llaves arriba).
- start-kbd-macro (C-x
()
- Empezar a grabar los caracteres tecleados, en la macro de teclado en
curso.
- end-kbd-macro (C-x
))
- Parar de grabar los caracteres tecleados en la macro de teclado en curso,
y almacenar la definición.
- call-last-kbd-macro (C-x
e)
- Reejecutar la última macro de teclado definida, haciendo que los
caracteres en la macro aparezcan como si se hubieran pulsado en el
teclado.
- print-last-kbd-macro
()
- Muestra la última macro de teclado definida en un formato adecuado
para su uso en el archivo inputrc.
- re-read-init-file (C-x
C-r)
- Leer los contenidos del archivo inputrc, e incorporar cualquier
definición de teclas o asignaciones de variables que se hubieran
encontrado en él.
- abort (C-g)
- Terminar abruptamente la orden de edición en curso y tocar el pito
de la terminal (según el establecimiento de
bell-style).
- do-lowercase-version (M-A, M-B,
M-x, ...)
- If the metafied character x is uppercase, run the command that is
bound to the corresponding metafied lowercase character. The behavior is
undefined if x is already lowercase.
- prefix-meta
(ESC)
- Convertir en meta el siguiente carácter tecleado. ESC
f es equivalente a Meta-f.
- undo (C-_, C-x
C-u)
- Deshacer de forma incremental, recordado separadamente para cada
línea.
- revert-line
(M-r)
- Deshacer todos los cambios hechos a esta línea. Esto es como
ejecutar la orden undo las veces suficientes como para devolver la
línea a su estado inicial.
- tilde-expand
(M-&)
- Efectuar la expansión de tilde en la palabra en curso.
- set-mark (C-@,
M-<espacio>)
- Establecer la marca en el punto. Si se da un argumento numérico, la
marca se establece en esa posición.
- exchange-point-and-mark
(C-x C-x)
- Cambia el punto con la marca. La posición actual del cursor se pone
en la posición guardada, y la vieja posición del cursor se
guarda como la marca.
- character-search
(C-])
- Se lee un carácter y el punto se mueve a la siguiente ocurrencia de
ese carácter. Un argumento numérico negativo hace que la
búsqueda sea de las ocurrencias anteriores.
- character-search-backward
(M-C-])
- Se lee un carácter y el punto se mueve a la anterior ocurrencia de
ese carácter. Un numérico negativo hace que la
búsqueda sea de las ocurrencias siguientes.
- skip-csi-sequence
- Read enough characters to consume a multi-key sequence such as those
defined for keys like Home and End. Such sequences begin with a Control
Sequence Indicator (CSI), usually ESC-[. If this sequence is bound to
"\[", keys producing such sequences will have no effect unless
explicitly bound to a readline command, instead of inserting stray
characters into the editing buffer. This is unbound by default, but
usually bound to ESC-[.
- insert-comment
(M-#)
- Without a numeric argument, the value of the readline comment-begin
variable is inserted at the beginning of the current line. If a numeric
argument is supplied, this command acts as a toggle: if the characters at
the beginning of the line do not match the value of comment-begin,
the value is inserted, otherwise the characters in comment-begin
are deleted from the beginning of the line. In either case, the line is
accepted as if a newline had been typed. The default value of
comment-begin causes this command to make the current line a shell
comment. If a numeric argument causes the comment character to be removed,
the line will be executed by the shell.
- spell-correct-word (C-x
s)
- Ejecuta una corrección ortográfica sobre la palabra actual,
considerándola un nombre de directorio o de archivo, igual que
mediante la opción cdspell.Los extremos de las palabras son
los mismos que los empleados por shell-forward-word.
- glob-complete-word
(M-g)
- La palabra antes del punto se trata como un patrón para la
expansión de nombres de ruta con un asterisco implícitamente
añadido. Este patrón se emplea para generar una lista de
posibles nombres de archivo para autocompletar.
- glob-expand-word (C-x
*)
- La palabra antes del punto se trata como un patrón para la
expansión de nombres de rutas y la lista de nombres de archivo
concordantes se inserta, reemplazando a la palabra. Si se proporciona un
argumento numérico, se añade un asterisco antes de la
expansión del nombre de ruta.
- glob-list-expansions
(C-x g)
- Mostrar la lista de expansiones que habrían sido generadas por
glob-expand-word y redibujar la línea. Si se aporta un
argumento numérico, se añade un asterisco antes de la
expansión del nombre de ruta
- dump-functions
- Mostrar todas las funciones y sus asociaciones de teclas en el flujo de
salida de readline. Si se da un argumento numérico, la salida se
formatea de tal modo que pueda formar parte de un fichero
inputrc.
- dump-variables
- Mostrar todas las variables de readline a las que se puedan asignar
valores, y éstos, en el flujo de salida de readline. Si se da un
argumento numérico, la salida se formatea de tal manera que pueda
formar parte de un fichero inputrc.
- dump-macros
- Mostrar todas las secuencias de teclas de readline asociadas a macros y
las cadenas de caracteres asociadas correspondientes. Si se da un
argumento numérico, la salida se formatea de tal manera que pueda
formar parte de un fichero inputrc.
- display-shell-version
(C-x C-v)
- Mostrar información de versión acerca de la instancia actual
de bash.
When word completion is attempted for an argument to a command for
which a completion specification (a compspec) has been defined using
the complete builtin (see SHELL BUILTIN COMMANDS
below), the programmable completion facilities are invoked.
First, the command name is identified. If the command word is the
empty string (completion attempted at the beginning of an empty line), any
compspec defined with the -E option to complete is used. If a
compspec has been defined for that command, the compspec is used to generate
the list of possible completions for the word. If the command word is a full
pathname, a compspec for the full pathname is searched for first. If no
compspec is found for the full pathname, an attempt is made to find a
compspec for the portion following the final slash. If those searches do not
result in a compspec, any compspec defined with the -D option to
complete is used as the default. If there is no default compspec,
bash attempts alias expansion on the command word as a final resort,
and attempts to find a compspec for the command word from any successful
expansion.
Once a compspec has been found, it is used to generate the list of
matching words. If a compspec is not found, the default bash
completion as described above under Completing is performed.
First, the actions specified by the compspec are used. Only
matches which are prefixed by the word being completed are returned. When
the -f or -d option is used for filename or directory name
completion, the shell variable FIGNORE is used to filter the
matches.
Any completions specified by a pathname expansion pattern to the
-G option are generated next. The words generated by the pattern need
not match the word being completed. The GLOBIGNORE shell
variable is not used to filter the matches, but the
FIGNORE variable is used.
Next, the string specified as the argument to the -W option
is considered. The string is first split using the characters in the
IFS special variable as delimiters. Shell quoting is honored.
Each word is then expanded using brace expansion, tilde expansion,
parameter and variable expansion, command substitution, and arithmetic
expansion, as described above under EXPANSION. The results are
split using the rules described above under Word Splitting.
The results of the expansion are prefix-matched against the word being
completed, and the matching words become the possible completions.
After these matches have been generated, any shell function or
command specified with the -F and -C options is invoked. When
the command or function is invoked, the COMP_LINE,
COMP_POINT, COMP_KEY, and
COMP_TYPE variables are assigned values as described
above under Shell Variables. If a shell function is being invoked,
the COMP_WORDS and COMP_CWORD variables
are also set. When the function or command is invoked, the first
argument ($1) is the name of the command whose arguments are being
completed, the second argument ($2) is the word being completed, and
the third argument ($3) is the word preceding the word being
completed on the current command line. No filtering of the generated
completions against the word being completed is performed; the function or
command has complete freedom in generating the matches.
Any function specified with -F is invoked first. The
function may use any of the shell facilities, including the compgen
builtin described below, to generate the matches. It must put the possible
completions in the COMPREPLY array variable, one per array
element.
Next, any command specified with the -C option is invoked
in an environment equivalent to command substitution. It should print a list
of completions, one per line, to the standard output. Backslash may be used
to escape a newline, if necessary.
After all of the possible completions are generated, any filter
specified with the -X option is applied to the list. The filter is a
pattern as used for pathname expansion; a & in the pattern is
replaced with the text of the word being completed. A literal &
may be escaped with a backslash; the backslash is removed before attempting
a match. Any completion that matches the pattern will be removed from the
list. A leading ! negates the pattern; in this case any completion
not matching the pattern will be removed. If the nocasematch shell
option is enabled, the match is performed without regard to the case of
alphabetic characters.
Finally, any prefix and suffix specified with the -P and
-S options are added to each member of the completion list, and the
result is returned to the readline completion code as the list of possible
completions.
If the previously-applied actions do not generate any matches, and
the -o dirnames option was supplied to complete when the
compspec was defined, directory name completion is attempted.
If the -o plusdirs option was supplied to complete
when the compspec was defined, directory name completion is attempted and
any matches are added to the results of the other actions.
By default, if a compspec is found, whatever it generates is
returned to the completion code as the full set of possible completions. The
default bash completions are not attempted, and the readline default
of filename completion is disabled. If the -o bashdefault option was
supplied to complete when the compspec was defined, the bash
default completions are attempted if the compspec generates no matches. If
the -o default option was supplied to complete when the
compspec was defined, readline's default completion will be performed if the
compspec (and, if attempted, the default bash completions) generate
no matches.
When a compspec indicates that directory name completion is
desired, the programmable completion functions force readline to append a
slash to completed names which are symbolic links to directories, subject to
the value of the mark-directories readline variable, regardless of
the setting of the mark-symlinked-directories readline variable.
There is some support for dynamically modifying completions. This
is most useful when used in combination with a default completion specified
with complete -D. It's possible for shell functions executed as
completion handlers to indicate that completion should be retried by
returning an exit status of 124. If a shell function returns 124, and
changes the compspec associated with the command on which completion is
being attempted (supplied as the first argument when the function is
executed), programmable completion restarts from the beginning, with an
attempt to find a new compspec for that command. This allows a set of
completions to be built dynamically as completion is attempted, rather than
being loaded all at once.
For instance, assuming that there is a library of compspecs, each
kept in a file corresponding to the name of the command, the following
default completion function would load completions dynamically:
_completion_loader()
{
. "/etc/bash_completion.d/$1.sh" >/dev/null
2>&1 && return 124
}
complete -D -F _completion_loader -o bashdefault -o
default
When the -o history option to the set builtin is
enabled, the shell provides access to the command history, the list
of commands previously typed. The value of the HISTSIZE
variable is used as the number of commands to save in a history
list. The text of the last HISTSIZE commands (default 500) is
saved. The shell stores each command in the history list prior to
parameter and variable expansion (see EXPANSION above) but
after history expansion is performed, subject to the values of the
shell variables HISTIGNORE and
HISTCONTROL.
On startup, the history is initialized from the file named by the
variable HISTFILE (default ~/.bash_history). The file
named by the value of HISTFILE is truncated, if
necessary, to contain no more than the number of lines specified by
the value of HISTFILESIZE. If HISTFILESIZE is
unset, or set to null, a non-numeric value, or a numeric value less than
zero, the history file is not truncated. When the history file is read,
lines beginning with the history comment character followed immediately by a
digit are interpreted as timestamps for the following history line. These
timestamps are optionally displayed depending on the value of the
HISTTIMEFORMAT variable. When a shell with history
enabled exits, the last $HISTSIZE lines are copied
from the history list to $HISTFILE. If the
histappend shell option is enabled (see the description of
shopt under SHELL BUILTIN COMMANDS below), the lines
are appended to the history file, otherwise the history file is
overwritten. If HISTFILE is unset, or if the history
file is unwritable, the history is not saved. If the
HISTTIMEFORMAT variable is set, time stamps are written to the
history file, marked with the history comment character, so they may
be preserved across shell sessions. This uses the history comment character
to distinguish timestamps from other history lines. After saving the
history, the history file is truncated to contain no more than
HISTFILESIZE lines. If HISTFILESIZE is
unset, or set to null, a non-numeric value, or a numeric value less
than zero, the history file is not truncated.
La orden interna fc (vea ÓRDENES NATIVAS
DE LA SHELL más adelante) puede emplearse para listar o
editar y re-ejecutar una porción de la lista de historia. La orden
interna history se puede utilizar para mostrar o modificar o volver a
ejecutar una parte del historial. Cuando se emplea la edición de
líneas de órdenes, están disponibles las órdenes
de búsqueda en cada modo de edición que proporcionan acceso al
historial.
la shell permite el control sobre qué órdenes se
guarden en el historial. Las variables HISTCONTROL y
HISTIGNORE se pueden definir de forma que la shell
guarde solamente un subconjunto de las órdenes introducidas. La
opción de la shell cmdhist, si está habilitada, hace
que la shell intente guardar cada línea de una orden
multi-línea en la misma entrada de la historia, añadiendo
punto y comas donde sea necesario para preservar la corrección
sintáctica. La opción de la shell lithist hace que la
shell guarde la orden con saltos de línea empotrados en vez de punto
y comas. Vea la descripción de la orden interna shopt
más adelante en ÓRDENES NATIVAS DE LA SHELL para
información sobre cómo establecer y anular opciones de
la shell.
EXPANSIÓN DEL HISTORIAL
la shell admite una característica de expansión de
historia que es parecida a la expansión de historia en csh.
Esta sección describe qué características
sintácticas están disponibles. Esta característica
está habilitada de forma predeterminada en shells interactivos, y
puede ser desactivada mediante la opción +H de la orden
interna set (vea ÓRDENES NATIVAS DE LA SHELL
más adelante). Los shells no interactivos no realizan la
expansión de la historia de forma predeterminada.
Las expansiones del historial introducen palabras desde el
historial en el flujo de entrada, facilitando así la
repetición de órdenes, la inserción de argumentos de
una orden anterior en la línea de entrada en curso, o la
corrección rápida de errores en una orden anterior.
La expansión del historial se realiza inmediatamente tras
la lectura de una línea completa, antes de que la shell la divida en
palabras. Tiene lugar en cada línea por separado sin considerar el
entrecomillado de anteriores líneas. Tiene lugar en dos fases. En la
primera se determina qué línea del historial hay que emplear
durante la sustitución. En la segunda se seleccionan porciones de esa
línea para su inclusión en la actual. La línea
seleccionada desde el historial es el evento, y la porción de
esa línea sobre la que se actúa son palabras. Se
dispone de varios modificadores para manipular las palabras
seleccionadas. La línea se divide en palabras de la misma manera que
cuando se lee la entrada, de forma que ciertas palabras separadas por
meta-caracteres rodeadas por comillas se consideran una sola palabra.
Las expansiones del historial se introducen por la aparición del
carácter de expansión de historial, que es por omisión
!. Solo las barras inversas (\) y las comillas simples pueden
proteger al carácter de expansión del historial, aunque dicho
carácter se considera entrecomillado si está justo antes de
una comilla doble de cierre de una cadena entre ese tipo de comillas.
Several characters inhibit history expansion if found immediately
following the history expansion character, even if it is unquoted: space,
tab, newline, carriage return, and =. If the extglob shell
option is enabled, ( will also inhibit expansion.
Se pueden emplear ciertas opciones que se ponen con la orden
interna shopt para cambiar el comportamiento de la expansión
de historia. Si la opción de la shell histverify está
activa (vea la descripción de la orden interna shopt), y se
está usando readline, las sustituciones de historia no se
pasan inmediatamente al analizador de la shell. En vez de eso, la
línea expandida se vuelve a cargar en el búfer de
edición de readline para una modificación posterior. Si
se está usando readline y la opción de la shell
histreedit está activada, una sustitución de historia
fallida se volverá a cargar en el búfer de edición de
readline para su corrección. La opción -p de la
orden interna history se puede emplear para ver qué
hará una expansión de historia antes de usarse. La
opción -s de la orden interna history se puede emplear
para añadir órdenes al final del historial sin ejecutarlas
realmente, de modo que estén disponibles para rellamadas
posteriores.
la shell permite el control de los diversos caracteres empleados
por el mecanismo de expansión de historia (vea la descripción
de histchars arriba en Variables de la shell). La shell
marcará como un comentario las marcas de tiempo durante el registro
del historial.
Un designador de evento es una referencia a una entrada de
línea de orden en el historial. Salvo que la referencia sea absoluta,
la posición de los eventos será relativa a la posición
actual en el historial.
- !
- Comenzar una sustitución de historia, excepto cuando le siga un
blanco, salto de línea, retorno de carro, = o (. (cuando la
opción extglob está activada mediante
shopt).
- !n
- Referirse a la línea de órdenes número n.
- !-n
- Referirse a la orden en curso menos n.
- !!
- Referirse a la orden anterior. Esto es lo mismo que `!-1'.
- !cadena
- Referirse a la orden más reciente del historial que precede a la
actual y comienza con cadena.
- !?cadena[?]
- Referirse a la orden más reciente del historial que precede a la
actual y que contenga cadena. El ? del final puede omitirse
si a cadena le sigue inmediatamente un salto de línea. Si no
se indica ninguna string, se usará la cadena empleada en la
última búsqueda, emitiendo un mensaje de error si no hay
ninguna cadena de búsquedas anteriores.
- ^cadena1^cadena2^
- Sustitución rápida. Repetir la orden anterior, reemplazando
cadena1 con cadena2. Equivale a
“!!:s^cadena1^cadena2^” (vea
Modificadores a continuación).
- !#
- La línea de orden entera tecleada hasta ahora.
Los designadores de palabras se emplean para seleccionar las
palabras que se deseen del evento. Un : separa la
especificación de evento del designador de palabra. Puede omitirse si
el designador de palabra comienza con un ^, $, *,
-, o %. Las palabras se numeran desde el principio de la
línea, con la primera palabra denotada por 0 (cero). Las palabras se
insertan en la línea en curso separadas por espacios simples.
- 0 (cero)
- La palabra número 0. Para la shell, ésta es la palabra de la
orden.
- n
- La n-sima palabra.
- ^
- El primer argumento. Esto es, la palabra número 1.
- $
- The last word. This is usually the last argument, but will expand to the
zeroth word if there is only one word in the line.
- %
- La palabra que concuerda con la búsqueda más reciente de
'?cadena?', si dicha cadena comienza con un caracter que forma
parte de una palabra.
- x-y
- Un intervalo de palabras; `-y' abrevia `0-y'.
- *
- Todas las palabras menos la número cero. Esto es un sinónimo
de `1-$'. No es un error emplear * si solo hay una palabra
en el evento; en este caso se devuelve la cadena vacía.
- x*
- Abreviatura de x-$.
- x-
- Abrevia x-$ como x*, pero omite la última palabra. Si
no se indica x, se usará el valor 0 por defecto.
Si se suministra un designador de palabra sin una
especificación de evento, se usa la orden anterior como el
evento.
Tras el designador opcional de palabra, puede haber una secuencia
de uno o más de los siguientes modificadores, precedido cada uno por
un ':'. Esto modifica o edita la/s palabra/s seleccionadas del evento del
historial.
- h
- Quitar un componente final de nombre de fichero, dejando solo la parte
izquierda.
- t
- Quitar todos los primeros componentes de un nombre de fichero, dejando la
última parte.
- r
- Quitar un sufijo final de la forma .xxx, dejando el nombre
base.
- e
- Quitar todo salvo el sufijo final.
- p
- Mostrar la nueva orden pero no ejecutarla.
- q
- Entrecomillar las palabras sustituidas, escapando de posteriores
sustituciones.
- x
- Entrecomillar las palabras sustituidas como con q, pero separae
entre palabras en los blancos y saltos de línea. Los
modificadores q y x son mutuamente excluyentes,
usándose el que aparezca de último.
- s/viejo/nuevo/
- Sustituir nuevo por la primera ocurrencia de viejo en la
línea de evento. Se puede emplear cualquier delimitador en vez de
/. El delimitador final es opcional si es el último carácter
de la línea de evento. El delimitador puede entrecomillarse en
viejo y nuevo con una sola barra inclinada inversa. Si &
aparece en nuevo, se reemplaza por viejo. Una sola barra
inversa protegerá el &. Si viejo está
vacío, se pone al último viejo sustituido, o, si no
tuvo lugar ninguna sustitución de historia previa, a la
última cadena en una búsqueda del tipo
!?cadena[?].. Si no se indica nuevo se
borrarán todas las ocurrencias de viejo.
- &
- Repetir la sustitución anterior.
- g
- Hace que los cambios se apliquen sobre la línea entera de evento.
Esto se emplea en conjunción con `:s' (p.ej.,
`:gs/viejo/nuevo/') o `:&'.
Si se usa con `:s', cualquier delimitador se puede utilizar en
lugar de /, y el delimitador final es opcional si es el último
carácter de la línea de evento. Puede usarse a como
sinónimo de g.
- G
- Aplica los modificadores 's' o '&' una vez a cada
palabra en la correspondiente línea del evento.
ÓRDENES NATIVAS DE LA SHELL
Unless otherwise noted, each builtin command documented in this
section as accepting options preceded by - accepts -- to
signify the end of the options. The :, true, false, and
test/[ builtins do not accept options and do not treat
-- specially. The exit, logout, return,
break, continue, let, and shift builtins accept
and process arguments beginning with - without requiring --.
Other builtins that accept arguments but are not specified as accepting
options interpret arguments beginning with - as invalid options and
require -- to prevent this interpretation.
- : [argumentos]
- Sin efecto; la orden no hace nada más que expandir
argumentos y realizar cualquier redirección que se haya
especificado. El estado de salida es 0.
-
. nombre-archivo [argumentos]
- source
nombre-archivo [argumentos]
- Read and execute commands from filename in the current shell
environment and return the exit status of the last command executed from
filename. If filename does not contain a slash, filenames in
PATH are used to find the directory containing
filename, but filename does not need to be executable. The
file searched for in PATH need not be executable.
When bash is not in posix mode, it searches the current
directory if no file is found in PATH. If the
sourcepath option to the shopt builtin command is
turned off, the PATH is not searched. If any
arguments are supplied, they become the positional parameters when
filename is executed. Otherwise the positional parameters are
unchanged. If the -T option is enabled, . inherits any trap
on DEBUG; if it is not, any DEBUG trap string is saved and
restored around the call to ., and . unsets the DEBUG
trap while it executes. If -T is not set, and the sourced file
changes the DEBUG trap, the new value is retained when .
completes. The return status is the status of the last command exited
within the script (0 if no commands are executed), and false if
filename is not found or cannot be read.
- alias [-p]
[nombre[=valor] ...]
- Alias sin argumentos o con la opción -p muestra la
lista de alias en la forma alias nombre=valor en la
salida estándar. Cuando se dan argumentos, se define un alias para
cada nombre cuyo valor se da. Un espacio extra tras
valor hace que en la siguiente palabra se realice la
sustitución de alias cuando el alias se expande. Para cada
nombre en la lista de argumentos para el que no se suministre un
valor, se muestran el nombre y el valor del alias. Alias
devuelve `verdad' a menos que se dé un nombre para el que no
se haya definido un alias.
- bg [espectrab
...]
- Reanuda la tarea suspendida espectrab en segundo plano, como si se
hubiera iniciado con &. Si espectrab no está
presente, se emplea la noción que tiene la shell del trabajo en
curso. bg espectrab devuelve 0 a menos que se ejecute
cuando el control de tareas esté deshabilitado, o cuando se ejecute
con el control de tareas habilitado si espectrab no se
encontró, o cuando se inició sin control de tareas.
- bind [-m
mapatecl] [-lpsvPSVX]
- bind [-m
mapatecl] [-q función] [-u
función] [-r sectecl]
- bind [-m
mapatecl] -f nombre-archivo
- bind [-m
keymap] -x keyseq:orden-shell
- bind [-m
mapatecl] sectecl:nombre-función
- bind [-m
keymap] keyseq:orden-readline
- bind,
readline-command-line
- Muestra las asociaciones actuales de teclas y funciones en
readline, asocia una secuencia de teclas a una función o
macro, o define una variable de readline. Todos los argumentos que
no sean opciones son órdenes tal como figurarían en
.inputrc, pero cada asociación debe pasarse como un
argumento separado; p.ej., '"\C-x\C-r": re-read-init-file'. Las
opciones, si se dan, tienen los siguientes significados:
- -m mapatecl
- Use keymap as the keymap to be affected by the subsequent bindings.
Acceptable keymap names are emacs, emacs-standard, emacs-meta,
emacs-ctlx, vi, vi-move, vi-command, and vi-insert. vi
is equivalent to vi-command (vi-move is also a synonym);
emacs is equivalent to emacs-standard.
- -l
- Lista los nombres de todas las funciones de readline.
- -p
- Muestra los nombres de funciones de readline de tal forma que
puedan volver a ser leídas.
- -P
- Lista los nombres de funciones de readline actuales y las
asociaciones.
- -s
- Muestra las secuencias de teclas de readline asociadas a macros y
las cadenas correspondientes de tal manera que puedan ser leídas de
nuevo.
- -S
- Muestra las secuencias de teclas de readline asociadas a macros y
las cadenas de caracteres correspondientes.
- -v
- Muestra los nombres de variables de readline y los valores de tal
manera que puedan volver a ser leídas.
- -V
- Lista los nombres de variables de readline actuales y los
valores.
- -f
nombre-archivo
- Lee las asociaciones de teclas desde nombre-archivo.
- -q
función
- Pregunta qué teclas llaman a la función
especificada.
- -u
función
- Desenlaza todas las teclas asociadas a la función
nombrada.
- -r
sectecl
- Borra cualquier asociación actual de sectecl.
- -x
keyseq:orden-shell
- Cause shell-command to be executed whenever keyseq is
entered. When shell-command is executed, the shell sets the
READLINE_LINE variable to the contents of the
readline line buffer and the READLINE_POINT
and READLINE_MARK variables to the current
location of the insertion point and the saved insertion point (the mark),
respectively. The shell assigns any numeric argument the user supplied to
the READLINE_ARGUMENT variable. If there was no argument,
that variable is not set. If the executed command changes the
value of any of READLINE_LINE,
READLINE_POINT, or READLINE_MARK,
those new values will be reflected in the editing state.
- -X
- List all key sequences bound to shell commands and the associated commands
in a format that can be reused as input.
El valor devuelto es 0 a menos que se dé una opción
no reconocida o que ocurra un error.
- break
[n]
- Exit from within a for, while, until, or
select loop. If n is specified, break n levels.
n must be ≥ 1. If n is greater than the number of
enclosing loops, all enclosing loops are exited. The return value is 0
unless n is not greater than or equal to 1.
- builtin
orden-interna [argumentos]
- Ejecuta la orden interna de la shell especificada, pasándole los
argumentos, y devuelve su estado de salida. Esto es útil
cuando se define una función cuyo nombre es el mismo que una orden
interna de la shell, reteniendo la funcionalidad de esa orden interna
dentro de la función. Por ejemplo, la orden interna cd se
puede redefinir normalmente de esta manera. El estado de salida es `falso'
si orden-interna no es una orden incorporada de la shell.
- caller
[expr]
- Returns the context of any active subroutine call (a shell function or a
script executed with the . or source builtins). Without
expr, caller displays the line number and source filename of
the current subroutine call. If a non-negative integer is supplied as
expr, caller displays the line number, subroutine name, and
source file corresponding to that position in the current execution call
stack. This extra information may be used, for example, to print a stack
trace. The current frame is frame 0. The return value is 0 unless the
shell is not executing a subroutine call or expr does not
correspond to a valid position in the call stack.
- cd [-L|[-P
[-e]] [-@]] [dir]
- Change the current directory to dir. if dir is not supplied,
the value of the HOME shell variable is the default. The
variable CDPATH defines the search path for the
directory containing dir: each directory name in
CDPATH is searched for dir. Alternative
directory names in CDPATH are separated by a colon
(:). A null directory name in CDPATH is the same as the
current directory, i.e., “.”. If dir
begins with a slash (/), then CDPATH is not used. The
-P option causes cd to use the physical directory
structure by resolving symbolic links while traversing dir and
before processing instances of .. in dir (see also the
-P option to the set builtin command); the -L option
forces symbolic links to be followed by resolving the link after
processing instances of .. in dir. If .. appears in
dir, it is processed by removing the immediately previous pathname
component from dir, back to a slash or the beginning of dir.
If the -e option is supplied with -P, and the current
working directory cannot be successfully determined after a successful
directory change, cd will return an unsuccessful status. On systems
that support it, the -@ option presents the extended attributes
associated with a file as a directory. An argument of - is
converted to $OLDPWD before the directory change is
attempted. If a non-empty directory name from CDPATH
is used, or if - is the first argument, and the directory
change is successful, the absolute pathname of the new working directory
is written to the standard output. If the directory change is successful,
cd sets the value of the PWD environment variable to the new
directory name, and sets the OLDPWD environment variable to the
value of the current working directory before the change. The return value
is true if the directory was successfully changed; false otherwise.
- command
[-pVv] orden [arg ...]
- Ejecuta orden con args suprimiendo la búsqueda normal
de funciones del shell. Solo se ejecutarán órdenes
incorporadas en la shell o programas encontrados en la variable
PATH. Si se da la opción -p, se busca
la orden empleándose un valor predeterminado para
PATH que garantiza encontrar todas las utilidades
estándar del sistema. Si se da la opción -V o la
-v, se muestra una descripción de orden. La
opción -v muestra una sola palabra que indica la orden o
nombre de archivo ejecutable empleado para la llamada a orden; la
opción -V produce una descripción algo más
prolija. Si se dan las opciones -V o -v, el estado de salida
es 0 si orden se encontró, y 1 si no. Si no se da ninguna de
las dos opciones y ocurrió un error u orden no se
encontró, el estado de salida es 127. Si no, el estado de salida de
command es el estado de salida de orden.
- compgen
[opción] [palabra]
- Generate possible completion matches for word according to the
options, which may be any option accepted by the complete
builtin with the exception of -p and -r, and write the
matches to the standard output. When using the -F or -C
options, the various shell variables set by the programmable completion
facilities, while available, will not have useful values.
The matches will be generated in the same way as if the
programmable completion code had generated them directly from a
completion specification with the same flags. If word is
specified, only those completions matching word will be
displayed.
El valor de retorno es veradero a menos que se dé una
opción inválida o que no se creen concordancias.
- complete
[-abcdefgjksuv] [-o comp-option] [-DEI]
[-A action] [-G globpat] [-W
wordlist]
-
[-F function] [-C command] [-X
filterpat] [-P prefix] [-S suffix]
name [name ...]
- complete
-pr [-DEI] [nombre ...]
- Specify how arguments to each name should be completed. If the
-p option is supplied, or if no options are supplied, existing
completion specifications are printed in a way that allows them to be
reused as input. The -r option removes a completion specification
for each name, or, if no names are supplied, all completion
specifications. The -D option indicates that other supplied options
and actions should apply to the “default” command
completion; that is, completion attempted on a command for which no
completion has previously been defined. The -E option indicates
that other supplied options and actions should apply to
“empty” command completion; that is, completion attempted on
a blank line. The -I option indicates that other supplied options
and actions should apply to completion on the initial non-assignment word
on the line, or after a command delimiter such as ; or |,
which is usually command name completion. If multiple options are
supplied, the -D option takes precedence over -E, and both
take precedence over -I. If any of -D, -E, or
-I are supplied, any other name arguments are ignored; these
completions only apply to the case specified by the option.
El proceso para aplicar estas especificaciones de
autocompletado sobre las palabras se describe en above under
Programmable Completion.
Other options, if specified, have the following meanings. The
arguments to the -G, -W, and -X options (and, if
necessary, the -P and -S options) should be quoted to
protect them from expansion before the complete builtin is
invoked.
- -o
comp-opction
- The comp-option controls several aspects of the compspec's behavior
beyond the simple generation of completions. comp-option may be one
of:
- bashdefault
- Perform the rest of the default bash completions if the compspec
generates no matches.
- default
- Use readline's default filename completion if the compspec generates no
matches.
- dirnames
- Perform directory name completion if the compspec generates no
matches.
- filenames
- Tell readline that the compspec generates filenames, so it can perform any
filename-specific processing (like adding a slash to directory names,
quoting special characters, or suppressing trailing spaces). Intended to
be used with shell functions.
- noquote
- Tell readline not to quote the completed words if they are filenames
(quoting filenames is the default).
- nosort
- Indica a readline que no ordene alfabéticamente la lista de
autocompletado.
- nospace
- Indica a readline que no se añada un espacio al final de la linea
(por defecto se hace) a las palabras completadas.
- plusdirs
- After any matches defined by the compspec are generated, directory name
completion is attempted and any matches are added to the results of the
other actions.
- -A
acción
- La acción para crear una lista de autocompletados
podrá ser una de las siguientes:
- alias
- Nombres de alias. También puede definirse como -a.
- arrayvar
- Nombres de varibales vectoriales.
- binding
- Definiciones de teclas de Readline.
- builtin
- Nombres de órdenes nativas de la shell. También se puede
especificar mediante -b.
- command
- Nombres de órdenes. También se puede definir con
-c.
- directory
- Nombres de directorios. También se puede definir mediante
-d.
- disabled
- Nombres de órdenes nativas de la shell deshabilitadas.
- enabled
- Nombres de órdenes nativas de la shell habilitadas.
- export
- Nombres de variables de la shell exportadas. También se puede
definir mediante -e.
- file
- File names. May also be specified as -f.
- function
- Names of shell functions.
- group
- Group names. May also be specified as -g.
- helptopic
- Help topics as accepted by the help builtin.
- hostname
- Hostnames, as taken from the file specified by the HOSTFILE
shell variable.
- job
- Job names, if job control is active. May also be specified as
-j.
- keyword
- Shell reserved words. May also be specified as -k.
- running
- Names of running jobs, if job control is active.
- service
- Service names. May also be specified as -s.
- setopt
- Valid arguments for the -o option to the set builtin.
- shopt
- Shell option names as accepted by the shopt builtin.
- signal
- Nombres de las señales.
- stopped
- Nombre de las tareas detenidas, siempre que esté activo el control
de tareas.
- user
- Nombres de usuario. También se puede utilizar -u
- variable
- Nombre de las variables de la shell. También se puede utilizar
-v.
- -C orden
- orden se ejecuta en una subshell, empleándose su salida como
posibilidades de atuocompletado. Se pasan los argumentos del mismo modo
que con la opción -F.
- -F
función
- The shell function function is executed in the current shell
environment. When the function is executed, the first argument ($1)
is the name of the command whose arguments are being completed, the second
argument ($2) is the word being completed, and the third argument
($3) is the word preceding the word being completed on the current
command line. When it finishes, the possible completions are retrieved
from the value of the COMPREPLY array variable.
- -G
globpat
- The pathname expansion pattern globpat is expanded to generate the
possible completions.
- -P
prefijo
- prefix is added at the beginning of each possible completion after
all other options have been applied.
- -S sufijo
- suffix is appended to each possible completion after all other
options have been applied.
- -W
lista_palabras
- The wordlist is split using the characters in the IFS
special variable as delimiters, and each resultant word is
expanded. Shell quoting is honored within wordlist, in order to
provide a mechanism for the words to contain shell metacharacters or
characters in the value of IFS. The possible completions are
the members of the resultant list which match the word being
completed.
- -X
filtro_ruta
- filterpat is a pattern as used for pathname expansion. It is
applied to the list of possible completions generated by the preceding
options and arguments, and each completion matching filterpat is
removed from the list. A leading ! in filterpat negates the
pattern; in this case, any completion not matching filterpat is
removed.
The return value is true unless an invalid option is supplied, an
option other than -p or -r is supplied without a name
argument, an attempt is made to remove a completion specification for a
name for which no specification exists, or an error occurs adding a
completion specification.
- compopt
[-o opción] [-DEI] [+o
opción] [nombre]
- Modify completion options for each name according to the
options, or for the currently-executing completion if no
names are supplied. If no options are given, display the
completion options for each name or the current completion. The
possible values of option are those valid for the complete
builtin described above. The -D option indicates that other
supplied options should apply to the “default” command
completion; that is, completion attempted on a command for which no
completion has previously been defined. The -E option indicates
that other supplied options should apply to “empty” command
completion; that is, completion attempted on a blank line. The -I
option indicates that other supplied options should apply to completion on
the initial non-assignment word on the line, or after a command delimiter
such as ; or |, which is usually command name completion.
The return value is true unless an invalid option is supplied,
an attempt is made to modify the options for a name for which no
completion specification exists, or an output error occurs.
- continue
[n]
- Resume the next iteration of the enclosing for, while,
until, or select loop. If n is specified, resume at
the nth enclosing loop. n must be ≥ 1. If n is
greater than the number of enclosing loops, the last enclosing loop (the
“top-level” loop) is resumed. The return value is 0 unless
n is not greater than or equal to 1.
- declare
[-aAfFgiIlnrtux] [-p] [nombre[=valor]
...]
- typeset
[-aAfFgiIlnrtux] [-p] [nombre[=valor]
...]
- Declare variables and/or give them attributes. If no names are
given then display the values of variables. The -p option will
display the attributes and values of each name. When -p is
used with name arguments, additional options, other than -f
and -F, are ignored. When -p is supplied without name
arguments, it will display the attributes and values of all variables
having the attributes specified by the additional options. If no other
options are supplied with -p, declare will display the
attributes and values of all shell variables. The -f option will
restrict the display to shell functions. The -F option inhibits the
display of function definitions; only the function name and attributes are
printed. If the extdebug shell option is enabled using
shopt, the source file name and line number where each name
is defined are displayed as well. The -F option implies -f.
The -g option forces variables to be created or modified at the
global scope, even when declare is executed in a shell function. It
is ignored in all other cases. The -I option causes local variables
to inherit the attributes (except the nameref attribute) and value
of any existing variable with the same name at a surrounding scope.
If there is no existing variable, the local variable is initially unset.
The following options can be used to restrict output to variables with the
specified attribute or to give variables attributes:
- -a
- Cada nombre es una variable de un vector indexado (consulte
Vectores más atrás). above).
- -A
- Cada nombre es una variable de un vector asociativo (consulte
Vectores más atrás). above).
- -f
- Usar solamente nombres de funciones.
- -i
- La variable se trata como un número entero; se realiza la
evaluación aritmética (consulte EVALUACIÓN
ARITMÉTICA). above) se ejecuta cuando se asigna un
valor a la variable.
- -l
- Cuando se le asigne un valor a la variable, todas las mayúsculas se
convierten en minúsculas. El atributo mayúsculas está
desactivado.
- -n
- Give each name the nameref attribute, making it a name
reference to another variable. That other variable is defined by the value
of name. All references, assignments, and attribute modifications
to name, except those using or changing the -n attribute
itself, are performed on the variable referenced by name's value.
The nameref attribute cannot be applied to array variables.
- -r
- Hace que nombres sean de lectura exclusiva. A estos nombres no se
les pueden asignar valores por medio de subsiguientes asignaciones, ni se
puede anular su definición con unset.
- -t
- Give each name the trace attribute. Traced functions inherit
the DEBUG and RETURN traps from the calling shell. The trace
attribute has no special meaning for variables.
- -u
- When the variable is assigned a value, all lower-case characters are
converted to upper-case. The lower-case attribute is disabled.
- -x
- Marca nombres para la exportación a órdenes
subsecuentes a través del entorno.
Using `+' instead of `-' turns off the attribute instead, with the
exceptions that +a and +A may not be used to destroy array
variables and +r will not remove the readonly attribute. When used in
a function, declare and typeset make each name local,
as with the local command, unless the -g option is supplied.
If a variable name is followed by =value, the value of the variable
is set to value. When using -a or -A and the compound
assignment syntax to create array variables, additional attributes do not
take effect until subsequent assignments. The return value is 0 unless an
invalid option is encountered, an attempt is made to define a function using
``-f foo=bar'', an attempt is made to assign a value to a readonly variable,
an attempt is made to assign a value to an array variable without using the
compound assignment syntax (see Arrays above), one of the
names is not a valid shell variable name, an attempt is made to turn
off readonly status for a readonly variable, an attempt is made to turn off
array status for an array variable, or an attempt is made to display a
non-existent function with -f.
- dirs [-clpv]
[+n] [-n]
- Sin opciones, muestra la lista de directorios que recuerda. La forma
predeterminada de mostrarlos es en una sola línea con los nombres
de directorios separados por espacios. Los directorios se añaden a
la lista (en realidad, una pila) con la orden pushd; la orden
popd los quita de la pila. El directorio actual es siempre el
primero en la pila.
- -c
- Limpia la pila de directorios borrando todas las entradas.
- -l
- Crea un listado empleando los nombres de ruta completos; por defecto, el
directorio home se designa utilizando una tilde.
- -p
- Muestra la pila de directorios con una entrada por cada línea.
- -v
- Muestra la pila de directorios con una entrada por línea,
prefijando cada entrada con su índice en la pila.
- +n
- Muestra la n-sima entrada contando desde la izquierda de la lista
mostrada por dirs cuando se llama sin opciones, empezando por
cero.
- -n
- Muestra la n-sima entrada contando desde la derecha de la lista
mostrada por dirs cuando se llama sin opciones, empezando por
cero.
El valor de retorno es 0 a menos que se dé una
opción inválida o que n indexe más allá
del final de la pila de directorios.
- disown [-ar]
[-h] [espectrab ... | pid ... ]
- Without options, remove each jobspec from the table of active jobs.
If jobspec is not present, and neither the -a nor the
-r option is supplied, the current job is used. If the
-h option is given, each jobspec is not removed from the
table, but is marked so that SIGHUP is not sent to the job
if the shell receives a SIGHUP. If no
jobspec is supplied, the -a option means to remove or mark
all jobs; the -r option without a jobspec argument restricts
operation to running jobs. The return value is 0 unless a jobspec
does not specify a valid job.
- echo [-neE]
[arg ...]
- Output the args, separated by spaces, followed by a newline. The
return status is 0 unless a write error occurs. If -n is specified,
the trailing newline is suppressed. If the -e option is given,
interpretation of the following backslash-escaped characters is enabled.
The -E option disables the interpretation of these escape
characters, even on systems where they are interpreted by default. The
xpg_echo shell option may be used to dynamically determine whether
or not echo expands these escape characters by default. echo
does not interpret -- to mean the end of options. echo
interprets the following escape sequences:
- \a
- alerta (pitido)
- \b
- espacio-atrás
- \c
- suppress further output
- \e
- \E
- un carácter de escape (ESC)
- \f
- nueva página
- \n
- nueva linea
- \r
- retorno de carro
- \t
- tabulación horizontal
- \v
- tabulación vertical
- \\
- barra invertida
- \0nnn
- the eight-bit character whose value is the octal value nnn (zero to
three octal digits)
- \xHH
- el carácter de 8-bits cuyo código es el valor hexadecimal
HH (uno o dos dígitos hexadecimales)
- \uHHHH
- caŕácter Unicode (ISO/IEC 10646) cuyo valor hexadecimal es
HHHH (de uno a cuatro caracteres hexadecimales)
- \UHHHHHHHH
- caŕácter Unicode (ISO/IEC 10646) cuyo valor hexadecimal es
HHHHHHHH (de uno a ocho caracteres hexadecimales)
- enable
[-a] [-dnps] [-f nombre-archivo] [nombre
...]
- Enable and disable builtin shell commands. Disabling a builtin allows a
disk command which has the same name as a shell builtin to be executed
without specifying a full pathname, even though the shell normally
searches for builtins before disk commands. If -n is used, each
name is disabled; otherwise, names are enabled. For example,
to use the test binary found via the PATH instead of
the shell builtin version, run ``enable -n test''. The -f
option means to load the new builtin command name from shared
object filename, on systems that support dynamic loading. Bash will
use the value of the BASH_LOADABLES_PATH variable as a
colon-separated list of directories in which to search for
filename. The default is system-dependent. The -d option
will delete a builtin previously loaded with -f. If no name
arguments are given, or if the -p option is supplied, a list of
shell builtins is printed. With no other option arguments, the list
consists of all enabled shell builtins. If -n is supplied, only
disabled builtins are printed. If -a is supplied, the list printed
includes all builtins, with an indication of whether or not each is
enabled. If -s is supplied, the output is restricted to the POSIX
special builtins. If no options are supplied and a name is
not a shell builtin, enable will attempt to load name from a
shared object named name, as if the command were ``enable -f
name name . El valor devuelto es 0 salvo que nombre no sea
una orden nativa de la shell o que osurriese un error al cargarlo de un
objeto compartido.
- eval [arg
...]
- Los args se leen y concatenan juntos para formar una sola orden.
Entonces la shell lee y ejecuta esta orden, y su estado de salida se
devuelve como el valor de eval. Si no hay args, o solamente
argumentos vacíos, eval devuelve 0.
- exec [-cl]
[-a nombre] [orden [argumentos]]
- Si se especifica orden, reemplaza a la shell. No se crea
ningún proceso nuevo sino que los argumentos pasan a ser los
argumentos de orden. Si se da la opción -l, la shell
pone un guión en el argumento número cero pasado a
orden. Esto es lo que hace login(1). La opción
-c hace que orden se ejecute con un entorno vacío. Si
se da -a, la shell pasa nombre como el argumento
número cero de la orden ejecutada. Si orden no puede
ejecutarse por alguna razón, una shell no interactiva
finalizará, a menos que se haya activado la opción de la
shell execfail, en cuyo caso devuelve `fallo'. Una subshell
finalizará siempre su ejecución si falla exec. Una
shell interactiva devuelve `fallo' si el archivo no puede ejecutarse. Si
orden no se especifica, cualquier redirección tiene efecto
en la shell en curso, y el estado de salida es 0. Si hay un error de
redirección, el estado de salida será 1.
- exit
[n]
- Hace que la shell acabe con un estado de valor n. Si n se
omite, el valor de salida es el de la última orden ejecutada. Se
ejecuta una trampa puesta en EXIT antes de que la shell
termine.
- export
[-fn] [nombre[=palabra]] ...
- export
-p
- The supplied names are marked for automatic export to the
environment of subsequently executed commands. If the -f option is
given, the names refer to functions. If no names are given,
or if the -p option is supplied, a list of names of all exported
variables is printed. The -n option causes the export property to
be removed from each name. If a variable name is followed by
=word, the value of the variable is set to word.
export returns an exit status of 0 unless an invalid option is
encountered, one of the names is not a valid shell variable name,
or -f is supplied with a name that is not a function.
- fc [-e
editor] [-lnr] [primero]
[último]
- fc -s
[pat=rep] [ord]
- The first form selects a range of commands from first to
last from the history list and displays or edits and re-executes
them. First and last may be specified as a string (to locate
the last command beginning with that string) or as a number (an index into
the history list, where a negative number is used as an offset from the
current command number). When listing, a first or last of 0
is equivalent to -1 and -0 is equivalent to the current command (usually
the fc command); otherwise 0 is equivalent to -1 and -0 is invalid.
If last is not specified, it is set to the current command for
listing (so that ``fc -l -10'' prints the last 10 commands) and to
first otherwise. If first is not specified, it is set to the
previous command for editing and -16 for listing.
La opción -n suprime los números de orden
en un listado. La opción -r invierte el orden de los
mandatos. Si se da la opción -l , las órdenes se
listan en la salida estándar. Si no, se llama al editor dado por
editor en un archivo conteniendo esas órdenes. Si no se da
editor, se emplea el valor de la variable FCEDIT, o
el valor de EDITOR si FCEDIT
no está definido. Si no está definida ni una variable
ni otra, vi vi es el editor que se
empleará. Cuando la edición se haya completado, las
órdenes editadas se muestran y ejecutan.
En la segunda forma, orden se re-ejecuta tras que cada
instancia de pat se reemplace por rep. orden se
interpreta igual que se hacía con primero anteriormente.
Un alias de utilidad para emplear con esto es ``r="fc -s"'',
de tal modo que al teclear ``r cc'' se ejecute la última orden
que empezara con ``cc'' y que al teclear ``r'' se re-ejecute la
última orden.
Si se usa la primera forma, el valor de retorno es 0 a menos
que se encuentre una opción inválida o que primero
o último especifiquen líneas de historia fuera de
intervalo. Si se suministra la opción -e, el valor de
retorno es el de la última orden ejecutada, o `fallo' si ocurre
un error con el archivo temporal de órdenes. Si se emplea la
segunda forma, el estado de retorno es de la orden reejecutada, a menos
que ord no especifique una línea válida de
historia, en cuyo caso fc devuelve `fallo'.
- fg
[espectrab]
- Reanuda espectrab en primer plano, y lo hace ser el trabajo en
curso. Si espectrab no está presente, se usa la
noción que tiene la shell del trabajo en curso. El valor de
retorno es el de la orden puesta en primer plano, o `fallo' si se ejecuta
fg cuando el control de trabajos está desactivado o, cuando
se ejecuta con el control de trabajos activado, si espectrab no
especifica un trabajo válido o espectrab se refiere a una
trabajo que se arrancó sin control de trabajos.
- getopts
cadenaopcs nombre [arg ...]
- getopts is used by shell procedures to parse positional parameters.
optstring contains the option characters to be recognized; if a
character is followed by a colon, the option is expected to have an
argument, which should be separated from it by white space. The colon and
question mark characters may not be used as option characters. Each time
it is invoked, getopts places the next option in the shell variable
name, initializing name if it does not exist, and the index
of the next argument to be processed into the variable
OPTIND. OPTIND is initialized to 1
each time the shell or a shell script is invoked. When an option
requires an argument, getopts places that argument into the
variable OPTARG. The shell does not reset
OPTIND automatically; it must be manually reset between
multiple calls to getopts within the same shell invocation
if a new set of parameters is to be used.
Cuando se encuentra el fin de las opciones, getopts
sale con un valor de retorno mayor que cero. OPTIND se
pone al índice del primer argumento que no es una
opción, y nombre se pone a "?".
getopts normally parses the positional parameters, but
if more arguments are supplied as arg values, getopts
parses those instead.
getopts puede informar de errores de dos maneras. Si el
primer carácter de optstring es dos puntos, se emplea un
informe de error silencioso. En un modo normal de
operación se muestran mensajes de diagnósticos cuando se
encuentran opciones inválidas o faltan argumentos de opciones que
los requieran. Si la variable OPTERR se pone a 0, no se
mostrará ningún mensaje de error, incluso si el
primer carácter de optstring no es dos puntos.
Si se ve una opción inválida, getopts
pone ? en nombre y, si no estamos en el modo silencioso, se
muestra un mensaje de error y se anula OPTARG. Si
getopts es silencioso, el carácter de
opción encontrado se pone en OPTARG y no se
muestra ningún mensaje de diagnóstico.
Si no se encuentra un argumento necesario, y getopts no
es silencioso, se pone un signo de cierre de interrogación
(?) en nombre, OPTARG se anula, y se muestra
un mensaje de diagnóstico. Si getopts es
silencioso, entonces se pone un signo de dos puntos (:) en
nombre y OPTARG toma el valor del carácter
de opción encontrado.
getopts devuelve `verdad' si una opción,
especificada o no, se encuentra. Devuelve `falso' si se encuentra el
final de las opciones o si ocurre un error.
- hash [-lr]
[-p nombre-archivo] [-dt] [nombre]
- Each time hash is invoked, the full pathname of the command
name is determined by searching the directories in $PATH and
remembered. Any previously-remembered pathname is discarded. If the
-p option is supplied, no path search is performed, and
filename is used as the full filename of the command. The -r
option causes the shell to forget all remembered locations. The -d
option causes the shell to forget the remembered location of each
name. If the -t option is supplied, the full pathname to
which each name corresponds is printed. If multiple name
arguments are supplied with -t, the name is printed before
the hashed full pathname. The -l option causes output to be
displayed in a format that may be reused as input. If no arguments are
given, or if only -l is supplied, information about remembered
commands is printed. The return status is true unless a name is not
found or an invalid option is supplied.
- help [-dms]
[patrón]
- Muestra información de ayuda sobre las órdenes internas. Si
se especifica patrón, help da ayuda detallada sobre
todas las órdenes que concuerden con patrón; si no,
se muestra ayuda para todas las órdenes internas y estructuras de
control de la shell.
- -d
- Display a short description of each pattern
- -m
- Display the description of each pattern in a manpage-like
format
- -s
- Display only a short usage synopsis for each pattern
The return status is 0 unless no command matches
pattern.
- history
[n]
- history
-c
- history -d
offset
- history -d
start-end
- history
-anrw [nombre-archivo]
- history
-p arg [arg ...]
- history
-s arg [arg ...]
- Sin opciones, muestra el historial de órdenes con su números
de línea. Las líneas marcadas con un * han sido
modificadas. Un argumento de n lista solamente las últimas
n líneas. Si está definida (y no es nula) la variable
de shell HISTTIMEFORMAT se usará para formatear la
salida de strftime(3) donde se muestra la fecha y hora de
cada entrada del historial. No se intercalan espacios en blanco entre la
fecha y hora y la línea del historial. Puede indicarse
nombre_archivo para definir el nombre del archivo de historial,sino
se indica se usará el valor de HISTFILE. Si se dan
opciones, tendrán el siguiente significado:
- -c
- Limpia el historial borrando todas las entradas.
- -d
posición
- Borra la posición posición del historial. Si se
define un valor negativo para posición, se interpreta como
una posición más adelante que la de la última
línea del historial. Esto es, que los valores negativos cuentan
hacia atrás a partir del final del historial: un índice de
-1 hace referencia a la orden actual history -d.
- -d
inicio-fin
- Borra las entradas del historial entre las posiciones inicio y
fin ambas inclusive. Los valores positivos y negativos para estas
posiciones se interpretan tal como se describió anteriormente.
- -a
- Añade nuevas líneas (las introducidas desde el inicio de la
actual sesión de bash) al historial.
- -n
- Lee las líneas de órdenes que aún no han sido
leídas y las introduce en el historial. Éstas son las
líneas añadidas al historial desde el comienzo de la
sesión de bash actual.
- -r
- Lee el contenido del historial y lo añade a la lista
actual.curso.
- -w
- Escribe la historia en curso en el historial, sobreescribiendo su
contenido.
- -p
- Realiza la sustitución de historia de los siguientes args y
muestra el resultado en la salida estándar. No almacena los
resultados en el archivo de historia. Cada arg debe protegerse para
deshabilitar la expansión de historia normal.
- -s
- Almacena los args en el historial como una sola entrada. La
última orden del hisotrial se elimina antes de que se añadan
los args.
If the HISTTIMEFORMAT variable is set, the time
stamp information associated with each history entry is written to
the history file, marked with the history comment character. When the
history file is read, lines beginning with the history comment character
followed immediately by a digit are interpreted as timestamps for the
following history entry. The return value is 0 unless an invalid option is
encountered, an error occurs while reading or writing the history file, an
invalid offset or range is supplied as an argument to -d, or
the history expansion supplied as an argument to -p fails.
- jobs [-lnprs] [
espectrab ... ]
- jobs -x
orden [ args ... ]
- La primera forma lista los trabajos activos. Las opciones tienen los
significados siguientes:
- -l
- Lista PIDs además de la información normal.
- -n
- Muestra información solamente sobre trabajos que han cambiado de
estado desde que se notificó al usuario por última vez de su
estado.
- -p
- Lista solamente el PID del líder del grupo de proceso del
trabajo.
- -r
- Muestra únicamente trabajos en ejecución.
- -s
- Muestra únicamente trabajos detenidos.
Si se da espectrab, la salida se restringe a la
información sobre ese trabajo. El estado de retorno es cero a menos
que se encuentre una opción inválida o se suministre un
espectrab inválido.
Si se da la opción -x, jobs reemplaza
cualquier espectrab encontrado en orden o args con el
ID de grupo de proceso correspondiente, y ejecuta orden
pasándole args, devolviendo su estado de salida.
- kill [-s
nombre-señal | -n numseñal |
-nombre-señal] [pid | espectrab]
...
- kill
-l|-L [nombre-señal |
status_salida]
- Send the signal named by sigspec or signum to the processes
named by pid or jobspec. sigspec is either a
case-insensitive signal name such as SIGKILL (with or
without the SIG prefix) or a signal number;
signum is a signal number. If sigspec is not present, then
SIGTERM is assumed. An argument of -l lists the
signal names. If any arguments are supplied when -l is
given, the names of the signals corresponding to the arguments are listed,
and the return status is 0. The exit_status argument to -l
is a number specifying either a signal number or the exit status of a
process terminated by a signal. The -L option is equivalent to
-l. kill returns true if at least one signal was
successfully sent, or false if an error occurs or an invalid option is
encountered.
- let arg
[arg ...]
- Cada arg es una expresión aritmética a ser evaluada
(vea EVALUACIÓN ARITMÉTICA) above). Si
el último arg se evalúa a 0, let devuelve 1;
si no, devuelve 0.
- local
[opción] [nombre[=valor] ... | - ]
- For each argument, a local variable named name is created, and
assigned value. The option can be any of the options
accepted by declare. When local is used within a function,
it causes the variable name to have a visible scope restricted to
that function and its children. If name is -, the set of shell
options is made local to the function in which local is invoked:
shell options changed using the set builtin inside the function are
restored to their original values when the function returns. The restore
is effected as if a series of set commands were executed to restore
the values that were in place before the function. With no operands,
local writes a list of local variables to the standard output. It
is an error to use local when not within a function. The return
status is 0 unless local is used outside a function, an invalid
name is supplied, or name is a readonly variable.
- logout
- Sale de la shell.
- mapfile
[-d delim] [-n count] [-O origin]
[-s count] [-t] [-u fd] [-C
callback] [-c quantum] [array]
- readarray
[-d delim] [-n count] [-O origin]
[-s count] [-t] [-u fd] [-C
callback] [-c quantum] [array]
- Read lines from the standard input into the indexed array variable
array, or from file descriptor fd if the -u option is
supplied. The variable MAPFILE is the default array.
Options, if supplied, have the following meanings:
- -d
- The first character of delim is used to terminate each input line,
rather than newline. If delim is the empty string, mapfile
will terminate a line when it reads a NUL character.
- -n
- Copy at most count lines. If count is 0, all lines are
copied.
- -O
- Begin assigning to array at index origin. The default index
is 0.
- -s
- Elimina las primeras numero líneas leidas.
- -t
- Remove a trailing delim (default newline) from each line read.
- -u
- Read lines from file descriptor fd instead of the standard
input.
- -C
- Evaluate callback each time quantum lines are read. The
-c option specifies quantum.
- -c
- Specify the number of lines read between each call to
callback.
If -C is specified without -c, the default quantum
is 5000. When callback is evaluated, it is supplied the index of the
next array element to be assigned and the line to be assigned to that
element as additional arguments. callback is evaluated after the line
is read but before the array element is assigned.
If not supplied with an explicit origin, mapfile will clear
array before assigning to it.
mapfile returns successfully unless an invalid option or
option argument is supplied, array is invalid or unassignable, or if
array is not an indexed array.
- popd [-n]
[+n] [-n]
- Quita entradas de la pila de directorios. Los elementos se numeran
empezando por el cero a partir del primer directorio listado por
dirs. Si no se indica ningún argumento, popd
eliminará el primer directorio de la pila moviéndose hacia
el que quedaría después en primer lugar. Si se indican
argumentos, tendrán el siguiente significado:
- -n
- Suprime el normal cambio de directorio cuando se desapilan directorios, de
forma que solamente la pila se manipula.
- +n
- Elimina la n-ésima entrada de la pila comenzando por la
parte izquierda de la lista mostrada por dirs, empezando por cero.
Por ejemplo: ``popd +0'' elimina el primer directorio, ``popd +1'' el
segundo.
- -n
- Elimina la n-sima entrada (contando desde la derecha de la lista
mostrada por dirs, empezando por cero. Por ejemplo: ``popd -0''
Elimina el último directorio, ``popd -1'' el siguiente al
último.
If the top element of the directory stack is modified, and the
-n option was not supplied, popd uses the cd builtin to
change to the directory at the top of the stack. If the cd fails,
popd returns a non-zero value.
De lo contrario, popd devuelve 'falso' si se encuentra una
opción inválida, la pila de directorios está
vacía, se especifica una entrada de la pila de directorios no
existente.
Si la orden popd tiene éxito, bash ejecuta
dirs para mostra el último contenido de la pila de
directorios, siendo el valor de salida cero.
- printf [-v
var] formato [argumentos]
- Escribe los argumentos formateados por la salida estándar
bajo control de formato. La opción -v hace que la
salida se asigne a la variable var en lugar de mostrarse por la
salida estándar.
formato es un cadena de caracteres con tres tipos de
objetos: caracteres simples que simplemente se envían a la salida
estándar, caracteres de escape que son convertidos antes de
enviarse a la salida estándar y especificaciones de formatos que
hacen que se impriman los siguientes argumentos. Además de
las especificaciones del formato estándar de printf(1),
printf también interpreta las siguientes extensiones:
- %b
- hace que printf expanda la barra invertida en el correspondiente
argumento como lo haría echo -e.
- %q
- causes printf to output the corresponding argument in a
format that can be reused as shell input.
- %Q
- Igual que %q salvo que aplica la precisión definida en el
argumento antes de entrecomillarlo.
- %(datefmt)T
- causes printf to output the date-time string resulting from using
datefmt as a format string for strftime(3). The
corresponding argument is an integer representing the number of
seconds since the epoch. Two special argument values may be used: -1
represents the current time, and -2 represents the time the shell was
invoked. If no argument is specified, conversion behaves as if -1 had been
given. This is an exception to the usual printf behavior.
The %b, %q, and %T directives all use the field width and
precision arguments from the format specification and write that many bytes
from (or use that wide a field for) the expanded argument, which usually
contains more characters than the original.
Arguments to non-string format specifiers are treated as C
constants, except that a leading plus or minus sign is allowed, and if the
leading character is a single or double quote, the value is the ASCII value
of the following character.
El formato se reutiliza tanto como sea necesario para
consumir todos los argumentos. Si el formato requiere
más argumentos que los que se suministran, las
especificaciones de formato extra se comportan como si se hubiera dado un
valor cero o una cadena vacía, según lo apropiado. El valor de
retorno será cero si finaliza con éxito y otra cifra si
falla.
- pushd [-n]
[+n] [-n]
- pushd [-n]
[dir]
- Añade un directorio a la cima de la pila de directorios, o rota la
pila, haciendo que el directorio de trabajo en curso sea la nueva cima de
la pila. Sin argumentos pushd intercambia los dos elementos
superiores de la pila de directorio. Si se aportan argumentos,
tendrán los siguientes significados:
- -n
- Suprime el cambio normal de directorio cuando se rotan o añaden
directorios a la pila, de forma que solamente se manipula la pila.
- +n
- Rota la pila de forma que el n-simo directorio (contando desde la
izquierda de la lista mostrada por dirs, empezando por cero)
esté en la cima.
- -n
- Rota la pila de forma que el n-simo directorio (contando desde la
derecha de la lista mostrada por dirs, empezando por cero)
esté en la cima.
- dir
- Añade dirs al comienzo de la pila de directorios
After the stack has been modified, if the -n option was not
supplied, pushd uses the cd builtin to change to the directory
at the top of the stack. If the cd fails, pushd returns a
non-zero value.
Otherwise, if no arguments are supplied, pushd returns 0
unless the directory stack is empty. When rotating the directory stack,
pushd returns 0 unless the directory stack is empty or a non-existent
directory stack element is specified.
Si la orden pushd se ejecuta sin problema, bash ejecuta
dirs para mostrar el contenido final de la pila de directorios.
- pwd [-LP]
- Print the absolute pathname of the current working directory. The pathname
printed contains no symbolic links if the -P option is supplied or
the -o physical option to the set builtin command is
enabled. If the -L option is used, the pathname printed may contain
symbolic links. The return status is 0 unless an error occurs while
reading the name of the current directory or an invalid option is
supplied.
- read [-ers]
[-a aname] [-d delim] [-i text]
[-n nchars] [-N nchars] [-p
prompt] [-t timeout] [-u fd]
[nombre ...]
- One line is read from the standard input, or from the file descriptor
fd supplied as an argument to the -u option, split into
words as described above under Word Splitting, and the first word
is assigned to the first name, the second word to the second
name, and so on. If there are more words than names, the remaining
words and their intervening delimiters are assigned to the last
name. If there are fewer words read from the input stream than
names, the remaining names are assigned empty values. The characters in
IFS are used to split the line into words using the
same rules the shell uses for expansion (described above under Word
Splitting). The backslash character (\) may be used to remove
any special meaning for the next character read and for line continuation.
Options, if supplied, have the following meanings:
- -a array
- Las palabras se asignan secuencialmente a los elementos de la variable
vector array, empezando por 0. Se anula la posible previa
definición de array antes de que se asignen nuevos valores.
Otros argumentos nombre no se tienen en consideración.
- -d delim
- The first character of delim is used to terminate the input line,
rather than newline. If delim is the empty string, read will
terminate a line when it reads a NUL character.
- -e
- If the standard input is coming from a terminal, readline (see
READLINE above) is used to obtain the line. Readline
uses the current (or default, if line editing was not previously active)
editing settings, but uses readline's default filename completion.
- -i text
- If readline is being used to read the line, text is placed
into the editing buffer before editing begins.
- -n
nchars
- read returns after reading nchars characters rather than
waiting for a complete line of input, but honors a delimiter if fewer than
nchars characters are read before the delimiter.
- -N nchars
- read returns after reading exactly nchars characters rather
than waiting for a complete line of input, unless EOF is encountered or
read times out. Delimiter characters encountered in the input are
not treated specially and do not cause read to return until
nchars characters are read. The result is not split on the
characters in IFS; the intent is that the variable is assigned
exactly the characters read (with the exception of backslash; see the
-r option below).
- -p prompt
- Display prompt on standard error, without a trailing newline,
before attempting to read any input. The prompt is displayed only if input
is coming from a terminal.
- -r
- Backslash does not act as an escape character. The backslash is considered
to be part of the line. In particular, a backslash-newline pair may not
then be used as a line continuation.
- -s
- Silent mode. If input is coming from a terminal, characters are not
echoed.
- -t
timeout
- Cause read to time out and return failure if a complete line of
input (or a specified number of characters) is not read within
timeout seconds. timeout may be a decimal number with a
fractional portion following the decimal point. This option is only
effective if read is reading input from a terminal, pipe, or other
special file; it has no effect when reading from regular files. If
read times out, read saves any partial input read into the
specified variable name. If timeout is 0, read
returns immediately, without trying to read any data. The exit status is 0
if input is available on the specified file descriptor, or the read will
return EOF, non-zero otherwise. The exit status is greater than 128 if the
timeout is exceeded.
- -u fd
- Read input from file descriptor fd.
If no names are supplied, the line read, without the ending
delimiter but otherwise unmodified, is assigned to the variable
REPLY. The exit status is zero, unless end-of-file is
encountered, read times out (in which case the status is greater than
128), a variable assignment error (such as assigning to a readonly variable)
occurs, or an invalid file descriptor is supplied as the argument to
-u.
- readonly
[-aAf] [-p] [nombre[=palabra] ...]
- The given names are marked readonly; the values of these
names may not be changed by subsequent assignment. If the -f
option is supplied, the functions corresponding to the names are so
marked. The -a option restricts the variables to indexed arrays;
the -A option restricts the variables to associative arrays. If
both options are supplied, -A takes precedence. If no name
arguments are given, or if the -p option is supplied, a list of all
readonly names is printed. The other options may be used to restrict the
output to a subset of the set of readonly names. The -p option
causes output to be displayed in a format that may be reused as input. If
a variable name is followed by =word, the value of the variable is
set to word. The return status is 0 unless an invalid option is
encountered, one of the names is not a valid shell variable name,
or -f is supplied with a name that is not a function.
- return
[n]
- Causes a function to stop executing and return the value specified by
n to its caller. If n is omitted, the return status is that
of the last command executed in the function body. If return is
executed by a trap handler, the last command used to determine the status
is the last command executed before the trap handler. If return is
executed during a DEBUG trap, the last command used to determine
the status is the last command executed by the trap handler before
return was invoked. If return is used outside a function,
but during execution of a script by the . (source) command,
it causes the shell to stop executing that script and return either
n or the exit status of the last command executed within the script
as the exit status of the script. If n is supplied, the return
value is its least significant 8 bits. The return status is non-zero if
return is supplied a non-numeric argument, or is used outside a
function and not during execution of a script by . or
source. Any command associated with the RETURN trap is
executed before execution resumes after the function or script.
- set
[-abefhkmnptuvxBCEHPT] [-o nombre-opción]
[--] [-] [arg ...]
- set
[+abefhkmnptuvxBCEHPT] [+o nombre-opción]
[--] [-] [arg ...]
- Without options, display the name and value of each shell variable in a
format that can be reused as input for setting or resetting the
currently-set variables. Read-only variables cannot be reset. In posix
mode, only shell variables are listed. The output is sorted according
to the current locale. When options are specified, they set or unset shell
attributes. Any arguments remaining after option processing are treated as
values for the positional parameters and are assigned, in order, to
$1, $2, ... $n. Options, if specified,
have the following meanings:
- -a
- Cada variable o función que se modifiquen o creen tendrán el
atributo de exportación y se marcarán para exportar en el
entorno de subsiguientes órdenes.
- -b
- Informa del estado de los trabajos en segundo plano terminados
inmediatamente, en vez de esperar a justo antes de mostrar el siguiente
indicador primario. Esto solo es efectivo cuando el control de trabajos
está habilitado.
- -e
- Exit immediately if a pipeline (which may consist of a single
simple command), a list, or a compound command (see
SHELL GRAMMAR above), exits with a non-zero status.
The shell does not exit if the command that fails is part of the command
list immediately following a while or until keyword, part of
the test following the if or elif reserved words, part of
any command executed in a && or || list except the
command following the final && or ||, any command in
a pipeline but the last, or if the command's return value is being
inverted with !. If a compound command other than a subshell
returns a non-zero status because a command failed while -e was
being ignored, the shell does not exit. A trap on ERR, if set, is
executed before the shell exits. This option applies to the shell
environment and each subshell environment separately (see
COMMAND EXECUTION ENVIRONMENT above), podrá
provocar que las subshells finalizen antes de ejecutar todas las
órdenes en la subshell.
If a compound command or shell function executes in a context
where -e is being ignored, none of the commands executed within
the compound command or function body will be affected by the -e
setting, even if -e is set and a command returns a failure
status. If a compound command or shell function sets -e while
executing in a context where -e is ignored, that setting will not
have any effect until the compound command or the command containing the
function call completes.
- -f
- Deshabilita la expansión de nombres de rutas.
- -h
- Recuerda la localización de órdenes una vez que se buscan
para la 1ª ejecución. Esto está habilitado de forma
predeterminada.
- -k
- Todos los argumentos en forma de sentencias de asignación se ponen
en el entorno para una orden, no solamente aquéllos que precedan al
nombre de la orden.
- -m
- Modo de monitorización. Se habilita el control de tareas. Esta
opción está puesta de forma predeterminada para shells
interactivos en sistemas que lo admitan (vea CONTROL DE
TAREAS anteriormente). above). Todos los procesos se ejecutan
en un grupo separado. Cada vez que finalice una tarea en segundo plano, la
shell mostrará una línea indicando su estado de salida.
- -n
- Lee órdenes pero no las ejecuta. Esto puede emplearse para
comprobar si un guión de la shell tiene errores de sintaxis. Para
shells interactivos esta opción no tiene efecto.
- -o
nombre-opción
- El nombre-opción puede ser uno de los siguientes:
- allexport
- Lo miso que -a.
- braceexpand
- Lo miso que -B.
- emacs
- Use an emacs-style command line editing interface. This is enabled by
default when the shell is interactive, unless the shell is started with
the --noediting option. This also affects the editing interface
used for read -e.
- errexit
- Lo mismo que -e.
- errtrace
- Lo mismo que -E.
- functrace
- Lo mismo que -T.
- hashall
- Lo mismo que -h.
- histexpand
- Lo mismo que -H.
- history
- Activa el histórico de órdenes, tal como se describe en
above en el apartado HISTORIAL. Esta opción
está habilitada por omisión en shells
interactivos.
- ignoreeof
- The effect is as if the shell command ``IGNOREEOF=10'' se hubiera
ejecutado la orden de la shell (vea Variables de la shell)
above).
- keyword
- Lo mismo que -k.
- monitor
- Lo mismo que -m.
- noclobber
- Lo mismo que -C.
- noexec
- Lo mismo que -n.
- noglob
- Lo mismo que -f.
- nolog
- Currently ignored.
- notify
- Lo mismo que -b.
- nounset
- Lo mismo que -u.
- onecmd
- Lo mismo que -t.
- physical
- Lo mismo que -P.
- pipefail
- If set, the return value of a pipeline is the value of the last
(rightmost) command to exit with a non-zero status, or zero if all
commands in the pipeline exit successfully. This option is disabled by
default.
- posix
- Cambia el comportamiento de bash cuando el funcionamiento difiera
del estándar POSIX, de forma que concuerde con éste(posix
mode). Consulte VEASE TAMBIÉN below
más delante si quiere leer un documento donde se detalla la
influencia del modo posix sobre el funcionamiento de bash.
- privileged
- Lo mismo que -p.
- verbose
- Lo mismo que -v.
- vi
- Use a vi-style command line editing interface. This also affects the
editing interface used for read -e.
- xtrace
- Lo mismo que -x.
Si se da -o sin ningún nombre-opción,
se muestran los valores de las opciones activas. Si se da +o sin
ningún nombre-opción, se muestra en la salida
estándar una serie de órdenes set para recrear las
opciones según están puestas o no actualmente.
- -p
- Turn on privileged mode. In this mode, the $ENV
and $BASH_ENV files are not processed, shell
functions are not inherited from the environment, and the
SHELLOPTS, BASHOPTS,
CDPATH, and GLOBIGNORE variables, if
they appear in the environment, are ignored. If the shell is
started with the effective user (group) id not equal to the real user
(group) id, and the -p option is not supplied, these actions are
taken and the effective user id is set to the real user id. If the
-p option is supplied at startup, the effective user id is not
reset. Turning this option off causes the effective user and group ids to
be set to the real user and group ids.
- -r
- Activa el modo restringido de la shell. Una vez que se activa, esta
opción no puede desactivarse.
- -t
- Sale tras leer y ejecutar una sola orden.
- -u
- Trata las variables no definidas, los parámetros distintos a los
especiales "@" y "*" o las variables vectoriales con
subíndice "@" o "*" como un error cuando se
realiza la expansión de parámetros. Si la expansión
se intenta hacer sobre una variable o parámetro no definidos, la
shell mostrará un mensaje de error y, si no está en modo
interactivo, finalizará con un estado distinto de cero.
- -v
- Repite en la salida las líneas de entrada de la shell tras
leerlas.
- -x
- After expanding each simple command, for command,
case command, select command, or arithmetic for
command, display the expanded value of PS4, followed by the
command and its expanded arguments or associated word list.
- -B
- la shell realiza la expansión de llaves (vea Expansión de
llaves arriba). above). Está activado por defecto.
- -C
- Si está activo, bash no sobreescribe un archivo existente
con los operadores de redirección >, >&, ni
<>. Esto puede cambiarse cuando se crean archivos de salida
mediante el empleo del operador >| en vez de >.
- -E
- Si está definida, cualquier trampa en ERR será
heredada por las funciones de la shell, las sustituciones de
órdenes y las órdenes ejecutadas en subshells. En general,
la trampa ERR no se hereda en estos casos.
- -H
- Permite la sustitución de historia mediante !. Esta
opción está activada por omisión cuando la shell es
interactivo.
- -P
- If set, the shell does not resolve symbolic links when executing commands
such as cd that change the current working directory. It uses the
physical directory structure instead. By default, bash follows the
logical chain of directories when performing commands which change the
current directory.
- -T
- Si está definida, cualquier trampa en DEBUG O RETURN
será heredada por las funciones de la shell, las sustituciones de
órdenes y las órdenes ejecutadas en subshells. En general,
las trampas DEBUG y RETURN no se heredan en estos
casos.
- --
- Si a esta opción no sigue ningún argumento más,
entonces los parámetros posicionales se anulan. Si no, los
parámetros posicionales se ponen con los valores dados por los
args, incluso si alguno de ellos comienza con un -.
- -
- Señala el final de las opciones, haciendo que el resto de
args se asignen a los parámetros posicionales. Las opciones
-x y -v se desactivan. Si no hay más args, los
parámetros posicionales permanecen sin cambios.
Las opciones están desactivadas de forma predeterminada a
menos que se diga otra cosa. Usar + en vez de - hace que estas opciones se
desactiven. Las opciones también pueden darse como argumentos al
llamar al shell. El conjunto de opciones activadas puede examinarse en
$-. El estado de retorno es siempre `verdad' a menos que se encuentre
una opción inválida.
- shift
[n]
- Los parámetros posicionales desde n+1 ... se renombran a
$1 ... Los parámetros representados por los
números desde $# hasta $#-n+1 se anulan.
n debe ser un número no negativo menor o igual a $#.
Si n es 0, no se cambia ningún parámetro. Si n
no se da, se supone 1. Si n es mayor que $#, los
parámetros posicionales no se cambian. El estado de retorno es
mayor que cero si n es mayor que $# o menor que cero; en
otro caso es cero.
- shopt
[-pqsu] [-o] [nombreopc ...]
- Toggle the values of settings controlling optional shell behavior. The
settings can be either those listed below, or, if the -o option is
used, those available with the -o option to the set builtin
command. With no options, or with the -p option, a list of all
settable options is displayed, with an indication of whether or not each
is set; if optnames are supplied, the output is restricted to those
options. The -p option causes output to be displayed in a form that
may be reused as input. Other options have the following meanings:
- -s
- Activa (set) cada nombreopc.
- -u
- Desactiva (unset) cada nombreopc.
- -q
- Suprime la salida normal (modo silencioso); el estado de salida indica si
el nombreopc está activado o no. Si se dan varios argumentos
nombreopc con -q, el estado de salida es cero si todos los
nombreopcs están activados; distinto de cero en otro
caso.
- -o
- Restringe los valores de nombreopc a aquéllos definidos para
la opción -o de la orden interna set.
If either -s or -u is used with no optname
arguments, shopt shows only those options which are set or unset,
respectively. Unless otherwise noted, the shopt options are disabled
(unset) by default.
El estado de retorno cuando se listan opciones es cero si todos
los nombreopcs están activos, distinto de cero en otro caso.
Cuando se activan o desactivan opciones, el estado de salida es cero a menos
que un nombreopc no sea una opción de la shell
válida.
La lista de las opciones de shopt es:
- assoc_expand_once
- If set, the shell suppresses multiple evaluation of associative array
subscripts during arithmetic expression evaluation, while executing
builtins that can perform variable assignments, and while executing
builtins that perform array dereferencing.
- autocd
- If set, a command name that is the name of a directory is executed as if
it were the argument to the cd command. This option is only used by
interactive shells.
- cdable_vars
- Si está activa, un argumento de la orden interna cd que no
sea un directorio, se supone el nombre de una variable cuyo valor es el
directorio al que hay que cambiarse.
- cdspell
- Si está activa, se corregirán pequeños errores que
hubiera en la escritura de un componente directorio de una orden
cd. Los errores que se buscan se refieren a caracteres
transpuestos, un carácter que falte, y un carácter que
sobre. Si se encuentra una corrección, se muestra el nombre de
archivo corregido y la orden procede. Esta opción solo se emplea en
shells interactivos.
- checkhash
- Si está activa, bash comprueba que una orden encontrada en
la tabla de dispersión existe antes de intentar ejecutarlo. Si una
orden en la tabla de dispersión ya no existe, se realiza una
búsqueda normal en el PATH.
- checkjobs
- If set, bash lists the status of any stopped and running jobs
before exiting an interactive shell. If any jobs are running, this causes
the exit to be deferred until a second exit is attempted without an
intervening command (see JOB CONTROL above). La
shell siempre pospone su finalización si alguna tarea está
detenida.
- checkwinsize
- Si está activa, bash comprueba el tamaño de ventana
tras cada orden (no nativa) y, si necesario, actualiza los valores de
LINES y COLUMNS.Activa por
defecto.
- cmdhist
- Si está activa, bash intenta guardar todas las líneas
de una orden de varias líneas en la misma entrada del historial.
Esto permite reeditar fácilmente múltiples órdenes.
Esta opción está activada por defecto, pero solo surte
efecto si está activado el historial tal como se describe en above
en el apartado HISTÓRICO.
- compat31
- compat32
- compat40
- compat41
- compat42
- compat43
- compat44
- compat50
- Controla ciertos ascpetos del modo de compatibilidad de la shell. Consulte
MODO DE COMPATIBILIDAD DE LA SHELL más
adelante. below).
- complete_fullquote
- If set, bash quotes all shell metacharacters in filenames and
directory names when performing completion. If not set, bash
removes metacharacters such as the dollar sign from the set of characters
that will be quoted in completed filenames when these metacharacters
appear in shell variable references in words to be completed. This means
that dollar signs in variable names that expand to directories will not be
quoted; however, any dollar signs appearing in filenames will not be
quoted, either. This is active only when bash is using backslashes to
quote completed filenames. This variable is set by default, which is the
default bash behavior in versions through 4.2.
- direxpand
- If set, bash replaces directory names with the results of word
expansion when performing filename completion. This changes the contents
of the readline editing buffer. If not set, bash attempts to
preserve what the user typed.
- dirspell
- Si está definido, bash intentará corregir los nombres
de los directorios al autocompletar siempre que el nombre dado no
corresponda a ningún directorio.
- dotglob
- Si está activa, bash incluye los nombres de archivos que
comiencen con un `.' en los resultados de la expansión de nombres
de ruta. Los nombres de archivo “.” y
“..” siempre deben concordarse expresamente aunque
dotglob esté activa.
- execfail
- Si está activa, una shell no interactiva no acabará si no
puede ejecutar el archivo especificado como un argumento de la orden
interna exec. Una shell interactiva no finaliza si exec
falla.
- expand_aliases
- Si está definido, los aliases se expanden tal como se describe en
above ALIAS. Esta opción está habilitada de
forma predeterminada para shells interactivos.
- extdebug
- If set at shell invocation, or in a shell startup file, arrange to execute
the debugger profile before the shell starts, identical to the
--debugger option. If set after invocation, behavior intended for
use by debuggers is enabled:
- 1.
- The -F option to the declare builtin displays the source
file name and line number corresponding to each function name supplied as
an argument.
- 2.
- If the command run by the DEBUG trap returns a non-zero value, the
next command is skipped and not executed.
- 3.
- If the command run by the DEBUG trap returns a value of 2, and the
shell is executing in a subroutine (a shell function or a shell script
executed by the . or source builtins), the shell simulates a
call to return.
- 4.
- BASH_ARGC y BASH_ARGV se actualizan
tal como se describe en above).
- 5.
- Function tracing is enabled: command substitution, shell functions, and
subshells invoked with ( command ) inherit the
DEBUG and RETURN traps.
- 6.
- Error tracing is enabled: command substitution, shell functions, and
subshells invoked with ( command ) inherit the
ERR trap.
- extglob
- Si está activa, se habilitan las características de
concordancia de patrones extendidas descritas above bajo
Expansión de Nombres de Ruta activadas
- extquote
- If set, $'string' and $"string"
quoting is performed within ${parameter} expansions
enclosed in double quotes. This option is enabled by default.
- failglob
- If set, patterns which fail to match filenames during pathname expansion
result in an expansion error.
- force_fignore
- If set, the suffixes specified by the FIGNORE shell variable
cause words to be ignored when performing word completion even if
the ignored words are the only possible completions. See SHELL
VARIABLES above para ver una descripción de
FIGNORE. Esta opción está habilitada
de forma predeterminada.
- globasciiranges
- If set, range expressions used in pattern matching bracket expressions
(see Pattern Matching above) behave as if in the
traditional C locale when performing comparisons. That is, the current
locale's collating sequence is not taken into account, so b will
not collate between A and B, and upper-case and lower-case
ASCII characters will collate together.
- globskipdots
- If set, pathname expansion will never match the filenames
“.” and “..”, even if the
pattern begins with a “.”. This option is enabled by
default.
- globstar
- If set, the pattern ** used in a pathname expansion context will
match all files and zero or more directories and subdirectories. If the
pattern is followed by a /, only directories and subdirectories
match.
- gnu_errfmt
- If set, shell error messages are written in the standard GNU error message
format.
- histappend
- Si está activo el historial se añade al archivo nombrado
según el valor de la variable HISTFILE cuando la
shell acaba, en vez de sobreescribir el archivo.
- histreedit
- Si está activa, y readline se está utilizando, se le
da al usuario la oportunidad de re-editar la sustitución de
historia fallida.
- histverify
- Si está activa, y readline se está utilizando, los
resultados de la sustitución de historia no se pasan inmediatamente
al analizador de la shell. En vez de eso, la línea resultante se
carga en el búfer de edición de readline, permitiendo
así una modificación posterior.
- hostcomplete
- Si está activa, y readline se está utilizando,
bash intentará terminar de escribir un nombre de equipo
anfitrión cuando se esté completando una palabra que
contenga una @ (consulte Terminación bajo
READLINE anteriormente). above). Esto está
activado por defecto.
- huponexit
- Si está activa, bash enviará una señal
SIGHUP a todos los trabajos cuando una shell de
entrada interactiva finalice.
- inherit_errexit
- If set, command substitution inherits the value of the errexit
option, instead of unsetting it in the subshell environment. This option
is enabled when posix mode is enabled.
- Si está activa, permite a una palabra que empiece por #
hacer que esa palabra y todos los caracteres restantes de esa línea
no sean tenidos en cuenta en una shell interactiva (consulte
COMENTARIOS anteriormente). above). Esta
opción está activada por defecto.
- lastpipe
- If set, and job control is not active, the shell runs the last command of
a pipeline not executed in the background in the current shell
environment.
- lithist
- Si está activa, y la opción cmdhist también lo
está, las órdenes multi-línea se guardan en la
historia con saltos de línea empotrados en vez de emplear como
separador el punto y coma, donde sea posible.
- localvar_inherit
- If set, local variables inherit the value and attributes of a variable of
the same name that exists at a previous scope before any new value is
assigned. The nameref attribute is not inherited.
- localvar_unset
- If set, calling unset on local variables in previous function
scopes marks them so subsequent lookups find them unset until that
function returns. This is identical to the behavior of unsetting local
variables at the current function scope.
- login_shell
- La shell define esta opción si se ha iniciado como una shell de
entrada. Consulte LLAMADA más adelante.
above). Este valor no debería ser modificado.
- mailwarn
- Si está activa, y a un archivo donde bash está
buscando correo nuevo se ha accedido desde la última vez que se
buscó, se muestra el mensaje “The mail in mailfile
has been read”, o su equivalente en el idioma local, que en
español sería “El correo en buzón ha
sido leído”.
- no_empty_cmd_completion
- Si está activa, y readline se está utilizando,
bash no intentará buscar en PATH posibles
cadenas para completar si se intenta autocompletar en una
línea en blanco.
- nocaseglob
- Si está activa, bash busca concordancias de nombres de
archivos sin distinción entre mayúsculas y minúsculas
cuando realice la expansión de nombres de ruta (vea
Expansión de nombres de ruta). above).
- nocasematch
- Si está definida, bash buscará concordancias sin
distinción entre mayúsculas y minúsculas ya sea
ejecutando las órdenes condicionales case o [[,
expansiones de palabra en patrones de sustitución o durante el
filtrado de posibles cadenas en autocompletados programables.
- noexpand_translation
- If set, bash encloses the translated results of $"..."
quoting in single quotes instead of double quotes. If the string is not
translated, this has no effect.
- nullglob
- Si está activa, bash permite que los patrones que no
concuerden con ningún archivo (vea Expansión de nombres
de ruta arriba) above) se expandan a una cadena vacía en lugar
de hacerlo a si mismos.
- patsub_replacement
- If set, bash expands occurrences of & in the replacement
string of pattern substitution to the text matched by the pattern, as
described under Parameter Expansion above. Esta opción
está activada por defecto.
- progcomp
- Si está definida, las utilidades de autocompletado programable
(consulte Autocompletado Programable anteriormente). above)
están activada. Estas opciones están activadas por
defecto.
- progcomp_alias
- If set, and programmable completion is enabled, bash treats a
command name that doesn't have any completions as a possible alias and
attempts alias expansion. If it has an alias, bash attempts
programmable completion using the command word resulting from the expanded
alias.
- promptvars
- If set, prompt strings undergo parameter expansion, command substitution,
arithmetic expansion, and quote removal after being expanded as described
in PROMPTING above. Esta opción está
activada por defecto.
- restricted_shell
- la shell activa esta opción si se inicia en modo restringido
(consulte SHELL RESTRINGIDA más adelante).
below). The value may not be changed. This is not reset when the startup
files are executed, allowing the startup files to discover whether or not
a shell is restricted.
- shift_verbose
- Si está activa, la orden interna shift muestra un mensaje de
error cuando el número de shift excede al de parámetros
posicionales.
- sourcepath
- If set, the . (source) builtin uses the value of
PATH to find the directory containing the file
supplied as an argument. This option is enabled by default.
- varredir_close
- If set, the shell automatically closes file descriptors assigned using the
{varname} redirection syntax (see REDIRECTION
above) instead of leaving them open when the command completes.
- xpg_echo
- If set, the echo builtin expands backslash-escape sequences by
default.
- suspend
[-f]
- Suspend the execution of this shell until it receives a
SIGCONT signal. A login shell, or a shell without
job control enabled, cannot be suspended; the -f option can be used
to override this and force the suspension. The return status is 0 unless
the shell is a login shell or job control is not enabled and -f is
not supplied.
- test
expr
- [ expr ]
- Return a status of 0 (true) or 1 (false) depending on the evaluation of
the conditional expression expr. Each operator and operand must be
a separate argument. Expressions are composed of the primaries described
above under CONDITIONAL EXPRESSIONS. test does not
accept any options, nor does it accept and ignore an argument of
-- as signifying the end of options.
Expressions may be combined using the following operators,
listed in decreasing order of precedence. The evaluation depends on the
number of arguments; see below. Operator precedence is used when there
are five or more arguments.
- ! expr
- Verdad si expr es falsa.
- ( expr )
- Devuelve el valor de expr. Esto puede emplearse para cambiar la
precedencia normal de los operadores.
- expr1 -a
expr2
- Verdad si tanto expr1 como expr2 son verdad.
- expr1 -o
expr2
- Verdad si uno al menos de expr1 o expr2 es verdad.
test y [ evalúan expresiones condicionales
según un conjunto de reglas basadas en el número de
argumentos.
- 0 argumentos
- La expresión es falsa.
- 1 argumento
- La expresión es verdad si y solo si el argumento no está
vacío.
- 2 argumentos
- If the first argument is !, the expression is true if and only if
the second argument is null. If the first argument is one of the unary
conditional operators listed above under CONDITIONAL
EXPRESSIONS, the expression is true if the unary test is true.
If the first argument is not a valid unary conditional operator, the
expression is false.
- 3 argumentos
- The following conditions are applied in the order listed. If the second
argument is one of the binary conditional operators listed above under
CONDITIONAL EXPRESSIONS, the result of the expression is
the result of the binary test using the first and third arguments
as operands. The -a and -o operators are considered binary
operators when there are three arguments. If the first argument is
!, the value is the negation of the two-argument test using the
second and third arguments. If the first argument is exactly ( and
the third argument is exactly ), the result is the one-argument
test of the second argument. Otherwise, the expression is false.
- 4 argumentos
- The following conditions are applied in the order listed. If the first
argument is !, the result is the negation of the three-argument
expression composed of the remaining arguments. the two-argument test
using the second and third arguments. If the first argument is exactly
( and the fourth argument is exactly ), the result is the
two-argument test of the second and third arguments. Otherwise, the
expression is parsed and evaluated according to precedence using the rules
listed above.
- 5 ó más argumentos
- La expresión se analiza y evalúa de acuerdo con la
precedencia usando las reglas mencionadas arriba.
When used with test or [, the < and
> operators sort lexicographically using ASCII ordering.
- times
- Muestra los tiempos acumulados de usuario y sistema para la shell y para
procesos ejecutados desde él. El estado de retorno es 0.
- trap [-lp]
[[arg] nombre-señal ...]
- The command arg is to be read and executed when the shell receives
signal(s) sigspec. If arg is absent (and there is a single
sigspec) or -, each specified signal is reset to its
original disposition (the value it had upon entrance to the shell). If
arg is the null string the signal specified by each sigspec
is ignored by the shell and by the commands it invokes. If arg is
not present and -p has been supplied, then the trap commands
associated with each sigspec are displayed. If no arguments are
supplied or if only -p is given, trap prints the list of
commands associated with each signal. The -l option causes the
shell to print a list of signal names and their corresponding numbers.
Each sigspec is either a signal name defined in
<signal.h>, or a signal number. Signal names are case
insensitive and the SIG prefix is optional.
If a sigspec is EXIT (0) the command
arg is executed on exit from the shell. If a
sigspec is DEBUG, the command arg is
executed before every simple command, for command,
case command, select command, every arithmetic for
command, and before the first command executes in a shell function (see
SHELL GRAMMAR above). Refer to the description of
the extdebug option to the shopt builtin for details of
its effect on the DEBUG trap. If a sigspec is
RETURN, the command arg is executed each time a
shell function or a script executed with the . or
source builtins finishes executing.
If a sigspec is ERR, the command
arg is executed whenever a pipeline (which may consist of
a single simple command), a list, or a compound command returns a
non-zero exit status, subject to the following conditions. The
ERR trap is not executed if the failed command is
part of the command list immediately following a while or
until keyword, part of the test in an if statement, part
of a command executed in a && or || list except
the command following the final && or ||, any
command in a pipeline but the last, or if the command's return value is
being inverted using !. These are the same conditions obeyed by
the errexit (-e) option.
Signals ignored upon entry to the shell cannot be trapped or
reset. Trapped signals that are not being ignored are reset to their
original values in a subshell or subshell environment when one is
created. The return status is false if any sigspec is invalid;
otherwise trap returns true.
- type [-aftpP]
nombre [nombre ...]
- Sin opciones, indica cómo será interpretado cada
nombre si se usa como un nombre de orden. Si se emplea la
opción -t, type muestra una de las siguientes cadenas
de caracteres: alias, keyword, function,
builtin, o file si nombre es respectivamente un
alias, una palabra reservada de la shell, una función, una orden
interna incorporada en la shell, o un archivo ejecutable de disco. Si el
nombre no se encuentra, no se muestra nada, y se devuelve un estado
de salida de `falso'. Si se emplea la opción -p, type
devuelve o bien el nombre del archivo de disco que se ejecutaría si
se especificara nombre como un nombre de orden, o bien nada si
``type -t name'' No devolvería archivo. La opción
-P obliga a RUTA a buscar cada nombre
aunque ``type -t name'' would not return file. If a command is
hashed, -p and -P print the hashed value, which is not
necessarily the file that appears first in PATH. If the
-a option is used, type prints all of the places
that contain an executable named name. This includes
aliases and functions, if and only if the -p option is not also
used. The table of hashed commands is not consulted when using -a.
The -f option suppresses shell function lookup, as with the
command builtin. type returns true if all of the arguments
are found, false if any are not found.
- ulimit [-HS]
-a
- ulimit
[-HS] [-bcdefiklmnpqrstuvxPRT [límite]]
- Provides control over the resources available to the shell and to
processes started by it, on systems that allow such control. The -H
and -S options specify that the hard or soft limit is set for the
given resource. A hard limit cannot be increased by a non-root user once
it is set; a soft limit may be increased up to the value of the hard
limit. If neither -H nor -S is specified, both the soft and
hard limits are set. The value of limit can be a number in the unit
specified for the resource or one of the special values hard,
soft, or unlimited, which stand for the current hard limit,
the current soft limit, and no limit, respectively. If limit is
omitted, the current value of the soft limit of the resource is printed,
unless the -H option is given. When more than one resource is
specified, the limit name and unit, if appropriate, are printed before the
value. Other options are interpreted as follows:
- -a
- Se informa de todos los límites actuales; no se configura
ninguno
- -b
- El tamaño máximo de buffer del conector
- -c
- El tamaño máximo de archivo de volcados de memoria
(core)
- -d
- El tamaño máximo del segmento de datos de un proceso
- -e
- La máxima prioridad de ejecución ("nice")
- -f
- El tamaño máximo de los archivos creados por la shell y sus
descendientes
- -i
- El número máximo de señales pendientes
- -k
- El número máxima de kqueues que se pueden acomodar
- -l
- El tamaño máximo que puede ser bloqueado en memoria
- -m
- El tamaño máximo de memoria residente (la mayoría de
sistemas no tiene en cuenta este valor)
- -n
- EL número máximo de descriptores de archivos abiertos (la
mayoría de sistemas no permiten establecer este valor)
- -p
- El tamaño de una tubería en bloques de 512 B (esto puede no
estar establecido)
- -q
- El número máximo de bytes en la cola de mensajes POSIX
- -r
- La máxima prioridad de ejeución en tiempo real.
- -s
- El tamaño máximo de pila
- -t
- La máxima cantidad de tiempo de CPU en segundos
- -u
- El número máximo de procesos disponibles para un solo
usuario
- -v
- La máxima cantidad de memoria virtual disponible para la shell y,
en algunos sistemas, para sus descendientes.
- -x
- La cantidad máxima de bloqueos de archivo
- -P
- The maximum number of pseudoterminals
- -R
- El tiempo máximo, en microsegundos, que puede ejecutarse un proceso
en tiempo real antes de bloquearse.
- -T
- La cantidad máxima de hilos
If limit is given, and the -a option is not used,
limit is the new value of the specified resource. If no option is
given, then -f is assumed. Values are in 1024-byte increments, except
for -t, which is in seconds; -R, which is in microseconds;
-p, which is in units of 512-byte blocks; -P, -T,
-b, -k, -n, and -u, which are unscaled values;
and, when in posix mode, -c and -f, which are in 512-byte
increments. The return status is 0 unless an invalid option or argument is
supplied, or an error occurs while setting a new limit.
- umask [-p]
[-S] [modo]
- La máscara de creación de archivos del usuario se establece
a modo. Si modo empieza con un dígito, se interpreta
como un número octal; si no, se interpreta como un modo
simbólico similar al aceptado por chmod(1). Si modo
se omite, se muestra el valor actual de la máscara. La
opción -S hace que la máscara se imprima en forma
simbólica; la salida predeterminada es como un número octal.
Si se da la opción -p y modo se omite, la salida es
de tal forma que puede reutilizarse como entrada. El estado de retorno es
0 si el modo se cambió exitosamente o si no se dio el argumento
modo, y `falso' en otra circunstancia.
- unalias
[-a] [nombre ...]
- Quita cada nombre de la lista de alias definidos. Si se da la
opción -a, se quitan todas las definiciones de alias. El
estado de salida es `verdad' a menos que un nombre dado no sea un
alias definido.
- unset [-fv]
[-n] [nombre ...]
- For each name, remove the corresponding variable or function. If
the -v option is given, each name refers to a shell
variable, and that variable is removed. Read-only variables may not be
unset. If -f is specified, each name refers to a shell
function, and the function definition is removed. If the -n option
is supplied, and name is a variable with the nameref
attribute, name will be unset rather than the variable it
references. -n has no effect if the -f option is supplied.
If no options are supplied, each name refers to a variable; if
there is no variable by that name, a function with that name, if any, is
unset. Each unset variable or function is removed from the environment
passed to subsequent commands. If any of
BASH_ALIASES, BASH_ARGV0,
BASH_CMDS, BASH_COMMAND,
BASH_SUBSHELL, BASHPID,
COMP_WORDBREAKS, DIRSTACK,
EPOCHREALTIME, EPOCHSECONDS,
FUNCNAME, GROUPS,
HISTCMD, LINENO,
RANDOM, SECONDS, or
SRANDOM are unset, they lose their special
properties, even if they are subsequently reset. The exit status is true
unless a name is readonly or may not be unset.
- wait [-fn]
[-p nombrevariable] [id ...]
- Wait for each specified child process and return its termination status.
Each id may be a process ID or a job specification; if a job spec
is given, all processes in that job's pipeline are waited for. If
id is not given, wait waits for all running background jobs
and the last-executed process substitution, if its process id is the same
as $!, and the return status is zero. If the -n option is
supplied, wait waits for a single job from the list of ids
or, if no ids are supplied, any job, to complete and returns its
exit status. If none of the supplied arguments is a child of the shell, or
if no arguments are supplied and the shell has no unwaited-for children,
the exit status is 127. If the -p option is supplied, the process
or job identifier of the job for which the exit status is returned is
assigned to the variable varname named by the option argument. The
variable will be unset initially, before any assignment. This is useful
only when the -n option is supplied. Supplying the -f
option, when job control is enabled, forces wait to wait for
id to terminate before returning its status, instead of returning
when it changes status. If id specifies a non-existent process or
job, the return status is 127. If wait is interrupted by a signal,
the return status will be greater than 128, as described under
SIGNALS above. Otherwise, the return status is the exit status of
the last process or job waited for.
Bash-4.0 introduced the concept of a shell compatibility
level, specified as a set of options to the shopt builtin (
compat31, compat32, compat40, compat41, and so
on). There is only one current compatibility level -- each option is
mutually exclusive. The compatibility level is intended to allow users to
select behavior from previous versions that is incompatible with newer
versions while they migrate scripts to use current features and behavior.
It's intended to be a temporary solution.
This section does not mention behavior that is standard for a
particular version (e.g., setting compat32 means that quoting the rhs
of the regexp matching operator quotes special regexp characters in the
word, which is default behavior in bash-3.2 and subsequent versions).
If a user enables, say, compat32, it may affect the
behavior of other compatibility levels up to and including the current
compatibility level. The idea is that each compatibility level controls
behavior that changed in that version of bash, but that behavior may
have been present in earlier versions. For instance, the change to use
locale-based comparisons with the [[ command came in bash-4.1, and
earlier versions used ASCII-based comparisons, so enabling compat32
will enable ASCII-based comparisons as well. That granularity may not be
sufficient for all uses, and as a result users should employ compatibility
levels carefully. Read the documentation for a particular feature to find
out the current behavior.
En Bash-4.3 se introdujo una nueva variable de la shell:
BASH_COMPAT. El valor asignado a esta variable (un
número decimal como 4.2 o un entero que correspondería
a la opción compatNN como por ejemplo: 42)
determinará el nivel de compatibilidad.
A partir de la versión 4.4, Bash comenzó a extinguir
los antiguos niveles de compatibilidad. En algún momento, se
eliminarán empleándose BASH_COMPAT en su
lugar.
Bash-5.0 es la última versión que incluye una
opción de shopt para la versión anterior. A partir de la
versión Bash-5.0, será necesario emplear
BASH_COMPAT.
The following table describes the behavior changes controlled by
each compatibility level setting. The compatNN tag is used as
shorthand for setting the compatibility level to NN using one of the
following mechanisms. For versions prior to bash-5.0, the compatibility
level may be set using the corresponding compatNN shopt
option. For bash-4.3 and later versions, the BASH_COMPAT
variable is preferred, and it is required for bash-5.1 and later
versions.
- compat31
- •
- quoting the rhs of the [[ command's regexp matching operator (=~)
has no special effect
- compat32
- •
- interrupting a command list such as "a ; b ; c" causes the
execution of the next command in the list (in bash-4.0 and later versions,
the shell acts as if it received the interrupt, so interrupting one
command in a list aborts the execution of the entire list)
- compat40
- •
- the < and > operators to the [[ command do not
consider the current locale when comparing strings; they use ASCII
ordering. Bash versions prior to bash-4.1 use ASCII collation and
strcmp(3); bash-4.1 and later use the current locale's collation
sequence and strcoll(3).
- compat41
- in posix mode, time may be followed by options and still be
recognized as a reserved word (this is POSIX interpretation 267)
- in posix mode, the parser requires that an even number of single
quotes occur in the word portion of a double-quoted parameter
expansion and treats them specially, so that characters within the single
quotes are considered quoted (this is POSIX interpretation 221)
- compat42
- the replacement string in double-quoted pattern substitution does not
undergo quote removal, as it does in versions after bash-4.2
- in posix mode, single quotes are considered special when expanding the
word portion of a double-quoted parameter expansion and can be used
to quote a closing brace or other special character (this is part of POSIX
interpretation 221); in later versions, single quotes are not special
within double-quoted word expansions
- compat43
- the shell does not print a warning message if an attempt is made to use a
quoted compound assignment as an argument to declare (e.g., declare -a
foo='(1 2)'). Later versions warn that this usage is deprecated
- los errores en la expansión de palabras no se consideran fatales
para que la orden no se ejecute incluso en modo posix (por defecto, se
emite un error fatal haciendo que la shell pare su ejecución).
- when executing a shell function, the loop state (while/until/etc.) is not
reset, so break or continue in that function will break or
continue loops in the calling context. Bash-4.4 and later reset the loop
state to prevent this
- compat44
- la shell define los valores de BASH_ARGV y
BASH_ARGC para que puedan expandirse en los
parámetros posicionales aunque no esté activo el modo
ampliado de depuración.
- una subshell hereda los bucles del contexto de su antecesor, así
break o continue hacen terminar su ejecución. En la
versión 5.0 y posteriores, se reinicia el estado del bucle para
evitarlo.
- las asignaciones de variables que precenden órdenes nativas como
export y readonly que definen atributos siguen influyendo en
las variables con el mismo nombre en el entorno en que se invocaron aunque
la shell no esté en modo posix.
- compat50
- Bash-5.1 changed the way $RANDOM is generated to
introduce slightly more randomness. If the shell compatibility
level is set to 50 or lower, it reverts to the method from bash-5.0 and
previous versions, so seeding the random number generator by assigning a
value to RANDOM will produce the same sequence as in
bash-5.0
- If the command hash table is empty, bash versions prior to bash-5.1
printed an informational message to that effect, even when producing
output that can be reused as input. Bash-5.1 suppresses that message when
the -l option is supplied.
- compat51
- •
- The unset builtin treats attempts to unset array subscripts
@ and * differently depending on whether the array is
indexed or associative, and differently than in previous versions.
Si bash se arranca con el nombre rbash, o se da la
opción -r en la llamada, la shell se convierte en restringido.
Una shell restringida se emplea para establecer un entorno más
controlado que el que la shell estándar proporciona. Se comporta de
forma idéntica a bash con la excepción de que lo
siguiente no está permitido o no se realiza:
- cambiar de directorio con cd
- define o elimina los valores de SHELL,
PATH, HISTFILE,
ENV, o BASH_ENV
- especificar nombres de órdenes que contengan /
- especificar un nombre de archivo que contenga al menos una / como
un argumento de la orden interna . (source)
- especificar un nombre de archivo que contenga al menos una barra como
argumento de la orden interna history
- especificar un nombre de archivo que contenga al menos una barra como
argumento de la orden interna hash
- importar definiciones de funciones desde el entorno de la shell en el
arranque
- analizar el valor de SHELLOPTS desde el entorno de la shell
en el arranque
- redirigir la salida usando los operadores de redirección >,
>|, <>, >&, &>, y >>
- utiliza la orden nativa exec para reemplazar la shell por otro
programa
- añadir o eliminar órdenes incorporadas con las opciones
-f o -d de la orden interna enable.
- utilizar la orden interna enable para activar órdenes
internas de la shell inactivas.
- dar la opción -p a la orden interna command.
- desactivar el modo restringido con set +r o shopt -u
restricted_shell.
Estas restricciones entran en vigor después de que se lean
los archivos de arranque que hubiera.
When a command that is found to be a shell script is executed (see
COMMAND EXECUTION above), rbash desactiva todas
las restricciones en la shell lanzado para ejecutar el guión.
- /bin/bash
- La imagen ejecutable de bash
- /etc/profile
- El archivo de inicio general, leído en shells de inicio
- /etc/bash.bashrc
- Archivo global de inicio para shells interactivos
- /etc/bash.bash.logout
- El archivo global que se ejecuta cuando se sale de la shell
- ~/.bash_profile
- El archivo de inicio personal, leído en shells de inicio
- ~/.bashrc
- El archivo individual de inicio para shells interactivos
- ~/.bash_logout
- El archivo de limpieza de inicio personal, ejecutado cada vez que termina
una shell de inicio
- ~/.bash_history
- Valor por defecto de HISTFILE, el archivo donde bash guarda el
historial de órdenes
- ~/.inputrc
- El archivo de inicio individual de readline
Brian Fox, Free Software Foundation
bfox@gnu.org
Chet Ramey, Case Western Reserve University
chet.ramey@case.edu
Si Ud. encuentra un fallo en bash, debería informar
de ello. Pero primero debería asegurarse de que realmente es un
fallo, y de que aparece en la versión más reciente de
bash. Dicha versión siempre está disponible en
ftp://ftp.gnu.org/pub/gnu/bash/ y en
http://git.savannah.gnu.org/cgit/bash.git/snapshot/bash-master.tar.gz.
Una vez que Ud. ha determinado que realmente existe un fallo,
utilice la orden bashbug para enviar el informe correspondiente. Si
Ud. ha encontrado cómo corregirlo, ¡se le anima a que nos
mande también la corrección! Las sugerencias y los informes de
fallos `filosóficos' se pueden enviar por correo electrónico a
bug-bash@gnu.org o se pueden publicar en el grupo de discusiones de
Usenet gnu.bash.bug.
TODOS los informes de fallos deben incluir:
- El número de versión
de bash
- El tipo de equipo (hardware) y
el sistema operativo
- El compilador que se
empleó para compilarlo
- Una descripción del
comportamiento del fallo
- Un breve script o 'receta' para
reproducir el fallo
bashbug inserta automáticamente los tres primeros
puntos en la plantilla que proporciona para escribir el informe del
fallo.
Los comentarios e informes de fallos que conciernan a esta
página de manual deben dirigirse a chet.ramey@case.edu.
Es demasiado grande y demasiado lento.
Hay algunas sutiles diferencias entre bash y versiones
tradicionales del shell de Bourne sh, mayormente debidas a la
especificación POSIX.
Los alias son confusos en algunos casos.
Las órdenes nativas de la shell y las funciones no son
interrumpibles/reiniciables.
Las órdenes compuestas y las secuencias de órdenes
de la forma `a ; b ; c' no se manejan de forma muy elegante cuando se
intenta suspender el proceso. Cuando se detiene un proceso, la shell ejecuta
inmediatamente la siguiente orden de la secuencia. Para remediar esto es
suficiente poner la secuencia de órdenes entre paréntesis;
así la forzamos a ejecutarse en una subshell, que puede detenerse
como una unidad.
Las variables de tipo vector no pueden (de momento)
exportarse.
Solo puede haber un coproceso activo a la vez.
La traducción al español de esta página del
manual fue creada por Gerardo Aburruzaga García
<gerardo.aburruzaga@uca.es> y Marcos Fouces
<marcos@debian.org>
Esta traducción es documentación libre; lea la
GNU General
Public License Version 3 o posterior con respecto a las condiciones de
copyright. No existe NINGUNA RESPONSABILIDAD.
Si encuentra algún error en la traducción de esta
página del manual, envíe un correo electrónico a
debian-l10n-spanish@lists.debian.org.