Skip to main content

Linux - Comando Unix: bash

Curso Intensivo de Comandos Basicos de Linux (2016) (Abril 2025)

Curso Intensivo de Comandos Basicos de Linux (2016) (Abril 2025)
Anonim

El comando de linux Golpetazo es unsh- intérprete de lenguaje de comando compatible que ejecuta comandos leídos desde la entrada estándar o desde un archivo.Golpetazo También incorpora características útiles de las carcasas Korn y C (ksh ycsh).

Opciones de bash

Además de las opciones de shell de un solo carácter documentadas en la descripción delconjunto comando incorporado,golpetazo Interpreta las siguientes opciones cuando se invoca:

  • -do cuerda: Si el-do La opción está presente, entonces los comandos se leen desde cuerda . Si hay argumentos después de la cuerda , se asignan a los parámetros posicionales, comenzando con$0.
  • -yo: Si el-yo La opción está presente, el shell es interactivo .
  • -l: Hacergolpetazo actuar como si hubiera sido invocado como un shell de inicio de sesión.
  • -r: Si el-r La opción está presente, el shell se convierte en. restringido.
  • -s: Si el-s La opción está presente, o si no quedan argumentos después del procesamiento de la opción, los comandos se leen desde la entrada estándar. Esta opción permite establecer los parámetros posicionales al invocar un shell interactivo.
  • -RE: Una lista de todas las cadenas entre comillas dobles precedidas por$ Se imprime en la salida estándar. Estas son las cadenas que están sujetas a la traducción de idiomas cuando la configuración regional actual no esdo oPOSIX. Esto implica que …norte opción; No se ejecutarán comandos.
  • - + O shopt_option : shopt_option Es una de las opciones de shell aceptadas por elshopt incorporado. Si shopt_option está presente,-O establece el valor de esa opción, y+ O lo desarma. Si shopt_option no se proporciona, los nombres y valores de las opciones de shell aceptadas porshopt Se imprimen en la salida estándar. Si la opción de invocación es + O, la salida se muestra en un formato que puede reutilizarse como entrada.
  • --: UNA-- señala el final de las opciones y desactiva el procesamiento de opciones adicionales. Cualquier argumento después de la-- Se tratan como nombres de archivos y argumentos. Un argumento de- es equivalente a--.

Golpetazo También interpreta una serie de opciones de múltiples caracteres. Estas opciones deben aparecer en la línea de comandos antes de las opciones de un solo carácter para ser reconocidas:

  • --dump-po-strings: Equivalente a-RE, pero la salida está en el GNU gettext correos Formato de archivo (objeto portátil).
  • --dump-strings: Equivalente a-RE.
  • --ayuda: Muestra un mensaje de uso en la salida estándar y sale con éxito.
  • --init-file: expediente y --archivo expediente : Ejecutar comandos desde expediente en lugar del archivo de inicialización personal estándar ~ / .bashrc Si el shell es interactivo.
  • --iniciar sesión: Equivalente a-l.
  • --noeditar: No usar el GNUreadline Biblioteca para leer líneas de comando cuando el shell es interactivo.
  • --sin perfil: No lea el archivo de inicio de todo el sistema / etc / perfil o cualquiera de los archivos de inicialización personal ~ / .bash_profile , ~ / .bash_login o ~ / .profile . Por defecto,golpetazo lee estos archivos cuando se invoca como shell de inicio de sesión.
  • --norc: No leer y ejecutar el archivo de inicialización personal. ~ / .bashrc Si el shell es interactivo. Esta opción está activada de forma predeterminada si el shell se invoca comosh.
  • --posix: Cambiar el comportamiento degolpetazo donde la operación predeterminada difiere del estándar POSIX para que coincida con el estándar ( modo posix ).
  • --restringido: El shell se restringe.
  • --rpm-requiere: Produzca la lista de archivos necesarios para que se ejecute el script de shell. Esto implica '-n' y está sujeto a las mismas limitaciones que la verificación de comprobación de errores de tiempo de compilación; Las comillas inversas, y las pruebas no se analizan, por lo que es posible que se pierdan algunas dependencias.
  • --verboso: Equivalente a-v.
  • --versión: Mostrar información de versión para esta instancia degolpetazo En la salida estándar y salir con éxito.

Argumentos

Si los argumentos permanecen después del procesamiento de la opción y ni el-do ni el-s Se ha proporcionado la opción, se supone que el primer argumento es el nombre de un archivo que contiene comandos de shell. Si golpetazo se invoca de esta manera,$0 se establece en el nombre del archivo, y los parámetros posicionales se establecen en los argumentos restantes.Golpetazo lee y ejecuta comandos desde este archivo; luego sale.GolpetazoEl estado de salida de es el estado de salida del último comando ejecutado en el script. Si no se ejecutan comandos, el estado de salida es 0. Primero se intenta abrir el archivo en el directorio actual y, si no se encuentra ningún archivo, el shell busca los directorios enCAMINO para el guión.

Invocación

UNA shell de inicio de sesión es uno cuyo primer carácter del argumento cero es un-, o uno comenzó con el--iniciar sesión opción.

Un interactivo shell es uno iniciado sin argumentos no opcionales y sin el-do Opción cuya entrada y salida estándar están conectadas a los terminales según lo determinado por isatty (3), o uno comenzó con el-yo opción.PS1 se establece y $- incluye si bash es interactivo, permitiendo que un script de shell o un archivo de inicio prueben este estado.

Los siguientes párrafos describen cómogolpetazo ejecuta sus archivos de inicio. Si alguno de los archivos existe pero no se puede leer,golpetazo informa de un error. Tildes se expanden en nombres de archivos como se describe en Expansión de Tilde.

Cuandogolpetazo se invoca como shell de inicio de sesión interactivo o como shell no interactivo con el--iniciar sesión Opción, primero lee y ejecuta comandos desde el archivo. / etc / perfil , si ese archivo existe. Después de leer ese archivo, busca ~ / .bash_profile , ~ / .bash_login y ~ / .profile , en ese orden, y lee y ejecuta comandos desde el primero que existe y es legible. los--sin perfil Se puede usar la opción cuando se inicia el shell para inhibir este comportamiento.

Cuando un shell de inicio de sesión sale,golpetazo Lee y ejecuta comandos desde el archivo. ~ / .bash_logout , si existiera.

Cuando se inicia un shell interactivo que no es un shell de inicio de sesión,golpetazo lee y ejecuta comandos desde ~ / .bashrc , si ese archivo existe. Esto puede ser inhibido usando el--norc opción. los--archivo expediente la opción forzarágolpetazo para leer y ejecutar comandos desde expediente en lugar de ~ / .bashrc .

Cuandogolpetazo se inicia de forma no interactiva: para ejecutar un script de shell, por ejemplo, busca la variableBASH_ENV en el entorno, expande su valor si aparece allí y utiliza el valor expandido como el nombre de un archivo para leer y ejecutar.Golpetazo se comporta como si se ejecutara el siguiente comando:

si -n "$ BASH_ENV"; entonces . "$ BASH_ENV"; fi

pero el valor de laCAMINO La variable no se usa para buscar el nombre del archivo.

Sigolpetazo se invoca con el nombresh, trata de imitar el comportamiento de inicio de versiones históricas desh lo más cerca posible, a la vez que cumple con el estándar POSIX también. Cuando se invoca como un shell de inicio de sesión interactivo o un shell no interactivo con el--iniciar sesión Opción, primero intenta leer y ejecutar comandos desde / etc / perfil y ~ / .profile , en ese orden. los--sin perfil Se puede usar la opción para inhibir este comportamiento. Cuando se invoca como un shell interactivo con el nombre sh, golpetazo busca la variableENV, expande su valor si está definido, y usa el valor expandido como el nombre de un archivo para leer y ejecutar. Desde que se invoca un shell comosh no intenta leer y ejecutar comandos desde ningún otro archivo de inicio, el--archivo La opción no tiene efecto. Un shell no interactivo invocado con el nombresh No intenta leer ningún otro archivo de inicio. Cuando se invoca comosh, golpetazo entra posix Modo después de leer los archivos de inicio.

Cuandogolpetazo se inicia en posix modo, como con el--posix Opción de línea de comando, sigue el estándar POSIX para los archivos de inicio. En este modo, los shells interactivos expanden laENV La variable y los comandos se leen y ejecutan desde el archivo cuyo nombre es el valor expandido. No se leen otros archivos de inicio.

Golpetazo intenta determinar cuándo está siendo ejecutado por el demonio shell remoto, generalmente rshd . Si golpetazo determina que está siendo dirigido por rshd , lee y ejecuta comandos desde ~ / .bashrc , si ese archivo existe y es legible. No hará esto si se invoca comosh. los--norc opción puede ser utilizada para inhibir este comportamiento, y la--archivo Esta opción puede usarse para forzar la lectura de otro archivo, pero rshd generalmente no invoca el shell con esas opciones ni permite que se especifiquen.

Si el shell se inicia con el ID de usuario efectivo (grupo) no es igual al ID de usuario real (grupo), y el-pag La opción no se suministra, no se leen los archivos de inicio, las funciones de shell no se heredan del entorno, elSHELLOPTS La variable, si aparece en el entorno, se ignora y la ID de usuario efectiva se establece en la ID de usuario real. Si el-pag La opción se proporciona en la invocación, el comportamiento de inicio es el mismo, pero el ID de usuario efectivo no se restablece.

Definiciones

Las siguientes definiciones se utilizan en el resto de este documento:

  • Blanco: Un espacio o tabulador.
  • Palabra: Una secuencia de caracteres considerada como una sola unidad por el shell. También conocido como simbólico.
  • Nombre: UNA palabra consiste solo en caracteres alfanuméricos y guiones bajos, y comienza con un carácter alfabético o un guión bajo. También se conoce comoidentificador.
  • Metacaracter: Un carácter que, cuando no está citado, separa las palabras. Uno de los siguientes:| &; () <> pestaña espacio
  • Operador de control: UNA simbólico que realiza una función de control. Es uno de los siguientes símbolos: || & && ; ;; ( ) |

Palabras reservadas

Palabras reservadas Son palabras que tienen un significado especial para la concha. Las siguientes palabras se reconocen como reservadas cuando no están entre comillas y ya sea la primera palabra de un comando simple o la tercera palabra de unacasoopara mando:

! case do done elif else esac fi for function if en select then hasta while {} time

Shell Grammar: Comandos simples

UNA comando simple es una secuencia de asignaciones de variables opcionales seguidas deblanco-las palabras y redirecciones separadas y terminadas por un operador de control . La primera palabra especifica el comando a ejecutar, y se pasa como argumento cero. Las palabras restantes se pasan como argumentos al comando invocado.

El valor de retorno de un comando simple es su estado de salida, o 128+ norte si el comando es terminado por señal norte .

Oleoductos

UNA tubería Es una secuencia de uno o más comandos separados por el carácter.|. El formato para una tubería es hora -pag ! mando | comando2 … .

La salida estándar de mando está conectado a través de una tubería a la entrada estándar de comando2 . Esta conexión se realiza antes de cualquier redirección especificada por el comando.

Si la palabra reservada! precede a una canalización, el estado de salida de esa tubería es el NO lógico del estado de salida del último comando. De lo contrario, el estado de la canalización es el estado de salida del último comando. El shell espera a que todos los comandos en la tubería terminen antes de devolver un valor.

Si elhora la palabra reservada precede a una canalización, el tiempo transcurrido, así como el tiempo del usuario y del sistema consumido por su ejecución se informan cuando finaliza la tubería. los-pag La opción cambia el formato de salida al especificado por POSIX. losFORMATO DE TIEMPO la variable se puede establecer en una cadena de formato que especifica cómo se debe mostrar la información de tiempo.

Cada comando en una tubería se ejecuta como un proceso separado (en una subshell, por ejemplo).

Liza

UNA lista es una secuencia de uno o más conductos separados por uno de los operadores;, &, &&o||, y opcionalmente terminado por uno de;, &o.

De estos operadores de lista,&& y|| tienen igual precedencia, seguido de; y&, Que tienen igual precedencia.

Una secuencia de una o más líneas nuevas puede aparecer en una lista En lugar de un punto y coma para delimitar comandos.

Si un comando es terminado por el operador de control&, el shell ejecuta el comando en el fondo en una subshell. El shell no espera a que finalice el comando y el estado de retorno es 0. Los comandos separados por una; se ejecutan secuencialmente; el shell espera que cada comando termine a su vez. El estado de retorno es el estado de salida del último comando ejecutado.

Los operadores de control&& y|| denotar las listas AND y las listas OR respectivamente. Una lista AND tiene la forma

comando1 && comando2

comando2 se ejecuta si, y solo si, comando1 devuelve un estado de salida de cero.

Una lista OR tiene el formulario

comando1 || comando2

comando2 se ejecuta si y solo si comando1 devuelve un estado de salida distinto de cero. El estado de retorno de las listas AND y OR es el estado de salida del último comando ejecutado en la lista.

Comandos compuestos

UNA comando compuesto Es uno de los siguientes:

(lista) : lista Se ejecuta en una subshell. Las asignaciones de variables y los comandos incorporados que afectan el entorno del shell no permanecen en efecto una vez que se completa el comando. El estado de retorno es el estado de salida de lista .

{lista; } : lista Simplemente se ejecuta en el entorno de shell actual. lista debe ser terminado con una nueva línea o punto y coma. Esto se conoce como comando de grupo . El estado de retorno es el estado de salida de lista . Tenga en cuenta que a diferencia de los metacaracteres( y), { y} son palabras reservadas y debe ocurrir cuando se permite reconocer una palabra reservada. Ya que no causan un salto de palabra, deben estar separados de lista por espacios en blanco.

((expresión)) : Los expresión se evalúa de acuerdo con las reglas descritas en Evaluación aritmética. Si el valor de la expresión es distinto de cero, el estado de retorno es 0; de lo contrario, el estado de retorno es 1. Esto es exactamente equivalente adejar ' expresión '.

expresión : Devuelve un estado de 0 o 1 según la evaluación de la expresión condicional expresión . Las expresiones se componen de las primarias que se describen a continuación en Expresiones condicionales. La división de palabras y la expansión de rutas de acceso no se realizan en las palabras entre y; Se realizan la expansión de tilde, la expansión de parámetros y variables, la expansión aritmética, la sustitución de comandos, la sustitución de procesos y la eliminación de comillas.

Cuando el== y!= se utilizan operadores, la cadena a la derecha del operador se considera un patrón y se empareja de acuerdo con las reglas descritas enLa coincidencia de patrones. El valor de retorno es 0 si la cadena coincide o no coincide con el patrón, respectivamente, y 1 de lo contrario. Se puede citar cualquier parte del patrón para obligarlo a coincidir como una cadena.

Las expresiones se pueden combinar utilizando los siguientes operadores, enumerados en orden decreciente decreciente:

  • (expresión): devuelve el valor de expresión . Esto se puede usar para anular la precedencia normal de los operadores.
  • ! expreso norte: Cierto si expresión Es falso.
  • expresión1 && expresión2 : Cierto si ambos expresión1 y expresión2 son verdaderas.
  • expresión1 || expresión2 : Cierto si cualquiera expresión1 o expresión2 es verdad.

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

  • para nombre en palabra ; hacer lista ; hecho: La lista de palabras que sigueen Se expande, generando una lista de elementos. La variable nombre se establece a cada elemento de esta lista a su vez, y lista Se ejecuta cada vez. Si elen palabra se omite, elpara comando ejecuta lista Una vez por cada parámetro posicional que se establece. El estado de retorno es el estado de salida del último comando que se ejecuta. Si la expansión de los elementos siguientesen da como resultado una lista vacía, no se ejecuta ningún comando y el estado de retorno es 0.
  • para (( expr1 ; expr2 ; expr3 )) ; hacer lista ; hecho: Primero, la expresión aritmética. expr1 se evalúa de acuerdo con las reglas descritas enEvaluación aritmética. La expresión aritmética. expr2 luego se evalúa repetidamente hasta que se evalúa a cero. Cada vez expr2 evalúa a un valor distinto de cero, lista Se ejecuta y la expresión aritmética. expr3 es evaluado Si se omite alguna expresión, se comporta como si se evaluara en 1. El valor de retorno es el estado de salida del último comando en lista que se ejecuta, o falso si alguna de las expresiones no es válida.
  • seleccionar nombre en palabra ; hacer lista ; hecho: La lista de palabras que siguenen Se expande, generando una lista de elementos. El conjunto de palabras expandidas está impreso en el error estándar, cada uno precedido por un número. Si elen palabra Se omite, se imprimen los parámetros posicionales. los PS3 luego se muestra el indicador y se lee una línea de 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 establece en esa palabra. Si la línea está vacía, las palabras y el mensaje se muestran de nuevo. Si se lee EOF, el comando se completa. Cualquier otro valor lee las causas. nombre para establecerse en nulo. La línea leída se guarda en la variable.RESPUESTA. los lista Se ejecuta después de cada selección hasta quedescanso se ejecuta el comando. El estado de salida deseleccionar es el estado de salida del último comando ejecutado en lista , o cero si no se ejecutaron comandos.
  • caso palabra en ( modelo | modelo : UNAcaso primer comando se expande palabra , y trata de emparejarlo contra cada uno. modelo a su vez, utilizando las mismas reglas de coincidencia que para la expansión de ruta de acceso. Cuando se encuentra una coincidencia, el correspondiente lista es ejecutado. Después de la primera partida, no se intentan coincidencias posteriores. El estado de salida es cero si no hay ningún patrón que coincida. De lo contrario, es el estado de salida del último comando ejecutado en lista .
  • Si lista ; entonces lista; y elif lista ; entonces lista ; … más lista ; fi: losSi lista es ejecutado. Si su estado de salida es cero, elentonces lista es ejecutado. De lo contrario, cada elif lista se ejecuta a su vez, y si su estado de salida es cero, el correspondienteentonces lista Se ejecuta y el comando se completa. De lo contrario, elmás lista Se ejecuta, si está presente. El estado de salida es el estado de salida del último comando ejecutado, o cero si ninguna condición es verdadera.
  • mientras lista ; hacer lista ; hecho y hasta lista ; hacer lista ; hecho: Losmientras comando ejecuta continuamente elhacer lista siempre y cuando el último comando en lista devuelve un estado de salida de cero. loshasta comando es idéntico almientras comando, excepto que la prueba es negada; lahacer lista se ejecuta siempre que el último comando en lista devuelve un estado de salida distinto de cero. El estado de salida de lamientras yhasta comandos es el estado de salida de la últimahacer lista comando ejecutado, o cero si no se ejecutó ninguno.
  • función nombre () { lista ; }: Esto define una función llamada nombre . los cuerpo de la función es la lista de comandos entre {y}. Esta lista se ejecuta siempre que nombre se especifica como el nombre de un comando simple. El estado de salida de una función es el estado de salida del último comando ejecutado en el cuerpo.

Comentarios

En un shell no interactivo o un shell interactivo en el que el comentarios_activos opción a lashopt builtin está habilitado, una palabra que comienza con# hace que esa palabra y todos los caracteres restantes en esa línea sean ignorados. Un shell interactivo sin elcomentarios_activos La opción habilitada no permite comentarios. los comentarios_activos La opción está activada por defecto en shells interactivos.

Citando

Citando Se utiliza para eliminar el significado especial de ciertos caracteres o palabras en el shell. Las citas se pueden usar para deshabilitar el tratamiento especial de caracteres especiales, para evitar que las palabras reservadas se reconozcan como tales y para evitar la expansión de parámetros.

Cada una de las metacaracteres enumerados anteriormente enDefiniciones tiene un significado especial para el shell y debe citarse para representarse a sí mismo.

Cuando se utilizan las instalaciones de expansión del historial de comandos, expansión de la historia personaje, generalmente!, debe ser citado para evitar la expansión de la historia.

Hay tres mecanismos de cotización: Personaje de escape , comillas simples, y comillas dobles.

Una barra invertida no cotizada () es el Personaje de escape . Conserva el valor literal del siguiente carácter que sigue, con la excepción de . Si un Aparece el par y la barra invertida no se cotiza, el se trata como una continuación de línea (es decir, se elimina de la secuencia de entrada y se ignora de manera efectiva).

La inclusión de caracteres en comillas simples conserva el valor literal de cada carácter dentro de las comillas. Una comilla simple puede no aparecer entre comillas simples, incluso cuando está precedida por una barra invertida.

La inclusión de caracteres entre comillas dobles conserva el valor literal de todos los caracteres dentro de las comillas, con la excepción de$, 'y. Los caracteres$ y' retener su significado especial entre comillas dobles. La barra invertida conserva su significado especial solo cuando es seguida por uno de los siguientes caracteres:$, ', ', o. Una comilla doble se puede citar entre comillas dobles precediéndola con una barra invertida.

Los parametros especiales* y@ Tiene un significado especial cuando se entre comillas dobles.

Palabras de la forma$' cuerda 'son tratados especialmente. La palabra se expande a cuerda , con los caracteres de escape de barra invertida reemplazados según lo especificado por el estándar ANSI C. Las secuencias de escape de barra invertida, si están presentes, se decodifican de la siguiente manera:

  • una: alerta (campana)
  • segundo: retroceso
  • mi: un personaje de escape
  • F: form feed
  • orte: nueva línea
  • r: retorno de carro
  • t: pestaña horizontal
  • v: pestaña vertical
  • \: barra invertida
  • ': una frase
  • nnn : el carácter de ocho bits cuyo valor es el valor octal nnn (de uno a tres dígitos)
  • X S.S : el carácter de ocho bits cuyo valor es el valor hexadecimal S.S (uno o dos dígitos hexadecimales)
  • do X : un control- X personaje

El resultado expandido es de una sola cita, como si el signo de dólar no hubiera estado presente.

Una cadena entre comillas dobles precedida por un signo de dólar ($) hará que la cadena se traduzca de acuerdo con la configuración regional actual. Si el local actual esdo oPOSIX, el signo de dólar es ignorado. Si la cadena se traduce y se reemplaza, la sustitución se incluye entre comillas dobles.

Parámetros

UNA parámetro Es una entidad que almacena valores. Puede ser un nombre , un número o uno de los caracteres especiales enumerados enParámetros especiales. Para los propósitos de la concha, un variable es un parámetro denotado por una nombre . Una variable tiene una valor y cero o mas atributos . Los atributos se asignan utilizando eldeclarar comando incorporado.

Se establece un parámetro si se le ha asignado un valor. La cadena nula es un valor válido. Una vez que se establece una variable, se puede desarmar solo usando eldesarmado comando incorporado.

UNA variable Puede ser asignado a una declaración de la forma: nombre = valor

Si valor no se da, la variable se asigna la cadena nula. Todos valores someterse a expansión de tilde, expansión de parámetros y variables, sustitución de comandos, expansión aritmética y eliminación de comillas. Si la variable tiene suentero conjunto de atributos, entonces valor está sujeto a expansión aritmética incluso si no se usa la expansión $ ((…)). La división de palabras no se realiza, con la excepción de'$@' como se explica enParámetros especiales. La expansión del nombre de ruta no se realiza. Las declaraciones de asignación también pueden aparecer como argumentos a ladeclarar, composición tipográfica, exportar, solo lecturay local comandos incorporados.

Parámetros posicionales

UNA parámetro posicional es un parámetro denotado por uno o más dígitos, distinto del dígito único 0. Los parámetros posicionales se asignan a partir de los argumentos del shell cuando se invoca, y se pueden reasignar utilizando elconjunto comando incorporado. Los parámetros posicionales no se pueden asignar a las declaraciones de asignación. Los parámetros posicionales se reemplazan temporalmente cuando se ejecuta una función de shell.

Cuando se expande un parámetro posicional que consiste en más de un solo dígito, se debe incluir entre llaves.

Parámetros especiales

La cáscara trata varios parámetros especialmente. Estos parámetros solo pueden ser referenciados; La asignación a ellos no está permitida.

  • *: Expande a los parámetros posicionales, comenzando desde uno. Cuando la expansión se produce entre comillas dobles, se expande a una sola palabra con el valor de cada parámetro separado por el primer carácter delIFS variable especial Es decir, "$*" es equivalente a "$1 do $2 do ", dónde do Es el primer carácter del valor de laIFS variable. SiIFS Se anula, los parámetros están separados por espacios. SiIFS Es nulo, los parámetros se unen sin que intervengan separadores.
  • @: Expande a los parámetros posicionales, comenzando desde uno. Cuando la expansión ocurre dentro de comillas dobles, cada parámetro se expande a una palabra separada. Es decir, "$@" es equivalente a "$1' '$2"… Cuando no hay parámetros posicionales,"$@"y$@expandir a nada (se eliminan).
  • #: Expande a la cantidad de parámetros posicionales en decimal.
  • ?: Se expande al estado de la tubería de primer plano ejecutada más recientemente.
  • -: Se expande a los indicadores de opción actuales como se especifica en la invocación, porconjunto comando incorporado o los establecidos por el propio shell, como el-yo opción.
  • $: Se expande al ID de proceso del shell. En una () subshell, se expande a la ID de proceso del shell actual, no a la subshell.
  • !: Se expande al ID de proceso del comando de fondo ejecutado más recientemente (asíncrono).
  • 0: Se expande al nombre del shell o script de shell. Esto se establece en la inicialización de shell. Sigolpetazo Se invoca con un archivo de comandos,$0 se establece en el nombre de ese archivo. Sigolpetazo se inicia con el-do opción, entonces$0 se establece en el primer argumento después de la cadena que se ejecutará, si hay uno presente. De lo contrario, se establece en el nombre de archivo utilizado para invocargolpetazo, según lo dado por el argumento cero.
  • _: En el inicio del shell, establezca el nombre de archivo absoluto del shell o el script de shell que se está ejecutando como se pasa en la lista de argumentos. Posteriormente, se expande al último argumento del comando anterior, después de la expansión. También establezca el nombre de archivo completo de cada comando ejecutado y colocado en el entorno exportado a ese comando. Al revisar el correo, este parámetro contiene el nombre del archivo de correo que se está verificando actualmente.

Variables de Shell

Las siguientes variables son establecidas por el shell:

GOLPETAZO: Se expande al nombre completo del archivo utilizado para invocar esta instancia degolpetazo.

BASH_VERSINFO: Una variable de matriz de solo lectura cuyos miembros tienen información de versión para esta instancia de golpetazo. Los valores asignados a los miembros de la matriz son los siguientes:

  • BASH_VERSINFO 0: El número de versión principal (el lanzamiento )
  • BASH_VERSINFO 1: El número de versión menor (el versión )
  • BASH_VERSINFO 2: El nivel de parche
  • BASH_VERSINFO 3: la versión de compilación
  • BASH_VERSINFO 4: El estado de liberación ( beta1, por ejemplo)
  • BASH_VERSINFO 5: El valor deMACHTYPE

BASH_VERSION: Se expande a una cadena que describe la versión de esta instancia degolpetazo.

COMP_CWORD: Un índice en$ {COMP_WORDS} de la palabra que contiene la posición actual del cursor. Esta variable está disponible solo en las funciones de shell invocadas por las instalaciones de finalización programables.

COMP_LINE: La linea de comando actual. Esta variable está disponible solo en funciones de shell y comandos externos invocados por las instalaciones de finalización programables.

COMP_POINT: El índice de la posición actual del cursor en relación con el comienzo del comando actual. Si la posición actual del cursor está al final del comando actual, el valor de esta variable es igual a$ {# COMP_LINE}. Esta variable está disponible solo en funciones de shell y comandos externos invocados por las instalaciones de finalización programables.

COMP_WORDS: Una variable de matriz que consiste en las palabras individuales en la línea de comando actual. Esta variable está disponible solo en las funciones de shell invocadas por las instalaciones de finalización programables.

DIRSTACK: Una variable de matriz que contiene el contenido actual de la pila de directorios. Los directorios aparecen en la pila en el orden en que aparecendirs incorporado. La asignación a miembros de esta variable de matriz se puede usar para modificar directorios que ya están en la pila, peroempujar ypopd Los builtins deben usarse para agregar y eliminar directorios. La asignación a esta variable no cambiará el directorio actual. SiDIRSTACK se desactiva, pierde sus propiedades especiales, incluso si se restablece posteriormente.

EUID: Se expande al ID de usuario efectivo del usuario actual, inicializado en el inicio de shell. Esta variable es de solo lectura.

Nombre de pila: El nombre de cualquier función de shell actualmente en ejecución. Esta variable existe solo cuando se está ejecutando una función de shell. Asignaciones aNombre de pila No tiene efecto y devuelve un estado de error. SiNombre de pila se desactiva, pierde sus propiedades especiales, incluso si se restablece posteriormente.

Los grupos: Una variable de matriz que contiene la lista de grupos de los que el usuario actual es miembro. Asignaciones aLos grupos No tiene efecto y devuelve un estado de error. SiLos grupos se desactiva, pierde sus propiedades especiales, incluso si se restablece posteriormente.

HISTCMD: El número o índice de historial en la lista de historial del comando actual. SiHISTCMD se desactiva, pierde sus propiedades especiales, incluso si se restablece posteriormente.

Nombre de host: Establecer automáticamente el nombre del host actual.

HOSTTYPE: Se establece automáticamente en una cadena que describe de forma única el tipo de máquina en la quegolpetazo se esta ejecutando El valor predeterminado es dependiente del sistema.

LINENO: Cada vez que se hace referencia a este parámetro, el shell sustituye un número decimal que representa el número de línea secuencial actual (comenzando con 1) dentro de un script o función. Cuando no se encuentra en un script o función, no se garantiza que el valor sustituido sea significativo. SiLINENO se desactiva, pierde sus propiedades especiales, incluso si se restablece posteriormente.

MACHTYPE: Se establece automáticamente en una cadena que describe completamente el tipo de sistema en el quegolpetazo Se está ejecutando en el estándar GNU. cpu-company-system formato. El valor predeterminado es dependiente del sistema.

OLDPWD: El directorio de trabajo anterior según lo establecido por eldiscos compactos mando.

OPTARG: El valor del último argumento de opción procesado por elgetopts comando incorporado.

Optar: El índice del siguiente argumento a ser procesado por elgetopts comando incorporado.

OSTYPE: Se establece automáticamente en una cadena que describe el sistema operativo en el quegolpetazo se esta ejecutando El valor predeterminado es dependiente del sistema.

Pipestato: Una variable de matriz que contiene una lista de valores de estado de salida de los procesos en la tubería de primer plano ejecutada más recientemente, que puede contener un solo comando.

PPID: El ID de proceso de la matriz del shell. Esta variable es de solo lectura.

PWD: El directorio de trabajo actual según lo establecido por eldiscos compactos mando.

ALEATORIO: Cada vez que se hace referencia a este parámetro, se genera un entero aleatorio entre 0 y 32767. La secuencia de números aleatorios se puede inicializar asignando un valor a ALEATORIO. SiALEATORIO se desactiva, pierde sus propiedades especiales, incluso si se restablece posteriormente.

RESPUESTA: Ajuste a la línea de entrada leída por elleer comando incorporado cuando no se proporcionan argumentos.

SEGUNDOS: Cada vez que se hace referencia a este parámetro, se devuelve el número de segundos desde la invocación del shell. Si se asigna un valor aSEGUNDOS, el valor devuelto en referencias posteriores es el número de segundos desde la asignación más el valor asignado. Si SEGUNDOS se desactiva, pierde sus propiedades especiales, incluso si se restablece posteriormente.

SHELLOPTS: Una lista separada por dos puntos de las opciones de shell habilitadas. Cada palabra en la lista es un argumento válido para el-o opción a laconjunto comando incorporado. Las opciones que aparecen enSHELLOPTS son los reportados como en porestablecer -o. Si esta variable está en el entorno cuandogolpetazo se inicia, cada opción de shell en la lista se habilitará antes de leer los archivos de inicio. Esta variable es de solo lectura.

SHLVL: Incrementado en uno cada vez que una instancia degolpetazo Está empezado.

UID: Se expande al ID de usuario del usuario actual, inicializado en el inicio de shell. Esta variable es de solo lectura.

Las siguientes variables son utilizadas por el shell. En algunos casos,golpetazo asigna un valor predeterminado a una variable; estos casos son notados

BASH_ENV: Si este parámetro se establece cuandogolpetazo está ejecutando un script de shell, su valor se interpreta como un nombre de archivo que contiene comandos para inicializar el shell, como en ~ / .bashrc . El valor de BASH_ENV está sujeto a la expansión de parámetros, la sustitución de comandos y la expansión aritmética antes de ser interpretado como un nombre de archivo.CAMINO no se utiliza para buscar el nombre del archivo resultante.

CDPATH: La ruta de búsqueda para eldiscos compactos mando. Esta es una lista de directorios separados por dos puntos en los que el shell busca los directorios de destino especificados pordiscos compactos mando. Un valor de muestra es ".: ~: / Usr".

COLUMNAS: Utilizado por elseleccionar comando incorporado para determinar el ancho del terminal al imprimir listas de selección. Establecido automáticamente al recibir un SIGWINCH.

Cumplir: Una variable de matriz de la cualgolpetazo lee las posibles completaciones generadas por una función de shell invocada por la facilidad de finalización programable.

FCEDIT: El editor por defecto para elfc comando incorporado.

FIGNORE: Una lista de sufijos separados por dos puntos que se ignorarán al completar el nombre de archivo. Un nombre de archivo cuyo sufijo coincide con una de las entradas enFIGNORE se excluye de la lista de nombres de archivos coincidentes. Un valor de muestra es ".o: ~".

GLOBIGNORE: Una lista de patrones separados por dos puntos que definen el conjunto de nombres de archivos que se ignorarán por la expansión de nombre de ruta. Si un nombre de archivo que coincida con un patrón de expansión de nombre de ruta también coincide con uno de los patrones enGLOBIGNORE, se elimina de la lista de coincidencias.

HISTCONTROL: Si se establece en un valor de ignorar el espacio , líneas que comienzan con unespacio Los caracteres no se ingresan en la lista de historial. Si se establece en un valor de ignorados , las líneas que coinciden con la última línea del historial no se ingresan. Un valor de ignorar tanto combina las dos opciones. Si no se establece o si se configura en un valor diferente a los anteriores, todas las líneas leídas por el analizador se guardan en la lista de historial, sujeto al valor deHISTIGNORE. La función de esta variable es sustituida por HISTIGNORE. La segunda línea y las siguientes de un comando compuesto multilínea no se prueban y se agregan al historial independientemente del valor deHISTCONTROL.

Historial: El nombre del archivo en el que se guarda el historial de comandos. El valor predeterminado es ~ / .bash_history . Si no se establece, el historial de comandos no se guarda cuando sale un shell interactivo.

HISTFILIZAR: El número máximo de líneas contenidas en el archivo histórico. Cuando a esta variable se le asigna un valor, el archivo histórico se trunca, si es necesario, para que no contenga más de esa cantidad de líneas. El valor predeterminado es 500. El archivo de historial también se trunca a este tamaño después de escribirlo cuando sale un shell interactivo.

HISTIGNORE: Una lista de patrones separados por dos puntos que se utiliza para decidir qué líneas de comando deben guardarse en la lista de historial. Cada patrón está anclado al comienzo de la línea y debe coincidir con la línea completa (no implícito)*'se adjunta). Cada patrón se prueba contra la línea después de las comprobaciones especificadas porHISTCONTROL se aplican. Además de los caracteres de coincidencia de patrón de shell normales, '&'coincide con la línea de historia anterior. '&'se puede escapar utilizando una barra invertida; la barra invertida se elimina antes de intentar una coincidencia. La segunda línea y las líneas subsiguientes de un comando compuesto multilínea no se prueban y se agregan al historial independientemente del valor deHISTIGNORE.

HISTSIZE: El número de comandos a recordar en el historial de comandos. El valor predeterminado es 500.

CASA: El directorio de inicio del usuario actual; el argumento por defecto para eldiscos compactos comando incorporado. El valor de esta variable también se utiliza al realizar la expansión de tilde.

HOSTFILE: Contiene el nombre de un archivo en el mismo formato que / etc / hosts que debe leerse cuando el shell necesita completar un nombre de host. La lista de posibles terminaciones de nombre de host puede cambiarse mientras se ejecuta el shell; la próxima vez que se intente completar el nombre de host después de cambiar el valor,golpetazo agrega el contenido del nuevo archivo a la lista existente. Si HOSTFILE está establecido, pero no tiene valor,golpetazo intenta leer / etc / hosts para obtener la lista de posibles terminaciones de nombre de host. CuandoHOSTFILE está sin configurar, la lista de nombres de host se borra.

IFS: Los Separador de campo interno se utiliza para dividir palabras después de la expansión y para dividir líneas en palabras con laleer comando incorporado. El valor predeterminado es "''.

IGNOREEOF: Controla la acción de un shell interactivo al recibir unEOF personaje como la única entrada. Si se establece, el valor es el número de consecutivosEOF Los caracteres que deben escribirse como los primeros caracteres en una línea de entrada antesgolpetazo salidas Si la variable existe pero no tiene un valor numérico o no tiene ningún valor, el valor predeterminado es 10. Si no existe,EOF significa el final de la entrada al shell.

INPUTRC: El nombre de archivo para elreadline archivo de inicio, anulando el valor predeterminado de ~ / .inputrc .

LANG: Se utiliza para determinar la categoría de configuración regional para cualquier categoría no seleccionada específicamente con una variable que comience conLC_.

LC_ALL: Esta variable anula el valor deLANG y cualquier otroLC_ variable que especifica una categoría de configuración regional.

LC_COLLATE: Esta variable determina el orden de intercalación utilizado al ordenar los resultados de la expansión de la ruta y determina el comportamiento de las expresiones de rango, las clases de equivalencia y las secuencias de clasificación dentro de la expansión de la ruta y la coincidencia de patrones.

LC_CTYPE: Esta variable determina la interpretación de los caracteres y el comportamiento de las clases de caracteres dentro de la expansión del nombre de ruta y la coincidencia de patrones.

LC_MESSAGES: Esta variable determina la configuración regional utilizada para traducir cadenas de comillas dobles precedidas por un$.

LC_NUMERIC: Esta variable determina la categoría de configuración regional utilizada para el formato de número.

LÍNEAS: Utilizado por elseleccionar Comando incorporado para determinar la longitud de la columna para imprimir listas de selección. Establecido automáticamente al recibir un SIGWINCH.

CORREO: Si este parámetro se establece en un nombre de archivo y elMAILPATH la variable no está establecida,golpetazoinforma al usuario de la llegada del correo en el archivo especificado.

MAILCHECK: Especifica la frecuencia (en segundos)golpetazo cheques por correo El valor predeterminado es 60 segundos. Cuando es el momento de verificar el correo, el shell lo hace antes de mostrar el indicador primario. Si esta variable no está establecida o está configurada en un valor que no sea un número mayor o igual a cero, el shell desactiva la verificación de correo.

MAILPATH: Una lista de nombres de archivo separados por dos puntos que deben verificarse para correo. El mensaje que se imprimirá cuando el correo llegue a un archivo en particular puede especificarse separando el nombre del archivo del mensaje con un '?'. Cuando se utiliza en el texto del mensaje,$_ se expande al nombre del archivo de correo actual. Ejemplo:

MAILPATH = '/ var / mail / bfox? "¿Tiene correo": ~ / shell-mail? "$ _ Tiene correo!"'

Golpetazo proporciona un valor predeterminado para esta variable, pero la ubicación de los archivos de correo del usuario que utiliza depende del sistema (/ var / mail /$ USUARIO).

OPTERR: Si se establece en el valor 1,golpetazo muestra los mensajes de error generados por elgetopts comando incorporado.OPTERR se inicializa en 1 cada vez que se invoca el shell o se ejecuta un script de shell.

CAMINO: La ruta de búsqueda de comandos. Es una lista de directorios separados por dos puntos en los que el shell busca comandos. La ruta predeterminada depende del sistema y la establece el administrador que instalagolpetazo. Un valor común es "/ usr / gnu / bin: / usr / local / bin: / usr / ucb: / bin: / usr / bin :. ''.

POSIXLY_CORRECT: Si esta variable está en el entorno cuandogolpetazo comienza, la cáscara entra modo posix Antes de leer los archivos de inicio, como si el--posix Opción de invocación había sido suministrada. Si se establece mientras se ejecuta el shell,golpetazo habilita modo posix como si el comando set -o posix habia sido ejecutado

PROMPT_COMMAND: Si se establece, el valor se ejecuta como un comando antes de emitir cada solicitud primaria.

PS1: El valor de este parámetro se expande y se usa como la cadena de solicitud primaria. El valor predeterminado es " s- v $''.

PS2: El valor de este parámetro se expande como conPS1 y se utiliza como la cadena de solicitud secundaria. El valor predeterminado es "> ''.

PS3: El valor de este parámetro se utiliza como indicador para elseleccionar mando.

PS4: El valor de este parámetro se expande como conPS1, y el valor se imprime antes de cada comandogolpetazo Muestra durante un seguimiento de ejecución. El primer personaje dePS4 se replica varias veces, según sea necesario, para indicar múltiples niveles de direccionamiento indirecto. El valor predeterminado es "+ ''.

FORMATO DE TIEMPO: El valor de este parámetro se usa como una cadena de formato que especifica cómo la información de tiempo para las tuberías con el prefijohora La palabra reservada debe ser mostrada. los % el carácter introduce una secuencia de escape que se expande a un valor de tiempo u otra información. Las secuencias de escape y sus significados son las siguientes. Las llaves denotan porciones opcionales.

  • %%: Un literal%
  • % pag l R: El tiempo transcurrido en segundos
  • % pag l U: el número de segundos de CPU gastados en modo de usuario
  • % pag l S: el número de segundos de CPU gastados en el modo del sistema
  • %PAG: El porcentaje de CPU, calculado como (% U +% S) /% R

El opcional pag es un dígito que especifica el precisión , el número de dígitos fraccionarios después de un punto decimal. Un valor de 0 hace que no se produzca ningún punto decimal o fracción. Como máximo, se pueden especificar tres lugares después del punto decimal; valores de pag mayor que 3 se cambia a 3. Si pag no se especifica, se utiliza el valor 3.

El opcionall Especifica un formato más largo, incluyendo minutos, del formulario. MM metro SS . FF s. El valor de pag Determina si se incluye o no la fracción.

Si esta variable no está establecida,golpetazo Actúa como si tuviera el valor. $ ' nreal t% 3lR nuser t% 3lU nsys% 3lS'. Si el valor es nulo, no se muestra información de tiempo. Se agrega una nueva línea final cuando se muestra la cadena de formato.

TMOUT: Si se establece en un valor mayor que cero,TMOUT se trata como el tiempo de espera predeterminado para elleer incorporado. losseleccionar el comando termina si la entrada no llega después deTMOUT segundos cuando la entrada proviene de un terminal.En una shell interactiva, el valor se interpreta como el número de segundos a esperar para la entrada después de emitir el indicador primario.Golpetazo termina después de esperar ese número de segundos si la entrada no llega.

auto_resume: Esta variable controla cómo el shell interactúa con el usuario y el control del trabajo. Si se establece esta variable, los comandos simples de una sola palabra sin redirecciones se tratan como candidatos para la reanudación de un trabajo detenido existente. No hay ambigüedad permitida. Si hay más de un trabajo que comienza con la cadena escrita, se selecciona el trabajo al que se accedió más recientemente. los nombre de un trabajo detenido, en este contexto, es la línea de comando utilizada para iniciarlo. Si se establece en el valor exacto , la cadena suministrada debe coincidir exactamente con el nombre de un trabajo detenido; si se establece en subcadena , la cadena suministrada debe coincidir con una subcadena del nombre de un trabajo detenido. los subcadena valor proporciona una funcionalidad análoga a la%? identificador de trabajo. Si se establece en cualquier otro valor, la cadena suministrada debe ser un prefijo del nombre de un trabajo detenido; Esto proporciona una funcionalidad análoga a la% identificador de trabajo.

historietas: Los dos o tres caracteres que controlan la expansión del historial y la tokenización. El primer personaje es el expansión de la historia personaje, el personaje que señala el inicio de una expansión de la historia, normalmente '!'. El segundo personaje es el sustitución rápida carácter, que se utiliza como abreviatura para volver a ejecutar el comando anterior introducido, sustituyendo una cadena por otra en el comando. 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 '#'. El carácter de comentario de historial hace que la sustitución de historial se omita para las palabras restantes en la línea. No necesariamente hace que el analizador de shell trate el resto de la línea como un comentario.

Arrays

Golpetazo proporciona variables de matriz unidimensional. Cualquier variable puede ser utilizada como una matriz; la declarar builtin declarará explícitamente una matriz. No hay un límite máximo en el tamaño de una matriz ni ningún requisito de que los miembros se indexen o asignen de forma contigua. Las matrices se indexan utilizando números enteros y se basan en cero.

Una matriz se crea automáticamente si se asigna cualquier variable para usar la sintaxis nombre subíndice = valor . los subíndice se trata como una expresión aritmética que debe evaluar un número mayor o igual a cero. Para declarar explícitamente una matriz, usedeclarar -a nombre . declarar -a nombre subíndice también es aceptado; la subíndice se ignora Los atributos se pueden especificar para una variable de matriz utilizando eldeclarar y solo lectura construidos. Cada atributo se aplica a