GoGPT Best VPN GoSearch

icono de página de OnWorks

yash - Online en la nube

Ejecute yash en el proveedor de alojamiento gratuito de OnWorks sobre Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS

Este es el comando yash que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.

PROGRAMA:

NOMBRE


yash: un shell de línea de comandos compatible con POSIX

SINOPSIS


Yash [opciones ...] [-] [operandos ...]

INTRODUCCIÓN


Todavía antera shell (yash) es un shell de línea de comandos para sistemas operativos similares a UNIX. La cáscara
cumple con el estándar POSIX.1-2008 (para la mayoría de las partes), y en realidad es más
conforme a otras carcasas que cumplen con POSIX. Además, tiene muchas características que son
se utiliza para uso interactivo, como el historial de comandos y la edición de la línea de comandos.

Este programa se puede modificar y redistribuir libremente según los términos de GNU General
Licencia pública (versión 2). Utilice of este vídeo programa is que todas at Tu propia riesgo. Hay is no
garantía y el autor is No responsable para cualquier Consecuencias causado by use of este vídeo
.

Este manual se puede modificar y distribuir libremente según los términos de Creative Commons.
Reconocimiento-CompartirIgual 2.1 Japón.

Yash es desarrollado y mantenido por 渡邊 裕 貴 (WATANABE Yuki) también conocido como Magicant. Yash
OSDN aloja el proyecto de desarrollo y la página de inicio de Yash.

INVOCACIÓN


Cuando se invoca como un programa, yash realiza los pasos de inicialización predefinidos y
Lee y ejecuta comandos repetidamente. Argumentos de la línea de comando dados en la invocación
determina cómo se inicializa el shell y ejecuta los comandos.

Comando línea argumentos
La sintaxis de los argumentos de la línea de comandos para yash se ajusta a POSIX. Como se define en POSIX,
los argumentos se separan en opciones y operandos. Para obtener una explicación más detallada sobre
opciones y operandos, consulte Sintaxis de los argumentos del comando. Todas las opciones deben ir antes de los operandos.
La interpretación de los operandos depende de las opciones especificadas.

Cuando especifica el -c (--líneacmd), debe proporcionar al menos un operando. La cáscara
interpreta y ejecuta el primer operando como una cadena de comando. El segundo operando, si lo hay,
se utiliza para inicializar el 0 parámetro especial. Los otros operandos, si los hay, se utilizan para
inicializar los parámetros posicionales. Cuando el -c (--líneacmd) se especifica la opción, la
shell no lee ningún archivo o la entrada estándar (a menos que se use el punto incorporado).

Si especifica el -s (--stdin) opción, el shell lee la entrada estándar, interpreta la
input como comandos y los ejecuta. Todos los operandos dados se utilizan para inicializar el
parámetros posicionales. los 0 El parámetro especial se inicializa con el nombre del shell
invocado como.

Si no especifica ni el -c (--líneacmd) ni -s (--stdin), el shell lee un archivo,
interpreta el contenido del archivo como comandos y los ejecuta. El primer operando especifica
el nombre de la ruta del archivo. Los operandos restantes se utilizan para inicializar el posicional
parámetros. Si no proporciona ningún operando, el shell lee la entrada estándar como si el
-s (--stdin) se especifica la opción.

No puede usar ambos -c (--líneacmd) y -s (--stdin) opciones a la vez.

Si especifica el --ayuda or --versión opción, el shell nunca realiza lo habitual
inicialización o ejecución de comandos. En cambio, solo imprime un uso breve (para --ayuda) o
información de versión (para --versión) Si el --versión La opción va acompañada de la -v
(--verboso), el shell también imprime una lista de las funciones opcionales disponibles.

Si especifica el -i (--interactivo), el shell entra en modo interactivo. Si
usted especifica el +i (++ interactivo), a la inversa, el caparazón nunca entra en la
modo interactivo.

Si especifica el -l (--acceso), el shell se comporta como un shell de inicio de sesión.

La --sin perfil, --norcfile, --perfil y --rcarchivo las opciones determinan cómo es el caparazón
inicializado (consulte los detalles a continuación).

Además de las opciones descritas anteriormente, puede especificar opciones que se pueden especificar
al conjunto incorporado.

Si el primer operando es - y las opciones y los operandos no están separados por --,
se ignora el primer operando.

Inicialización of Yash
Yash se inicializa a sí mismo de la siguiente manera:

1. Yash primero analiza el nombre con el que se invocó. Si el nombre comienza con -, la cáscara
se comporta como un shell de inicio de sesión. Si el nombre es sh (incluidos nombres como / Bin / sh), el
shell entra en el modo POSIXly correcto.

2. Si no se dan operandos y la entrada estándar y el error estándar están conectados
a una terminal, el shell entra en modo interactivo a menos que el +i (++ interactivo)
Se especifica la opción.

3. El control de trabajos se habilita automáticamente en un shell interactivo a menos que el +m (++ monitor)
Se especifica la opción.

4. Yash lee y ejecuta comandos de los siguientes archivos (a menos que el real y
Los ID de usuario efectivos del proceso de shell son diferentes o el grupo real y efectivo.
Los ID del proceso de shell son diferentes):

1. Si se comporta como un shell de inicio de sesión, el shell lee el archivo especificado por el
--profile =nombre de archivo opción a menos que el --sin perfil se especifica la opción o el shell
está en el modo POSIXly correcto.

Si --profile =nombre de archivo La opción no está especificada, el shell lee ~ / .yash_profile
por defecto

2. Si está en el modo interactivo, el shell lee el archivo especificado por el
--rcfile =nombre de archivo opción a menos que el --norcfile Se especifica la opción.

Si --rcfile =nombre de archivo La opción no está especificada, el shell

· Lee ~ / .yashrc por defecto si no está en el modo POSIXly correcto; o

· Realiza la expansión de parámetros sobre el valor de la ENV variable de entorno y
trata el resultado de la expansión como el nombre del archivo a leer si en el
Modo POSIXly correcto.

Nota:
Yash nunca lee automáticamente / etc / profile, / etc / yashrc, ni ~ / .profile.

SINTAXIS


El shell lee, analiza y ejecuta el comando línea por línea. Si hay mas de uno
comando en una línea, todos los comandos se analizan antes de ejecutarse. Si un comando continúa
a las siguientes líneas, el shell lee más líneas suficientes para completar el comando. En una sintaxis
error, el shell no lee ni ejecuta más comandos.

Tokens y las palabras claves
Un comando se compone de uno o más tokens. En la sintaxis de shell, un ficha es una palabra que
es parte de un comando. Normalmente, los tokens están separados por espacios en blanco, es decir, el espacio o
carácter de tabulación. Espacios en blanco dentro de una sustitución de comando o una expansión de parámetro,
sin embargo, no separe los tokens.

Los siguientes símbolos tienen significados especiales en la sintaxis del shell y, en la mayoría de los casos, separan
tokens

; & | <> () [nueva línea]

Los siguientes símbolos no separan tokens, pero tienen significados sintácticos:

$ `\" '*? [# ~ =%

Los siguientes tokens se tratan como las palabras claves dependiendo del contexto en el que se
Aparecer:

! {} caso hecho elif si no esac fi
para la función si en entonces hasta mientras

Un token se trata como una palabra clave cuando:

· Es la primera ficha de un comando,

· Sigue otra palabra clave (excepto case, para y in), o

· No es un primer token de un comando y se supone que es una palabra clave para componer un
comando compuesto.

Si una ficha comienza con #, Entonces el # y cualquier personaje siguiente hasta el final del
línea se tratan como una comentario, que se ignora por completo en el análisis sintáctico.

Citas
Si desea que se traten los espacios en blanco, los caracteres separadores o las palabras clave descritas anteriormente
como caracteres normales, debe citar los caracteres utilizando las comillas adecuadas.
Las comillas no se tratan como caracteres normales a menos que se citen ellas mismas.
Puede utilizar las siguientes tres comillas:

· Una barra invertida (\) cita un personaje que sigue inmediatamente.

La única excepción acerca de una barra invertida es el caso en el que una barra invertida va seguida de una
nueva línea. En este caso, los dos personajes se tratan como un línea continuación más bien
que una nueva línea cotizada. Los dos caracteres se eliminan de la entrada y los dos
las líneas que rodean la continuación de la línea se concatenan en una sola línea.

· Un par de comillas simples (') citan cualquier carácter entre ellos excepto otro
cotización única. Tenga en cuenta que las nuevas líneas se pueden cotizar utilizando comillas simples.

· Comillas dobles (") son como citas simples, pero tienen algunas excepciones:
La expansión de parámetros, la sustitución de comandos y la expansión aritmética se interpretan como
habitual incluso entre comillas dobles. Se trata una barra invertida entre comillas dobles
como comillas solo cuando va seguido de $, `, ", \, o una nueva línea; otro
las barras invertidas se tratan como caracteres normales.

Alias
Los tokens que componen un comando están sujetos a alias sustitución. Un token que coincide con el
el nombre de un alias que ya ha sido definido se sustituye por el valor del alias
antes de que se analice el comando.

Los tokens que contienen comillas no se sustituyen por alias, ya que un nombre de alias no puede
contienen comillas. Las palabras clave y los caracteres separadores de comandos no son
sustituido por alias.

Hay dos tipos de alias: alias normales y alias globales. A normal alias sólo pueden
sustituir el primer token de un comando mientras que un global alias puede sustituir cualquier parte de un
mando. Los alias globales son extensiones yash que no están definidas en POSIX.

Si un token se sustituye por alias con el valor de un alias normal que termina con un
espacio en blanco, el siguiente token está excepcionalmente sujeto a la sustitución de alias por normal
alias.

Los resultados de la sustitución de alias están nuevamente sujetos a la sustitución de alias por otros
alias (pero no para los alias que ya se han aplicado).

Puede definir alias utilizando el alias incorporado y eliminar utilizando el alias incorporado.

Fácil comandos
Un comando que no comienza con un token de palabra clave es un simples comando. Comandos simples
se ejecutan como se define en Ejecución de comandos simples.

Si el primero y cualquier número de los siguientes tokens de un comando simple tienen la forma
nombre =valor, se interpretan como asignaciones de variables. Un nombre de variable debe constar de
uno o más alfabetos, dígitos y / o subrayados (_) y no debe comenzar con un dígito. los
El primer token que no es una asignación de variable se considera como un nombre de comando y todos los
siguientes tokens (tengan o no la forma nombre =valor) como argumentos de comando.

Una asignación variable del formulario var=(fichas) se interpreta como una asignación a una matriz.
Puede escribir cualquier número de tokens entre paréntesis. Los tokens se pueden separar
no solo por espacios y tabulaciones, sino también por nuevas líneas.

Pipelines
A industrial es una secuencia de uno o más comandos simples, comandos compuestos y / o
definiciones de funciones que están separadas por |.

Una canalización que tiene más de un subcomando se ejecuta ejecutando cada subcomando de
la tubería en una subcapa simultáneamente. La salida estándar de cada subcomando excepto
el último se redirige a la entrada estándar del siguiente subcomando. El estandar
La entrada del primer subcomando y la salida estándar del último subcomando no son
redirigido. El estado de salida de la canalización es el del último subcomando.

Una canalización puede tener el prefijo !, en cuyo caso el estado de salida de la tubería es
invertido: el estado de salida de la canalización es 1 si el del último subcomando es 0 y 0
de otra manera.

Nota:
Cuando finaliza la ejecución de un oleoducto, al menos la ejecución del último
El subcomando ha finalizado ya que el estado de salida del último subcomando define el de
toda la tubería. Sin embargo, es posible que la ejecución de otros subcomandos no haya finalizado
luego. Por otro lado, es posible que la ejecución del oleoducto no finalice poco después de eso.
del último subcomando terminado porque el shell puede optar por esperar la ejecución
de otros subcomandos para terminar.

Nota:
El estándar POSIX permite ejecutar cualquiera de los subcomandos en el shell actual en lugar de
que las subcapas, aunque yash no lo hace.

Y / o liza
An y/o lista es una secuencia de una o más canalizaciones separadas por && or ||.

Una lista y / o se ejecuta ejecutando algunas de las canalizaciones condicionalmente. El primero
la canalización siempre se ejecuta. Las otras canalizaciones se ejecutan o no se ejecutan
según el estado de salida de las tuberías anteriores.

· Si dos tuberías están separadas por && y el estado de salida de la primera canalización es
cero, se ejecuta la segunda canalización.

· Si dos tuberías están separadas por || y el estado de salida de la primera canalización no es
cero, se ejecuta la segunda canalización.

· En otros casos, finaliza la ejecución de la y / o lista: la segunda y las restantes
las canalizaciones no se ejecutan.

El estado de salida de una lista y / o es el de la última canalización que se ejecutó.

Normalmente, una y / o una lista debe terminar con un punto y coma, un ampersand o una nueva línea. Ver
Separadores de comandos y comandos asincrónicos.

Comando separadores y asincrónico comandos
Toda la entrada al shell debe estar compuesta por cualquier número y / o listas separadas por un
punto y coma o ampersand. Se puede omitir un punto y coma de terminación si va seguido de ;;, ),
o una nueva línea. De lo contrario, una y / o una lista deben terminar con un punto y coma o un ampersand.

Si una lista y / o termina con un punto y coma, se ejecuta sincrónicamente: el shell
espera a que finalice la lista y / o antes de ejecutar la siguiente y / o lista. Si un y / o
La lista termina con un ampersand, se ejecuta de forma asincrónica: después de la ejecución de
se inicia la lista y / o, la siguiente y / o lista se ejecuta inmediatamente. Un asincrónico
y / o la lista siempre se ejecuta en una subcapa y su estado de salida es cero.

Si el shell no controla el trabajo, la entrada estándar de una lista asincrónica y / o
se redirige automáticamente a / dev / null. Manejadores de señales del y / o lista para el
Las señales SIGINT y SIGQUIT están configuradas para "ignorar" la señal de modo que la ejecución de la
y / o la lista no puede ser detenida por esas señales. (En el modo POSIXly-correct, el estándar
la entrada se redirige si y solo si el shell es interactivo, independientemente de si el trabajo
el control está encendido. Además, las señales SIGINT y SIGQUIT se ignoran incluso si el control del trabajo es
sobre.)

Cuando se inicia la ejecución de una lista asincrónica y / o lista, el shell recuerda su
identificacion de proceso. Puede obtener el ID haciendo referencia al ! parámetro especial. Puedes obtener
el estado actual y de salida de la lista asincrónica también mediante el uso de trabajos y espere
incorporados.

Compuesto comandos
Los comandos compuestos le brindan control programático de la ejecución de comandos de shell.

Agrupamiento
Una agrupación es una lista de comandos que se trata como un comando simple.

Sintaxis de agrupación normal
{ comando...; }

Sintaxis de agrupación de subcapa
(comando...)

La { y } Los tokens son palabras clave que deben separarse de otros tokens. los ( y
) Los tokens, sin embargo, son separadores especiales que no necesitan separarse.

En la sintaxis de agrupación normal, los comandos de una agrupación se ejecutan en el
cascarón. En la sintaxis de agrupación de subcapa, los comandos se ejecutan en una nueva subcapa.

En el modo POSIXly-correct, una agrupación debe contener al menos un comando. Si el
shell no está en el modo POSIXly correcto, una agrupación puede no contener comandos.

El estado de salida de una agrupación es el del último comando de la agrupación. Si el
la agrupación no contiene comandos, su estado de salida es el del último comando ejecutado
antes de la agrupación.

If comando
El comando if realiza una bifurcación condicional.

Sintaxis básica del comando if
if condición...; y luego cuerpo...; fi

Sintaxis con la cláusula else
if condición...; y luego cuerpo...; más cuerpo...; fi

Sintaxis con la cláusula elif
if condición...; y luego cuerpo...; elif condición...; y luego cuerpo...; fi

Sintaxis con la cláusula elif
if condición...; y luego cuerpo...; elif condición...; y luego cuerpo...; más cuerpo...; fi

Para todas las sintaxis, la ejecución de un comando if comienza con la ejecución del
condición comandos que siguen el if simbólico. Si el estado de salida de la condición
comandos es cero, la condición se considera "verdadera". En este caso, el cuerpo
comandos que siguen el y luego token se ejecutan y la ejecución del comando if
acabados. Si el estado de salida de los comandos de condición no es cero, la condición es
considerado como "falso". En este caso, el condición comandos para la siguiente cláusula elif
se ejecutan y el estado de salida se prueba de la misma manera que anteriormente. Si no hay
cláusula elif, la cuerpo comandos que siguen el más token se ejecutan y el
finaliza la ejecución del comando if. Si tampoco hay otra cláusula, la ejecución
del comando if acaba de terminar.

Un comando if puede tener más de una cláusula elif-then.

El estado de salida de un comando if es el del cuerpo comandos que se ejecutaron. los
el estado de salida es cero si no cuerpo se ejecutaron los comandos, es decir, todas las condiciones
eran falsas y no había otra cláusula.

Aunque y hasta bucles
El ciclo while y el ciclo hasta son ciclos simples con condición.

Mientras que la sintaxis del bucle
mientras condición...; do cuerpo...; done

Hasta la sintaxis del bucle
hasta condición...; do cuerpo...; done

Si el shell no está en el modo POSIXly correcto, puede omitir el condición y/o
cuerpo comandos de un ciclo while / until.

La ejecución de un ciclo while se inicia ejecutando el condición comandos. Si el
estado de salida del condición comandos es cero, el shell ejecuta el cuerpo comandos
y vuelve a la ejecución del condición comandos. los condición y cuerpo
Los comandos se ejecutan repetidamente hasta que el estado de salida del condición comandos es
distinto de cero.

Nota:
La cuerpo Los comandos no se ejecutan en absoluto si la primera ejecución del condición
comandos produce un estado de salida distinto de cero.

Un bucle hasta se ejecuta de la misma manera que un bucle while excepto que la condición
para repetir el bucle se invierte: el cuerpo Los comandos se ejecutan cuando el estado de salida de
el condición comandos es distinto de cero.

El estado de salida de un bucle while / until es el del último ejecutado cuerpo mando. los
el estado de salida es cero si el cuerpo los comandos están vacíos o no se ejecutaron en absoluto.

Para los ensayos clínicos de CRISPR, loops
El bucle for repite comandos con una variable asignada a uno de los valores dados en cada
redondo.

Para la sintaxis de bucle
para nombrevar in palabra clave...; do comando...; hecho para nombrevar do comando...; done

La palabra clave lista después de la in El token puede estar vacío, pero el punto y coma (o nueva línea) antes
el do Se requiere token incluso en ese caso. los palabra clavelos mensajes de correo electrónico no se tratan como palabras clave, pero
debe citar caracteres separadores (como & y |) para incluirlos como parte de un
palabra clave. Si omite el in token y lo siguiente palabra claves, también debe omitir el
punto y coma antes del do simbólico. Sin embargo, el caparazón no se queja de la
existencia del punto y coma si no está en el modo POSIXly correcto. los comando la lista puede ser
vacío si no está en el modo POSIXly correcto.

La nombrevar debe ser un nombre portátil (solo ASCII) en el modo POSIXly correcto.

La ejecución de un bucle for se inicia expandiendo el palabra claves de la misma manera que en
la ejecución de un comando simple. Si el in y palabra clave los tokens se omiten, el shell
asume el palabra clave tokens para ser PS. A continuación, se toman los siguientes pasos para cada palabra
expandido (en el orden en que se expandieron las palabras):

1. Asigne la palabra a la variable cuyo nombre es nombrevar.

2. Ejecute el comandos.

Cada palabra se asigna como una variable local excepto en el modo POSIXly-correct. Si el
expansión de la palabra claves no produjo palabras como resultado, el comandos no se ejecutan en
todas.

El estado de salida de un bucle for es el del último ejecutado. comando. El estado de salida es
cero si el comandos no están vacíos y no se ejecutan en absoluto. Si el comandos están vacíos,
el estado de salida es el del último comando ejecutado antes del ciclo for.

Caso comando
El comando case realiza una coincidencia de patrones para seleccionar comandos para ejecutar.

Sintaxis del comando de caso
case palabra clave in artículo de caso... esac

Sintaxis del elemento de caso
(.) comando... ;;

La palabra clave entre las case y in los tokens deben ser exactamente una palabra. los palabra clave no es
tratada como una palabra clave, pero debe citar caracteres separadores (como & y |) A
incluirlos como parte del palabra clave. Entre los in y esac tokens puedes poner cualquier
número de elementos de la caja (puede ser ninguno). Puedes omitir el primero ( token de un artículo de caja y
el último ;; token antes del esac simbólico. Si el ultimo comando de un caso es
terminado con un punto y coma, también puede omitir el punto y coma. los comandos en un caso
el artículo puede estar vacío.

La . en un caso, los elementos son uno o más tokens, cada uno separado por un | simbólico.

La ejecución de un comando de caso comienza con someter el palabra clave a los cuatro
expansiones. A continuación, se toman los siguientes pasos para cada elemento del caso (en el orden de
apariencia):

1. Para cada palabra del ., expanda la palabra de la misma manera que la palabra clave y
prueba si el patrón expandido coincide con la palabra expandida. (Si se encuentra un patrón
que coincide con la palabra, los patrones restantes no se expanden ni prueban, por lo que algunos
del . no se puede ampliar. Yash expande y prueba los patrones en el
orden de aparición, pero puede que no sea el caso de otros proyectiles).

2. Si uno de los . se encontró que coincidía con el palabra clave en el paso anterior, el
comandoEn este caso, se ejecutan los elementos y la ejecución de todo el elemento del caso.
termina. De lo contrario, continúe con el siguiente elemento del caso.

El estado de salida de un comando de caso es el del comandos ejecutado. El estado de salida es
cero si no comandos fueron ejecutados, es decir, no hubo elementos de caso, no coincidencia
se encontró el patrón, o no se asociaron comandos con el patrón coincidente.

En el modo POSIXly-correct, el primer patrón en un elemento de caso no se puede esac (incluso si
no omites el ( simbólico).

Función definición
El comando de definición de función define una función.

Sintaxis de la definición de función
nombrefunción ( ) comando_compuestofunción nombrefunción comando_compuestofunción nombrefunción ( )
comando_compuesto

En la primera sintaxis sin el función palabra clave, nombrefunción no puede contener ningún especial
caracteres como punto y coma y comillas. En la segunda y tercera sintaxis, que
no se puede utilizar en el modo POSIXly-correct, nombrefunción está sujeto a las cuatro expansiones
cuando se ejecuta. En el modo POSIXly-correct, nombrefunción está limitado a un portátil (solo ASCII)
nombre.

Cuando se ejecuta un comando de definición de función, una función cuyo nombre es nombrefunción is
definido con su cuerpo siendo comando_compuesto.

Un comando de definición de función no se puede redirigir directamente. Cualquier redirección que siga
una definición de función está asociada con comando_compuesto en lugar de toda la función
comando de definición. En func () { gato; } > / dev / null, por ejemplo, no es func () { gato; }
but { gato; } que se redirige.

El estado de salida de una definición de función es cero si la función se definió sin
errores, y distinto de cero en caso contrario.

PARÁMETROS Y VARIABLES


Parámetros son valores de cadena que se expanden en la expansión de parámetros. Hay tres
tipos de parámetros: parámetros posicionales, parámetros especiales y variables.

Posicional parámetros
Posicional parámetros son parámetros que se identifican mediante números naturales. Si hay
tres parámetros posicionales, por ejemplo, se identifican como 1, 2 y 3. Usted puede
obtener el número de parámetros posicionales por el # parámetro especial. los * y @ especial
los parámetros se expanden a todos los parámetros posicionales.

Los parámetros posicionales se inicializan a partir de los argumentos de la línea de comandos del shell cuando el
se inicia el shell (consulte Argumentos de la línea de comandos). En la inicialización, el orden de
los operandos se conservan como el orden de los parámetros posicionales.

Cuando el shell ejecuta una llamada a función, los parámetros posicionales se cambian al
argumentos a la llamada a la función para que pueda acceder a los argumentos mientras la función está
ser ejecutado. Los parámetros posicionales se restauran a los valores originales cuando el
finaliza la ejecución de la función.

Los parámetros posicionales se pueden manipular mediante comandos integrados como set y shift.

Tenga en cuenta que 0 no es un parámetro posicional sino un parámetro especial.

Especial parámetros
Especial parámetros son parámetros, cada uno identificado por un solo símbolo. Ellos no pueden ser
asignado directamente por el usuario.

Yash proporciona los siguientes parámetros especiales:

0
El nombre del archivo ejecutable de shell o el archivo de secuencia de comandos que se especificó en el
invocación del caparazón.

#
El número de parámetros posicionales actuales. El valor es un número entero no negativo.

$
El ID de proceso del shell. El valor es un número entero positivo y nunca se cambia ni siquiera
en subcapas.

-
Opciones de shell actualmente habilitadas. El valor es una concatenación de caracteres alfabéticos.
que son los nombres de las opciones de un solo carácter habilitadas actualmente que se pueden especificar
en invocación de shell. El valor refleja los cambios de las opciones habilitadas cuando habilita o
deshabilite las opciones usando el conjunto incorporado.

?
El estado de salida de la última canalización ejecutada. El valor es un número entero no negativo.

!
El ID de proceso de la última lista asincrónica ejecutada.

*
Este parámetro especial representa todos los parámetros posicionales. Cuando no hay
parámetros posicionales, el valor de este parámetro especial es la cadena vacía. Cuando
hay más de un parámetro posicional, el valor es una concatenación de todos los
parámetros posicionales, cada uno de los cuales se separa de la siguiente manera:

· Si el IFS La variable existe y su valor no está vacío, los parámetros posicionales son
cada uno separado por el primer carácter del valor del IFS variable.

· Si el IFS La variable existe y tiene un valor vacío, los parámetros posicionales son solo
concatenados sin ningún separador.

· Si el IFS variable no existe, los parámetros posicionales están separados por un
carácter espacial.

@
Este parámetro especial representa todos los parámetros posicionales como el * especial
parámetro anterior. La diferencia entre los dos es el resultado de la expansión que
aparece entre un par de comillas dobles. Si el @ el parámetro especial es
expandidos dentro de comillas dobles, los parámetros posicionales se dividen en el campo en lugar de
concatenados (a pesar de la cotización). Si no hay parámetros posicionales, el
la expansión no produce una palabra en lugar de una palabra vacía.

· Cuando no hay parámetros posicionales, las palabras de comando echo 1 PS 2 is
expandido a las tres palabras echo, 1 y 2.

· Cuando los parámetros posicionales son las tres palabras 1, 2 2 y 3, las palabras de comando
echo PS se expande a las cuatro palabras echo, 1, 2 2 y 3y las palabras echo
"a $ @ b" a las cuatro palabras echo, a1, 2 2 y 3b.

Variables
Variables son parámetros a los que el usuario puede asignar valores. Cada variable tiene un nombre que
lo identifica y un valor que define los resultados de la expansión.

Un nombre de variable se compone de uno o más caracteres alfanuméricos y guiones bajos (_). La
el nombre no puede comenzar con un dígito. Se pueden usar otros caracteres en un nombre dependiendo de
apoyo a la internacionalización de su entorno.

Las variables que se exportan a comandos externos se denominan entorno empresarial las variables. Ellos
se pasan a todos los comandos externos que invoca el shell. Variables pasadas al shell en
la invocación se exportará automáticamente.

Puede asignar variables mediante un comando simple, así como la composición tipográfica incorporada. Usted puede
eliminar variables mediante el uso de unset incorporado.

Variables usado by el shell
El shell utiliza las siguientes variables para fines especiales.

CDPATH
Esta variable es utilizada por el cd incorporado para encontrar un directorio de destino.

COLUMNAS
Esta variable especifica el ancho (el número de columnas de caracteres) del
pantalla del terminal. El valor afecta la visualización de la edición de líneas.

COMMAND_NOT_FOUND_HANDLER
Cuando el shell no puede encontrar un comando para ejecutar, el valor de esta variable es
interpretado y ejecutado en su lugar. Puede anular el manejo de errores del shell
comportamiento con esta variable. Consulte Ejecución de comandos simples para obtener más detalles.

Esta función está desactivada en el modo POSIXly-correct.

pila de basura
El shell utiliza esta variable de matriz para almacenar el contenido de la pila de directorios. Si
modifica el valor de esta variable, la pila de directorios puede estar dañada.

ESTILO_ECO
Esta variable especifica el comportamiento del eco incorporado.

ENV
Cuando se inicia un shell interactivo en el modo POSIXly correcto, el valor de
esta variable se usa para encontrar el archivo de inicialización. Consulte Inicialización de yash.

FCEDIT
Esta variable especifica un programa editor utilizado para editar líneas de comando durante
ejecución del fc incorporado.

MANEJADO
Esta variable se puede configurar en el controlador de comando no encontrado para decirle al shell que no
producir un mensaje de error adicional. Consulte Ejecución de comandos simples para obtener más detalles.

ARCHIVO HISTÓRICO
Esta variable especifica el nombre de la ruta del archivo para guardar el historial de comandos.

HISTRMDUP
Esta variable especifica el número de elementos del historial de comandos que se deben verificar.
duplicación. Cuando el shell agrega un nuevo elemento de historial al historial de comandos,
si algunos de los mas recientes n elementos tienen el mismo contenido que el nuevo, entonces el
los elementos duplicados existentes se eliminan del historial antes de que se agregue el nuevo,
dónde n es el valor de esta variable.

Si el valor de esta variable es 1, por ejemplo, se elimina el elemento más reciente
cuando se agrega un nuevo elemento que tiene el mismo contenido.

Elementos más antiguos que el nLos elementos recientes no se eliminan. No se eliminan elementos si el
el valor de esta variable es 0. Todos los elementos están sujetos a eliminación si la variable
valor es mayor o igual que el valor de la SU TAMAÑO variable.

SU TAMAÑO
Esta variable especifica el número máximo de elementos en el historial de comandos.

INICIO
Esta variable especifica el nombre de la ruta del directorio de inicio del usuario y afecta
resultados de la expansión de tilde y cd incorporado.

IFS
Esta variable especifica los separadores utilizados en la división de campos. El valor de la variable es
inicializado a los tres caracteres de un espacio, una tabulación y una nueva línea cuando el
se inicia shell.

IDIOMA, LC_TODOS, LC_COLLATE, LC_CTYPE, LC_MENSAJES, LC_MONETARIO, LC_NUMERICO, LC_TIME
Estas variables especifican un entorno local en el que se ejecuta el shell. El caparazón elige el
codificación de entrada / salida de archivos, el idioma del mensaje de error, etc.
configuración regional especificada.

A menos que el shell sea interactivo y no esté en el modo POSIXly correcto, el valor de
el LC_CTYPE La variable se considera solo cuando se inicia el shell. Una vez que el caparazón
se ha inicializado, cambiando el valor de LC_CTYPE no tendrá ningún efecto en el
Comportamiento de Shell.

LINENO
El valor de esta variable se establece automáticamente en el número de línea en el que
El comando actualmente ejecutado aparece en el archivo.

En el shell interactivo, el número de línea se restablece a 1 cada vez que el shell lee
y ejecuta un comando.

Si asigna o elimina esta variable, ya no proporcionará números de línea.

LÍNEAS
Esta variable especifica la altura (el número de líneas de caracteres) del terminal
pantalla. El valor afecta la visualización de la edición de líneas.

MAIL
Esta variable especifica el nombre de la ruta de un archivo que se comprueba en la comprobación de correo.

CORREO
Esta variable especifica la frecuencia con la que el shell debe comprobar el correo. El valor tiene
para ser especificado como un entero positivo en segundos. El valor se inicializa al
valor predeterminado de 600 cuando se inicia el shell.

RUTA DE CORREO
Esta variable especifica las rutas de acceso de los archivos que se comprueban en la comprobación de correo.

NLSPATH
El estándar POSIX prescribe que el valor de esta variable especifica el nombre de la ruta
plantillas de archivos de datos de mensajes dependientes de la configuración regional, pero yash no las usa.

viejo
Esta variable se establece en la ruta del directorio de trabajo anterior cuando cambia el
directorio de trabajo utilizando el cd u otros componentes integrados. Esta variable es exportada por
predeterminada.

OPTARG
Cuando el getopts incorporado analiza una opción que toma un argumento, el argumento
Se asigna un valor a esta variable.

OPTAR
El valor de esta variable especifica el índice de una opción que se va a analizar.
por la siguiente ejecución incorporada de getopts. Esta variable se inicializa a 1 cuando
se inicia shell.

TRAYECTORIA
Esta variable especifica las rutas que se buscan para un comando en la búsqueda de comandos.

PPID
El valor de esta variable es el ID de proceso del proceso padre del shell, que
es un número entero positivo. Esta variable se inicializa cuando se inicia el shell. los
el valor no cambia cuando el shell crea un nuevo subnivel.

PROMPT_COMMAND
El shell interpreta y ejecuta el valor de esta variable antes de imprimir cada
símbolo del sistema si el shell es interactivo y no está en el modo POSIXly correcto.
Este comportamiento es equivalente a ejecutar el comando eval -i --
"$ {PROMPT_COMMAND-}" antes de cada símbolo del sistema, pero su estado de salida no
afectar la expansión de la ? parámetro especial en el siguiente comando.

PS1
Esta variable especifica la cadena del símbolo del sistema principal impresa por un
cascarón. Consulte Solicitudes para conocer el formato del valor de la variable. El valor se inicializa
a \$ cuando se inicia el shell. (En el modo POSIXly-correct, el valor inicial
es cualquiera $ or # dependiendo de si el ID de usuario efectivo del proceso de shell
es cero o no.)

PS1R
Esta variable especifica la cadena de solicitud auxiliar impresa a la derecha del
cursor cuando ingresa una línea de comando en un shell interactivo. Consulte las indicaciones para
formato del valor de la variable.

PS1S
Esta variable especifica el estilo de fuente de las cadenas de comandos que ingresa a un
shell interactivo. Consulte Solicitudes para conocer el formato del valor de la variable.

PS2
Esta variable es como la PS1 variable, pero se utiliza para la segunda y
siguientes líneas de un comando que tiene más de una línea. Consulte las indicaciones para
formato del valor de la variable. El valor se inicializa a > cuando el caparazón es
comenzado.

PS2R
Esta variable es como la PS1R variable, pero se utiliza cuando PS2 se utiliza. Ver
Solicita el formato del valor de la variable.

PS2S
Esta variable es como la PS1S variable, pero se utiliza cuando PS2 se utiliza. Ver
Solicita el formato del valor de la variable.

PS4
El valor de esta variable se imprime antes de cada salida de seguimiento de comando cuando el
La opción xtrace está habilitada. El valor está sujeto a la expansión de parámetros, comando
sustitución, expansión aritmética. También puede utilizar notaciones de barra invertida si el
shell no está en el modo POSIXly correcto. El valor se inicializa a + cuando
se inicia shell.

PS4S
Esta variable es como la PS1S variable, pero se utiliza cuando PS4 se utiliza. Usted puede
utilice esta variable para modificar el estilo de fuente de la salida de seguimiento del comando.

PWD
El valor de esta variable es la ruta del directorio de trabajo actual. los
El valor se establece cuando se inicia el shell y se restablece cada vez que el directorio de trabajo
es cambiado por el cd u otros incorporados. Esta variable se exporta de forma predeterminada.

AZAR
Puede utilizar esta variable para obtener números aleatorios. El valor de esta variable es un
entero aleatorio uniformemente distribuido entre 0 y 32767 (inclusive). Conseguirás
un número diferente cada vez que se expande la variable.

Puede establecer la "semilla" de números aleatorios asignando un entero no negativo a
La variable.

Si elimina esta variable, ya no funcionará como generador de números aleatorios.
Si el shell se invocó en el modo POSIXly correcto, esta variable no funciona
como generador de números aleatorios.

PLAZO
Esta variable especifica el tipo de terminal en el que se ejecuta el shell.
El valor afecta el comportamiento de la edición de líneas.

YASH_AFTER_CD
El shell interpreta y ejecuta el valor de esta variable después de cada vez que
El directorio de trabajo de shell es cambiado por el cd u otros componentes integrados. Este comportamiento
es equivalente a ejecutar el comando eval -i -- "$ {YASH_AFTER_CD-}" después de la
se cambió el directorio.

YASH_LOADPATH
Esta variable especifica directorios en los que el punto integrado busca un archivo de secuencia de comandos.
Se puede especificar más de un directorio separándolos por dos puntos como el
TRAYECTORIA variable. Cuando se inicia el shell, esta variable se inicializa en el
nombre de ruta del directorio donde se instalan los archivos de script comunes.

YASH_LE_TIMEOUT
Esta variable especifica cuánto tiempo debe esperar el shell para una próxima entrada posible
desde el terminal cuando encontró una secuencia de control ambigua mientras
edición de líneas. El valor debe especificarse en milisegundos. Si no define
esta variable, se asume el valor predeterminado de 100 milisegundos.

YASH_VERSION
El valor se inicializa al número de versión del shell cuando el shell está
comenzado.

Matrices
An matriz es una variable que contiene cero o más cadenas. Los valores de cadena de un
Las matrices se identifican mediante números naturales (como parámetros posicionales).

Puede asignar valores a una matriz utilizando un comando simple, así como la matriz
incorporado. Puede utilizar el dispositivo integrado desarmado para eliminar matrices.

Las matrices no se pueden exportar como matrices. Cuando se exporta una matriz, se trata como
variable normal cuyo valor es una concatenación de todos los valores de la matriz, cada uno separado
por dos puntos.

Las matrices no se admiten en el modo POSIXly-correct.

WORD EXPANSIONES


Word expansión es la sustitución de parte de una palabra por otra cadena en particular. Existen
siete tipos de expansiones de palabras:

1. Expansión de Tilde

2. Ampliación de parámetros

3. Sustitución de mando

4. Expansión aritmética

5. Expansión de la abrazadera

6. División de campo

7. Expansión de nombre de ruta (globbing)

Estos tipos de expansiones se realizan en el orden especificado anteriormente.

La expansión de tilde, la expansión de parámetros, la sustitución de comandos y la expansión aritmética son
a través de four expansiones.

tilde expansión
In tilde expansión, partes de palabras que comienzan con tilde (~) se sustituyen por
nombres de ruta particulares. La parte de cada palabra que se sustituye es desde el principio de
la palabra, que es una tilde, hasta (pero sin incluir) la primera barra (/) en la palabra. Si
la palabra no contiene una barra, se sustituye la palabra completa. Si cualquier personaje en el
se cotiza la parte sustituida, la expansión de tilde no se realiza en la palabra.

Los resultados de la expansión están determinados por el formato de la parte sustituida:

~
Una sola tilde se sustituye por el valor de la INICIO variable.

~nombre de usuario
Una tilde seguida de un nombre de usuario se sustituye por la ruta de acceso de la casa del usuario.
directorio.

~+
~+ se sustituye por el valor de la PWD variable.

~-
~- se sustituye por el valor de la viejo variable.

~+n, ~-n
dónde n es un número entero no negativo. Este tipo de expansión de tilde produce el nombre de ruta de
un directorio del cual ~+n or ~-n es el índice en la pila de directorios.

Cuando la expansión de tilde se realiza sobre el valor de una asignación de variable que ocurre durante
ejecución de un comando simple, el valor se considera como una lista de palabras separadas por dos puntos
y esas palabras están sujetas a expansión de tilde. Por ejemplo, la asignación de variable

VAR =~ / a:~ / b:~ / c

es equivalente a

VAR = / inicio / foo / a: / inicio / foo / b: / inicio / foo / c

si el valor de INICIO variable es / home / foo.

El estándar POSIX no prescribe cómo debe comportarse el shell cuando se encuentra con un
error durante la expansión de tilde (por ejemplo, cuando el INICIO variable no está definida). Yash en silencio
ignora cualquier error durante la expansión de tilde; la parte de la palabra que sería sustituida
se deja intacto.

En el modo POSIXly-correct, la expansión de tilde admite los formatos de ~ y ~nombre de usuario solamente.

Parámetro expansión
Parámetro expansión se expande al valor de un parámetro.

La sintaxis de la expansión de parámetros típica y simple es ${parámetro}, que se expande a la
valor del parámetro cuyo nombre es parámetro. Puede omitir las llaves (p. Ej., $parámetro)
if

· parámetro es un parámetro especial,

· parámetro es un parámetro posicional cuyo índice es un número entero de un dígito, o

· parámetro es una variable y la expansión del parámetro no va seguida de un carácter
que se puede utilizar como parte de un nombre de variable. Por ejemplo, $ {ruta} -nombre es equivalente
a $ nombre-ruta, pero $ {ruta} nombre y $ nombre de ruta son diferentes.

If parámetro no es un parámetro especial, un parámetro posicional y una variable, es un
error de sintaxis. (Algunas shells distintas de yash pueden tratar este caso como un error de expansión).

Si la opción de desarmado está deshabilitada y la parámetro es una variable indefinida, es una
error de expansión. Si la opción desarmada está habilitada, una variable indefinida se expande al
cuerda vacía.

La sintaxis más compleja de la expansión de parámetros permite modificar el valor de un parámetro.

Expansión de parámetros
${ prefijo parámetro índice modificador }

Los espacios en la definición de sintaxis anterior son solo para facilitar la lectura y deben omitirse.
Puedes omitir prefijo, índice, y/o modificador.

Prefijo
La prefijo, si lo hay, debe ser un signo de almohadilla (#). Si una expansión de parámetro tiene el prefijo,
el resultado de la expansión es el número de caracteres en el valor que esta expansión
expandirse sin el prefijo.

Parámetro nombre
El nombre del parámetro (parámetro) debe ser

· Un nombre de un parámetro especial, parámetro posicional o variable; o

· Otra expansión de parámetros, sustitución de comandos o expansión aritmética.

La expansión del parámetro se expande al valor de la parámetro. Si parámetro es un
variable de matriz, los valores de la matriz se dividen en campos como el @ parámetro especial
a menos que el índice [*] está especificado.

If parámetro es otra expansión, se llama anidado expansión. Expansión anidada
no se puede utilizar en el modo POSIXly correcto. Los tirantes{ }) de un parámetro anidado
la expansión no se puede omitir.
Index.sp Un índice permite extraer parte del valor del parámetro (o algunos de los valores de la matriz).

Home
[word1]

[word1,word2]

dónde word1 y word2 se analizan de la misma manera que los tokens normales, excepto que son
siempre delimitado por , or ] y puede contener caracteres de espacio en blanco.

Si hay una índice en una expansión de parámetros, se interpreta de la siguiente manera:

1. Palabras word1 y word2 están sujetos a expansión de parámetros, sustitución de comandos y
expansión aritmética.

2. Si no hay word2 y si word1 se expande a uno de *, @ y #, entonces ese es el
interpretación de índice y no se da el siguiente paso.

3. Los resultados de los pasos anteriores (la ampliación word1 y word2) son interpretados y
evaluado como una expresión aritmética de la misma manera que en la expansión aritmética.
Los enteros resultantes son la interpretación de índice. Si los resultados no son
enteros, es un error de expansión. Si no hay word2, se asume que word2 is
igual a word1.

If parámetro es una variable de matriz, la índice especifica la parte de la matriz. Si parámetro
es el * or @ parámetro especial, el índice especifica el rango de índice de posicional
parámetros. En otros casos, el índice especifica el rango de índice de una subcadena del
valor del parámetro que se está expandiendo. En todos los casos, el rango especificado de la matriz
valores, parámetros posicionales o valor de parámetro permanece en los resultados de la expansión
y se eliminan otros valores.

Si la interpretación de índice es uno o dos números enteros, se aplican las siguientes reglas:

· Si el valor del índice interpretado es negativo, envuelve en torno a. Por ejemplo, el índice
el valor de -1 corresponde al último valor / carácter.

· No es un error cuando el valor del índice está fuera de rango. Valores / caracteres existentes
dentro del rango se seleccionan.

· Si la interpretación de cualquiera word1 or word2 es 0, el rango se asume vacío y
la expansión no da como resultado nada.

Si la interpretación de índice es uno de los *, @ y #, se trata de la siguiente manera:

*
If parámetro es una matriz, todos los valores de la matriz se concatenan en un solo
cuerda. Si parámetro son los * or @ parámetro especial, todos los parámetros posicionales son
concatenados en una cadena. Ver la descripción del * parámetro especial de cómo el
Los valores / parámetros posicionales se separan en la cadena de resultados. En otros casos, el
interpretación de índice se trata como si la interpretación fueran los dos enteros 1 y
-1.

@
La interpretación de índice se trata como si la interpretación fueran los dos enteros 1
y 1.

#
La interpretación de la #índice es especial porque no especifica simplemente un
distancia. En cambio, los valores expandidos se sustituyen por el recuento.

If parámetro es una matriz, el resultado de la expansión de este parámetro será el número de
valores en la matriz que se está expandiendo. Si parámetro son los * or @ parámetro especial, el
El resultado será el número de parámetros posicionales actuales. De lo contrario, el resultado
sea ​​el número de caracteres del valor que se está expandiendo.

Si una expansión de parámetro no contiene un índice, se supone que es [@]. En la
Modo POSIXly correcto, índice no se puede especificar.

Ejemplo 1. Expansión of a normal variable

Los siguientes comandos imprimirán la cadena abecedario:

var = '123ABC789'
echo "$ {var [4,6]}"

Ejemplo 2. Expansión of posicional parámetros

Los siguientes comandos imprimirán la cadena 2 3 4:

conjunto 1 2 3 4 5
echo "$ {* [2, -2]}"

Ejemplo 3. Expansión of an matriz

Los siguientes comandos imprimirán la cadena 2 3 4:

matriz = (1 2 3 4 5)
echo "$ {matriz [2, -2]}"

Cambiar
Puede modificar el valor que se expandirá utilizando modificadores:

-palabra clave
Si el nombre del parámetro (parámetro) es una variable indefinida, el parámetro
la expansión se expande a palabra clave. No se trata como un error si la opción desarmada
está desactivado.

+palabra clave
Si el nombre del parámetro (parámetro) es una variable existente, la expansión del parámetro
se expande a palabra clave. No se trata como un error si la opción desarmada es
discapacitado.

=palabra clave
Si el nombre del parámetro (parámetro) es una variable indefinida, palabra clave está asignado a
la expansión de la variable y el parámetro se expande a palabra clave. No se trata como
un error si la opción de desarmar está deshabilitada.

?palabra clave
Si el nombre del parámetro (parámetro) es una variable indefinida, palabra clave se imprime como un
mensaje de error al error estándar. Si palabra clave está vacío, el mensaje de error predeterminado
se imprime en su lugar.

:-palabra clave, :+palabra clave, :=palabra clave, :?palabra clave
Estos son similares a los cuatro tipos de modificadores anteriores. La única diferencia es
eso si parámetro existe y tiene un valor vacío, también se trata como un
variable indefinida.

#palabra clave
El shell realiza una comparación de patrones con el valor que se está expandiendo,
usando palabra clave como patrón. Si palabra clave coincide con el comienzo del valor, la coincidencia
parte se elimina del valor y la otra parte permanece como resultado de la expansión.
Se utiliza la coincidencia más corta si es posible más de una coincidencia.

##palabra clave
Esto es similar a #palabra clave encima. La única diferencia es que la coincidencia más larga
se utiliza si es posible más de una coincidencia.

%palabra clave
Esto es similar a #palabra clave encima. La única diferencia es que la coincidencia se intenta en
al final del valor en lugar de al principio: si palabra clave coincide con el final de la
valor, la parte coincidente se elimina del valor y la otra parte permanece como
resultados de expansión.

%%palabra clave
Esto es similar a %palabra clave encima. La única diferencia es que la coincidencia más larga
se utiliza si es posible más de una coincidencia.

/word1/word2
El shell realiza una comparación de patrones con el valor que se está expandiendo,
usando word1 como patrón. Si word1 coincide con cualquier parte del valor, la coincidencia
parte se reemplaza con word2 y el valor total después del reemplazo permanece como
resultados de expansión. Si word1 coincide con más de una parte del valor, solo el
se reemplaza la primera parte. La coincidencia más corta se reemplaza si hay más de una
la coincidencia es posible para el mismo punto de partida en el valor.

Este modificador no se puede utilizar en el modo POSIXly correcto.

/#word1/word2
Esto es similar a /word1/word2 encima. La única diferencia es que word1 cerillas
solo al comienzo del valor que se expande.

/%word1/word2
Esto es similar a /word1/word2 encima. La única diferencia es que word1 cerillas
solo al final del valor que se expande.

//word1/word2
Esto es similar a /word1/word2 encima. La única diferencia es que todos coinciden
las piezas se reemplazan si word1 coincide con más de una parte del valor.

:/word1/word2
Esto es similar a /word1/word2 encima. La única diferencia es que el valor es
reemplazado solo cuando word1 coincide con el valor total.

En todos los tipos de modificadores anteriores, las palabras están sujetas a las cuatro expansiones cuando (y
solo cuando) se utilizan.

If parámetro es una variable de matriz o la @ or * parámetro especial, los modificadores afectan
cada valor de la matriz o todos los parámetros posicionales.

Comando sustitución
Comando sustitución se expande a la salida de los comandos especificados.

Sustitución de mando
$(comandos)

`comandos`

Cuando se evalúa la sustitución de comandos, comandos son ejecutados por una subcapa con salida
canalizado a la cáscara. Cuando el comandos terminado, se sustituye la sustitución del comando
con la salida del comandos. Cualquier carácter de nueva línea final en la salida es
ignorado

Cuando ordenan la sustitución de la forma $(comandos) se analiza, el comandos son analizados
cuidadosamente para que los comandos complejos, como la sustitución de comandos anidados, se analicen
correctamente. Si comandos Empezar con (, deberías poner un espacio antes comandos de manera que la
la sustitución completa de comandos no se confunde con la expansión aritmética. Si el caparazón está en
el modo POSIXly-correctamente, el comandos se analizan cada vez que se realiza la sustitución del comando
expandido; de lo contrario, comandos se analizan solo cuando se analiza la sustitución del comando.

Si la sustitución de comandos es de la forma `comandos`, comandos no se analizan cuando el
Se analiza la sustitución de comandos. El fin de comandos es detectado por la primera cita inversa
personaje (`) después del comienzo de comandos que no está citado por una barra invertida.
Citas inversas que forman parte de comandos (normalmente utilizado para la sustitución de comandos anidados) debe
ser citado por barras invertidas. los comandos se analizan cada vez que se realiza la sustitución del comando
expandido.

Aritmética expansión
Aritmética expansión evalúa una expresión aritmética y se expande al valor de la
expresión.

Expansión aritmética
PSexpresión))

Cuando se expande la expansión aritmética, la expresión está sujeto a expansión de parámetros,
sustitución de comandos y expansión aritmética (anidada). los expresión se analiza en
(casi) de la misma manera que una expresión del lenguaje de programación C.

Yash permite que una expresión sea un número entero (del tipo largo en C) o un
número de coma flotante (del tipo doble en C). Una operación con números enteros produce un
entero y una operación que involucra un número de punto flotante produce un número de punto flotante.
En el modo POSIXly-correct, solo puede usar números enteros.

Los siguientes operadores están disponibles (en orden de precedencia):

1. ( )

2. ++ - (operadores de sufijo)

3. ++ - + - ~! (operadores de prefijo)

4. * /%

5. +- (operadores binarios)

6. << >>

7. << = >> =

8. ==! =

9. &

10. ^

11. |

12. &&

13. ||

14. ? :

15. = * = / =% = + = - = << = >> = & = ^ = | =

La ++ y -- Los operadores no se pueden utilizar en el modo POSIXly correcto.

Una expresión atómica puede ser un literal entero, un literal numérico de punto flotante,
y una variable. Los literales se analizan de la misma manera que en C.Un literal entero octal
comienza con 0y hexadecimal con 0x. Un literal numérico de punto flotante puede tener un
exponente (es decir 1.23e + 6). Una variable con un valor no numérico dará como resultado un error cuando
analizado como un número.

En el modo POSIXly-correct, las variables siempre se analizan como números. De lo contrario, las variables
se analizan solo cuando se utilizan como números en el cálculo. Quedan las variables sin analizar
intacto.

establecer + o posixly-correcto
foo = bar
echo $ ((0? foo: foo)) # imprime "barra"
echo $ ((foo + 0)) # error

Abrazadera expansión
Abrazadera expansión se expande a varias palabras divididas con porciones anteriores y posteriores
duplicado para cada palabra dividida. La expansión de la riostra se expande solo cuando la riostra-expand
La opción está habilitada.

Expansión de llaves separadas por comas
{word1,word2, ...,palabra}

Expansión de la riostra de rango
{comienzo..final}

{comienzo..final..delta}

La expansión de llaves separadas por comas se expande a cada palabra separada por comas. Por ejemplo,
a {1,2,3} b se expande a las tres palabras a1b, a2b y a3b.

La expansión de la llave de rango se expande a números enteros en el rango definido por comienzo y final.
La diferencia entre cada entero se puede definir mediante delta. Si comienzo Es mas grande que final,
los resultados estarán en orden descendente. Cuando ..delta se omite, el valor predeterminado es 1 o -1. Para
ejemplo, a {1..3} b se expande a las tres palabras a1b, a2b y a3b; y a {1..7..2} b En el correo electrónico “Su Cuenta de Usuario en su Nuevo Sistema XNUMXCX”.
cuatro palabras a1b, a3b, a5b y a7b.

Se pueden usar múltiples expansiones de corsé en una palabra. Las expansiones de tirantes también se pueden anidar.
Puede citar llaves y / o comas para evitar que se consideren una expansión de llaves.

Cualquier error en la expansión de llaves se ignora en silencio.

Campo terrible
In campo terrible, las palabras se dividen en separadores predefinidos.

La división de campos solo puede ocurrir dentro de partes de palabras que resultaron del parámetro
expansión, sustitución de comandos y expansión aritmética que no están entre
comillas dobles. Resultados de expansión del @ los parámetros especiales son excepcionalmente
dividir incluso entre comillas dobles.

Los separadores utilizados en la división de campos se definen por el valor de la IFS variable. Si el
variable no existe, se asume que el valor son los tres caracteres de espacio, tabulación,
y nueva línea.

Caracteres incluidos en el valor del IFS las variables se llaman IFS personajes. IFS
los caracteres que son espacios, tabulaciones y nuevas líneas se denominan IFS espacio en blanco y otros IFS
los personajes se llaman IFS espacio no en blanco.

La división del campo se realiza de la siguiente manera:

1. El caparazón busca palabras para puntos de división. Un punto de división es uno o más IFS adyacentes
caracteres dentro de las porciones de palabras que están sujetas a división de campos. El seguimiento
se toman medidas para cada punto de división encontrado.

2. Si el punto de división incluye uno o más espacios en blanco IFS, cualquier espacio en blanco IFS en
el punto de división se ignora y la palabra se divide en cada espacio no en blanco IFS en el
punto de división.

3. Si el punto de división no incluye espacios IFS que no sean espacios en blanco, la palabra se divide en la división.
punto a menos que esté al principio o al final de la palabra.

4. Los puntos de división se eliminan de los resultados.

Nota:
Las palabras no se dividen en absoluto cuando el valor del IFS la variable está vacía.

Nombre de ruta expansión
Nombre de ruta expansión realiza la coincidencia de patrones y se expande a los nombres de ruta que coinciden con el
patrón.

Una palabra sometida a expansión de nombre de ruta se trata como un patrón. Si uno o más nombres de ruta
se encuentran que coinciden con el patrón, los nombres de ruta se convierten en el resultado de la
expansión de nombre de ruta.

La expansión del nombre de ruta no se realiza cuando la opción global está deshabilitada.

El shell busca en directorios legibles nombres de rutas coincidentes. Los directorios ilegibles son
silenciosamente ignorado.

Las siguientes opciones afectan el comportamiento de la expansión del nombre de ruta:

globo nulo
Esta opción afecta el resultado de la expansión del nombre de ruta cuando no hay nombres de ruta coincidentes.
fundar. Si está habilitado, el resultado es ninguna palabra. Si está deshabilitado, el resultado es el original.
palabra patrón.

caso-glob
Esta opción especifica la distinción entre mayúsculas y minúsculas en la coincidencia. Si está habilitado, la coincidencia de patrones es
hecho con distinción entre mayúsculas y minúsculas.

punto-glob
Esta opción afecta la coincidencia de nombres de archivo que comienzan con un punto (.). Si está deshabilitado, un
el punto al comienzo de un nombre de archivo no coincide con los patrones de comodines (? y *) o
expresiones de corchetes. Si está habilitado, no existe un tratamiento especial de períodos.

marca-dirs
Si está habilitado, cada nombre de ruta resultante que sea un nombre de directorio tiene el sufijo de una barra
(/).

globo extendido
Esta opción habilita la extensión. (Vea abajo)

Cualquier error en la expansión del nombre de ruta se ignora silenciosamente. Si la palabra es un patrón no válido,
simplemente se convierte en el resultado. Los resultados dependen de la opción null-glob cuando no hay coincidencias
se encuentran los nombres de ruta.

La coincidencia de patrones se realiza para cada nombre de archivo (o componente de nombre de ruta) de nombres de ruta. La cáscara
omite la coincidencia de patrones literales que no contienen comodines ni expresiones entre corchetes. Como un
resultado, los patrones / * / foo y / * / fo [o] puede producir diferentes resultados de expansión cuando el
la opción case-glob está deshabilitada; por ejemplo, el patrón / * / fo [o] coincide con el nombre de la ruta
/ bar / FOO pero el patrón / * / foo no lo hace porque se omite la coincidencia foo.

Extension in ruta expansión
Los siguientes patrones se pueden usar cuando la opción de globo extendido está habilitada.

**
El directorio se busca de forma recursiva y el patrón coincide con cualquier número de
nombres de archivo de directorio (cada uno separado por una barra). Cualquier directorio cuyo nombre comience
con un punto se excluye de la búsqueda. Por ejemplo, el patrón dir / ** / archivo can
coincidir con los nombres de ruta dir / archivo, dir / foo / archivo, dir / a / b / c / archivo, etc.

Este patrón no es efectivo cuando aparece al final de todo el patrón (es decir,
foo / bar / **).

. **
Este patrón es como **, pero se buscan todos los directorios, incluidos los que tienen un
nombre que comienza con un punto.

***
Este patrón es como **, pero si se encuentra un enlace simbólico a un directorio durante
búsqueda recursiva, el directorio también se busca de forma recursiva.

. ***
Este patrón es como ***, pero se buscan todos los directorios, incluidos los que tienen un
nombre que comienza con un punto.

PATRÓN PAREO NOTACIÓN


Patrón de Costura pareo notación es una sintaxis de . que representan conjuntos particulares de
instrumentos de cuerda. Cuando se incluye una cuerda en el conjunto de cuerdas que representa un patrón, el patrón
se dice que es partido la cuerda. Si un patrón coincide con una cadena o no se define como
de la siguiente manera.

Normal personajes
Un carácter que no se cita o cualquiera de los caracteres especiales definidos a continuación es un carácter normal.
personaje, que coincide con el personaje en sí.

Por ejemplo, el patrón abecedario coincide con la cuerda abecedarioy no otras cadenas.

Carácter único comodín
El personaje ? coincide con cualquier carácter.

Por ejemplo, el patrón C.A coincide con cualquier cadena de tres caracteres que comience con a y
termina con c, Tales como aac, abecedario y C.A.

Multi-carácter comodín
El personaje * coincide con cualquier cadena (de cualquier longitud, incluida la cadena vacía).

Por ejemplo, el patrón C.A coincide con cualquier cadena que comience con a y termina con c, tal
as ac, abecedario y a; xyz; c.

Soporte Para Celular expresión
Un patrón entre corchetes ([ y ]) Es un soporte expresión. Un soporte
La expresión debe tener al menos un carácter entre corchetes. Los personajes entre
los corchetes se interpretan como un soporte expresión patrón, que es un definido a continuación
notación especial para la expresión de corchetes. Un patrón de expresión de corchetes representa un conjunto de
caracteres. La expresión entre corchetes coincide con cualquiera de los caracteres del conjunto
El patrón de expresión de corchetes representa.

Si el soporte de apertura ([) va seguido de un signo de exclamación (!), la exclamación no es
tratado como parte del patrón de expresión de corchetes y la expresión de corchetes completa en su lugar
coincide con un personaje que es No incluido en el conjunto el patrón de expresión de corchetes
representa. Si el corchete de apertura va seguido de un signo de intercalación (^), se trata como un
signo de exclamación como el anterior (pero las conchas distintas de yash pueden tratar el signo de intercalación de manera diferente).

Si el corchete de apertura (o la siguiente exclamación o signo de intercalación, si corresponde) va seguido de un
corchete de cierre]), se trata como parte del patrón de expresión de corchetes en lugar de
el final de la expresión de corchetes. No puede citar caracteres en la expresión entre corchetes
patrón porque la cita se trata antes que la expresión entre corchetes.

Un corchete de apertura en un patrón se trata como un carácter normal si no es el
comienzo de una expresión válida entre corchetes.

Normal personajes (en soporte expresión patrón)
Un carácter que no es ninguno de los caracteres especiales definidos a continuación es un carácter normal,
que representa al personaje en sí.

Por ejemplo, el patrón de expresión de corchetes abecedario representa el conjunto de los tres caracteres
a, b y c. La expresión de corchetes [a B C] por lo tanto, coincide con cualquiera de los tres caracteres.

Autonomía expresiones
Un guión precedido y seguido de un carácter (o símbolo de clasificación) es un distancia expresión,
que representa el conjunto de los dos caracteres y todos los caracteres entre los dos en el
orden de colación. A colación solicite es un orden de caracteres que se define en la configuración regional
datos.

Si un guión va seguido de un corchete de cierre (]), el soporte se trata como el final del
expresión entre corchetes y el guión como carácter normal.

Por ejemplo, la expresión de rango 3 - 5 representa el conjunto de los tres caracteres 3, 4 y
5. La expresión de corchetes [3-5-] por lo tanto, coincide con uno de los cuatro caracteres 3, 4, 5 y
-.

Cotejando símbolos
A cotejando símbolo permite que más de un carácter sea tratado como un solo carácter en
pareo. Un símbolo de clasificación se compone de uno o más caracteres encerrados por el símbolo especial
soportes [. y .].

Uno o más caracteres que se tratan como un solo carácter en la coincidencia se denominan
cotejando elementos. Precisamente, un patrón de expresión de corchetes representa un conjunto de clasificación
elementos y una expresión de corchetes coincide con un elemento de clasificación en lugar de un carácter, pero
aquí no los diferenciamos por brevedad.

Por ejemplo, la combinación de caracteres "ch" se trató como un solo carácter en la
lengua española tradicional. Si esta combinación de caracteres está registrada como clasificación
elemento en los datos de la configuración regional, la expresión de corchetes [[.ch.] df] coincide con uno de ch, d y f.

Equivalencia privadas
An equivalencia clase representa un conjunto de caracteres que se consideran equivalente. La
la clase de equivalencia está formada por un carácter (o más precisamente, un elemento de clasificación)
encerrado por los corchetes especiales [= y =].

Una clase de equivalencia representa el conjunto de caracteres que consta del carácter
encerrado por los corchetes y los caracteres que están en la misma clase de equivalencia primaria
como el carácter adjunto. El shell consulta los datos de la configuración regional para obtener la definición de
clases de equivalencia en la configuración regional actual.

Por ejemplo, si los seis caracteres a, à, á, â, ã, ä se definen para estar en el mismo primario
clase de equivalencia, las expresiones de corchetes [[= a =]], [[= à =]] y [[= á =]] coincidir con uno de los
seis.

Caracter privadas
A personaje clase representa un conjunto predefinido de caracteres. Se compone una clase de personaje
de un nombre de clase entre corchetes especiales [: y :]. El shell consulta la configuración regional.
datos para qué clase pertenece un personaje.

Las siguientes clases de caracteres se pueden utilizar en todas las configuraciones regionales:

[:más bajo:]
conjunto de letras minúsculas

[:superior:]
conjunto de letras mayúsculas

[:alfa:]
conjunto de letras, incluido el [:más bajo:] y [:superior:] clases.

[:dígito:]
conjunto de dígitos decimales

[: xdigit:]
conjunto de dígitos hexadecimales

[: alnum:]
conjunto de letras y dígitos, incluido el [:alfa:] y [:dígito:] clases.

[:blanco:]
conjunto de caracteres en blanco, sin incluir el carácter de nueva línea

[:espacio:]
conjunto de caracteres de espacio, incluido el carácter de nueva línea

[: puntuar:]
conjunto de puntuaciones

[:impresión:]
conjunto de caracteres imprimibles

[: cntrl:]
conjunto de caracteres de control

Por ejemplo, la expresión de corchetes [[:inferior superior:]] coincide con minúsculas o mayúsculas
personaje. Además de las clases enumeradas anteriormente, se pueden usar otras clases dependiendo de
la definición de la configuración regional actual.

REDIRECCION


Redirección es una función que puede utilizar para modificar descriptores de archivos de comandos. Mediante el uso
redirección, puede ejecutar comandos con su entrada / salida estándar conectada con
archivos o dispositivos distintos al terminal.

Puede realizar la redirección agregando operadores de redirección a un comando (comando simple o
comando compuesto) En un comando simple, los operadores de redireccionamiento pueden aparecer en cualquier
comando siempre que los tokens de operador estén separados de otros tokens. En un comando compuesto,
Los operadores de redirección deben aparecer al final del comando.

Los operadores de redirección se procesan antes de que se ejecute el cuerpo del comando. Más de uno
El operador de redirección en un comando se procesa en el orden de aparición. Redireccionamiento
Los operadores afectan solo al comando en el que aparecen, excepto cuando aparecen en un archivo ejecutivo.
incorporado sin operandos de comando. Es decir, los descriptores de archivo modificados por redirección son
restaurado después de que el comando haya terminado.

Un operador de redirección comienza con < or >. Operadores de redirección que comienzan con < afecta
la entrada estándar (descriptor de archivo 0) por defecto. Operadores de redirección que comienzan con >
afecta a la salida estándar (descriptor de archivo 1) de forma predeterminada. Para afectar a otro archivo
descriptor, puede prefijar un operador de redirección con un número entero no negativo; el
El operador afectará al descriptor de archivo especificado por el entero. El entero debe
inmediatamente preceden al < or > sin espacios en blanco en el medio. El entero no debe ser
citado, tampoco.

Redirección a archivos
El tipo más común de redirección es la redirección a archivos.

Redirección de entrada
< ficha

Redirección de salida
> ficha

>| ficha

>> ficha

Redirección de entrada y salida
<> ficha

La ficha está sujeto a las cuatro expansiones. También está sujeto a la expansión del nombre de ruta si
el caparazón es interactivo. El resultado de la expansión se trata como la ruta del archivo a
qué redirección se realiza. Si la expansión del nombre de ruta no da como resultado una sola
nombre de ruta, es un error.

En la redirección de la entrada, la entrada estándar se reemplaza con un descriptor de archivo que es
abierto para acceso de solo lectura al archivo de destino. Si el archivo de destino no se puede abrir para
acceso de solo lectura, es un error.

En la redirección de la salida, la salida estándar se reemplaza con un descriptor de archivo que es
abierto para acceso de solo escritura al archivo de destino. Si el archivo de destino no se puede abrir para
acceso de solo escritura, es un error. Si el archivo de destino no existe, se creará un nuevo archivo vacío.
creado y abierto. Si el archivo de destino ya existe, el archivo se abre de la siguiente manera:

· Para el >| operador, el archivo se vacía cuando se abre si es un archivo normal.

· Para el > operador, el comportamiento es el mismo que el >| operador si la opción clobber
está habilitado. Si la opción está deshabilitada y el archivo es un archivo normal, se trata como
un error.

· Para el >> operador, el archivo se abre para agregar; cualquier salida al archivo
El descriptor se adjunta al final del archivo.

En la redirección de entrada y salida, la entrada estándar se reemplaza con un descriptor de archivo
que está abierto para acceso de lectura y escritura al archivo de destino. Si el archivo no existe,
Se crea y abre un nuevo archivo vacío.

Enchufe redirección
Si el nombre de la ruta del archivo de destino tiene el formato / dev / tcp /host/Puerto or
/ dev / udp /host/Puerto y el archivo no se puede abrir de la manera habitual, se necesita un nuevo socket
abierto a la comunicación con el Puerto del host. La redirección reemplaza al
entrada o salida estándar con el descriptor de archivo al zócalo.

Se abre un socket de flujo para el formulario / dev / tcp /host/Puerto y un conector de datagrama para
la forma / dev / udp /host/Puerto. El protocolo realmente utilizado para la comunicación es
determinado por la biblioteca de sockets que usa el shell. Normalmente, los sockets de transmisión utilizan TCP y
Sockets de datagramas UDP.

En la redirección de sockets, el descriptor de archivo es legible y escribible independientemente de
el tipo de operador de redirección utilizado.

La redirección de sockets es la extensión de yash que no está definida en POSIX. Bash también tiene
redirección de socket como extensión.

Duplicación of presentar descriptores
La redirección permite duplicar o cerrar descriptores de archivos existentes.

Duplicación de descriptor de archivo
<& ficha

>& ficha

La ficha está sujeto a expansión como en la redirección a archivos, pero se trata como un archivo
descriptor en lugar de un nombre de ruta. Así, el expandido ficha debe ser un número entero no negativo.

La <& y >& Los operadores duplican el descriptor de archivo especificado por ficha al estándar
entrada y salida, respectivamente. (Los operadores pueden tener como prefijo un entero no negativo
para que el descriptor de archivo se duplique en un descriptor de archivo que no sea el estándar
entrada o salida.)

Si el expandido ficha es un solo guion en lugar de un entero no negativo, el archivo
el descriptor está cerrado en lugar de duplicado. Por defecto, el <& y >& los operadores cierran el
entrada y salida estándar, respectivamente, pero los operadores pueden tener el prefijo
entero no negativo para que se cierre otro descriptor de archivo.

En el modo POSIXly-correct, un descriptor de archivo debe ser legible cuando lo duplica el <&
operador y escribible cuando es duplicado por el >& operador.

Aquí documentos y este formulario. instrumentos de cuerda
Aquí documento y este formulario. cadena permitir la redirección a descriptores de archivos que leen cadenas
directamente especificado en los comandos de shell.

Aquí documenta
<< ficha

<< - ficha

Aquí cuerda
<< ficha

En un documento aquí o una cadena aquí, la entrada estándar se reemplaza con un archivo legible
descriptor. Cuando el comando lee del descriptor de archivo, leerá el contenido de
el documento / cadena aquí, que se define a continuación.

Cuando un operador de documento here (<< or << -) aparece en un comando, el shell lee el
contenido del documento aquí a partir de la siguiente línea. El contenido de aquí documentos
no se analizan ni se ejecutan como comandos. El ficha después de que el operando especifica un delimitador
que indica el final de los contenidos. (El ficha no está sujeto a ninguna expansión, pero
se procesa la cotización.) El contenido de este documento finaliza justo antes de la
primera línea que contiene el ficha solo. Al usar el << - operador, todos los caracteres de tabulación en
el comienzo de cada línea en el contenido del documento aquí se elimina y el delimitador
ficha puede ir precedido de tabulaciones.

Si hay más de un operador de documento aquí en una línea, el contenido de aquí
Los documentos se analizan en orden: El contenido del primer documento aquí comienza desde el
siguiente lnea y termina antes de la primera lnea que contiene el ficha que siguió al primero
operador. Justo después de esa línea, comienza el contenido del segundo documento aquí, y así
en.

El contenido de estos documentos se trata literalmente: los espacios en blanco, las pestañas, etc. permanecen como
es. La excepción es que, cuando el ficha no se cita en absoluto:

· Los contenidos están sujetos a expansión de parámetros, sustitución de comandos, aritmética
expansión.

· Una barra invertida en el contenido se trata como una cita si y solo si precede $, `,
", u otra barra invertida.

· Una barra invertida seguida de una nueva línea se trata como una continuación de línea.

Aquí en la cuerda, el ficha después de que el operador esté sujeto a expansión como en la redirección a
archivos. El resultado de la expansión se convierte en el contenido de la cadena here. Un personaje de nueva línea
se agrega automáticamente al final de aquí el contenido de la cadena.

Aquí, la cadena es la extensión de yash que no está definida en POSIX. Otras conchas como bash, ksh,
y zsh tienen la misma característica.

Tubería redirección
Tubería redirección permite abrir tuberías que se pueden utilizar para fines arbitrarios.

Redirección de canalización
>> | ficha

La ficha está sujeto a expansión como en la redirección a archivos, pero se trata como un archivo
descriptor en lugar de un nombre de ruta. Así, el expandido ficha debe ser un número entero no negativo.

La redirección de la canalización abre una nueva canalización. La salida estándar (o el descriptor de archivo
especificado antes que el operador, si lo hay) se reemplaza con el descriptor de archivo abierto para
escribiendo a la tubería. El descriptor de archivo especificado por ficha se reemplaza con el archivo
descriptor abierto para lectura de la tubería.

La redirección de canalización es la extensión de yash que no está definida en POSIX.

Proceso redirección
Proceso redirección crea una tubería conectada a otro comando.

Redirección de procesos
<(comando...)

>(comando...)

En la redirección del proceso, el comando especificado se ejecuta en una subcapa. Si el proceso
la redirección tiene la forma <(comando...), la salida estándar de comando está conectado con
una canalización a la entrada estándar del comando con el que está asociada la redirección. Si el
la redirección de procesos tiene la forma >(comando...), la entrada estándar de comando is
conectado con una tubería a la salida estándar del comando, la redirección es
asociado con.

La redirección de procesos es la extensión de yash que no está definida en POSIX. Bash y zsh tienen un
característica llamada sustitución de proceso, que utiliza la misma sintaxis que el proceso de yash
redirección, pero difiere de manera incompatible en el comportamiento.

COMANDO EJECUCIÓN


Esta sección describe cómo se ejecutan los comandos.

Ejecución of simples comandos
Un comando simple se ejecuta de la siguiente manera:

1. Todos los tokens del comando simple se expanden excepto para la asignación y la redirección.
tokens. Si ocurre un error durante la expansión, la ejecución del comando simple es
abortado con un estado de salida distinto de cero.

En los siguientes pasos, la primera palabra de los resultados de la expansión se denomina
comando nombre , y las otras palabras como comando argumentos. Si solo hay una palabra de
los resultados de la expansión, no hay palabras de argumento de comando. Si no hay ninguno de los
resultados de la expansión, tampoco hay un nombre de comando.

2. Se procesa la redirección especificada en el comando, si existe. La palabra token después de cada
Se expande el operador de redirección. Si ocurre un error durante el procesamiento de la redirección
(incluso al expandir la palabra token), la ejecución de este simple comando es
abortado con un estado de salida distinto de cero.

3. Se procesan las asignaciones especificadas en el comando, si las hay. Para cada tarea
token, el valor se expande y se asigna a la variable especificada. Si un error
ocurre durante las asignaciones (incluso al expandir los valores que se asignarán), la
la ejecución de este comando simple se cancela con un estado de salida distinto de cero.

· Si no hay un nombre de comando o el nombre denota una función o función incorporada especial,
las asignaciones son permanentes: los valores asignados permanecen después de que el comando ha
terminado (hasta que se reasigne la variable).

· De lo contrario, las asignaciones son temporales: los valores asignados solo duran
ejecución de este sencillo comando.

Las variables asignadas se exportan automáticamente cuando se especifica el nombre del comando
o la opción de exportación total está habilitada.

4. Si no hay un nombre de comando, la ejecución del comando finaliza con el estado de salida de cero.
(a menos que haya sustituciones de comandos en el comando, en cuyo caso la salida
el estado del comando simple es el de la última sustitución de comando ejecutada).

5. El comando que se va a ejecutar se determina mediante el algoritmo de búsqueda de comandos y
se ejecuta el comando.

· Si el comando es un comando externo, el comando se ejecuta creando un nuevo
subshell y llamando a la llamada al sistema "exec" en el subshell. El nombre del comando y
los argumentos se pasan al comando ejecutado. Las variables exportadas se pasan al
comando ejecutado como variables de entorno.

· Si el comando es integrado, el integrado se ejecuta con los argumentos del comando
Pasó al incorporado.

· Si el comando es una función, el contenido de la función se ejecuta con el
argumentos de comando como argumentos de función.

Si se ejecutó el comando, el estado de salida de este comando simple es el del
comando ejecutado. Si el algoritmo no pudo determinar un comando, no se ejecuta ningún comando.
ejecutado y el estado de salida es 127. Si el shell no pudo ejecutar el determinado
comando, el estado de salida es 126. Si el comando ejecutado fue anulado por una señal, el
El estado de salida es el número de señal más 384.

Nota:
En shells que no sean yash, el estado de salida puede ser diferente cuando el comando fue
asesinado por una señal, porque el estándar POSIX solo requiere que el estado de salida
ser "mayor que 128".
Si el shell no está en el modo POSIXly correcto y el algoritmo no pudo determinar
un comando, el comando eval -i -- "$ {COMMAND_NOT_FOUND_HANDLER-}" se evalúa. Durante
la ejecución del comando, los parámetros posicionales se establecen temporalmente en el nombre del comando
y argumentos que dieron lugar al primer paso. Cualquier variable local definida durante el
ejecución se eliminan cuando finaliza la ejecución. El MANEJADO la variable local es
definido automáticamente con el valor inicial siendo la cadena vacía. Si el MANEJADO
La variable tiene un valor no vacío cuando finaliza la ejecución de la cadena de comando,
el shell pretende que el comando se determinó y ejecutó con éxito. La salida
El estado del comando simple es el de la cadena de comando en este caso.

Comando Buscar
Un comando que se ejecuta en un comando simple está determinado por el nombre del comando usando
el siguiente algoritmo:

1. Si el nombre del comando contiene una barra inclinada (/), el nombre completo se trata como el
nombre de ruta de un comando externo. El comando externo se determina como el
comando ejecutado.

2. Si el nombre del comando es un elemento integrado especial, el elemento integrado se determina como
comando ejecutado.

3. Si el nombre del comando es el nombre de una función existente, la función es
determinado como el comando ejecutado.

4. Si el nombre del comando es un integrado semi-especial, el integrado se determina como el
comando ejecutado.

5. Si el nombre del comando es un integrado normal, el integrado se determina como el
comando ejecutado a menos que el shell esté en el modo POSIXly correcto.

6. El shell busca en la RUTA un comando ejecutado:

El valor de la TRAYECTORIA la variable está separada por dos puntos. Cada parte separada es
considerado como un nombre de ruta de directorio (un nombre de ruta vacío denota el trabajo actual
directorio). El shell busca en los directorios (en el orden de aparición) y
comprueba si algún directorio contiene directamente un archivo regular ejecutable cuyo nombre es
igual al nombre del comando. Si se encuentra un archivo de este tipo:

· Si el nombre del comando es el nombre de un integrado, el integrado se determina como
el comando ejecutado.

· De lo contrario, el archivo se determina como el comando ejecutado. (El archivo será
ejecutado como un comando externo.)

Si no se encuentra tal archivo, no se determina ningún comando como comando ejecutado.

Cuando el shell encuentra un archivo que coincide con el nombre del comando durante la búsqueda anterior, el
shell recuerda el nombre de la ruta del archivo si es una ruta absoluta. Cuando el algoritmo
anterior se usa para el mismo nombre de comando nuevamente, el shell omite la búsqueda y directamente
determina el comando a ejecutar. Si un archivo regular ejecutable ya no existe
en el nombre de ruta recordado, sin embargo, el shell busca de nuevo para actualizar el recordado
nombre de ruta. Puede administrar los nombres de ruta recordados utilizando el hash incorporado.

Terminación of el shell
El shell sale cuando alcanzó el final de la entrada y ha analizado y ejecutado todas las entradas.
comandos o cuando se ejecuta la salida incorporada. El estado de salida del shell es el de
el último comando que ejecutó el shell (o cero si no se ejecutaron comandos). La salida
el estado del shell siempre está entre 0 y 255 (inclusive). Si el estado de salida del
El último comando es 256 o mayor, el estado de salida del shell será el resto del
estado de salida dividido por 256.

Si un controlador de salida ha sido registrado por la trampa incorporada, el controlador se ejecuta simplemente
antes de que salga el caparazón. El estado de salida de los comandos ejecutados en el controlador no
afectar el estado de salida del shell.

Si un shell no interactivo encuentra uno de los siguientes errores, el shell inmediatamente
salidas con un estado de salida distinto de cero:

· No se puede analizar un comando debido a un error de sintaxis (excepto durante
inicialización).

· Se ejecuta una función incorporada especial en el modo POSIXly-correct y los argumentos del comando
no cumplen con la sintaxis de los argumentos incorporados.

· Se produce un error durante la redirección o asignación en un comando simple cuyo comando
name es una función incorporada especial y el shell está en el modo POSIXly correcto.

· Se produce un error durante la expansión (excepto durante la inicialización del shell).

Nota:
Algunos shells que no sean yash salen cuando no encuentran un comando para ejecutar en
búsqueda de comandos.

Funciones
Funciones permiten ejecutar un comando compuesto como un comando simple. Una función puede ser
definido por el comando de definición de función y ejecutado por un comando simple. Puedes usar
el desarmado incorporado para eliminar las definiciones de funciones.

No hay funciones predefinidas cuando se inicia yash.

Una función se ejecuta ejecutando su cuerpo, que es un comando compuesto. Mientras que la
la función se está ejecutando, los parámetros posicionales se establecen a los argumentos dados a la
función. Los antiguos parámetros posicionales se restauran cuando finaliza la ejecución de la función.

Local las variables
Local las variables son variables temporales que se definen en una función y existen
solo durante la ejecución de la función. Pueden definirse mediante la composición tipográfica incorporada. Ellos
se eliminan cuando finaliza la ejecución de la función.

Las variables locales pueden hide variables que ya se han definido antes de la función
había comenzado la ejecución. Una variable existente se vuelve inaccesible si una variable local
del mismo nombre se define en una función. La antigua variable vuelve a ser accesible
cuando finaliza la ejecución de la función.

No puede crear una variable local cuando no está ejecutando una función. Una variable normal es
creado si intenta hacerlo.

Comando ejecución entorno empresarial
El shell tiene las siguientes propiedades durante la ejecución.

· El directorio de trabajo

· Descriptores de archivos abiertos

· La máscara de creación de archivos (umask)

· El conjunto de señales cuyo controlador está configurado para "ignorar" (trampa)

· Variables de entorno

· Límites de recursos (ulimit)

Esas propiedades se heredan del invocador del shell al shell, y del
shell a cada comando externo ejecutado por el shell.

Las propiedades se pueden cambiar durante la ejecución del shell mediante comandos integrados,
asignaciones de variables, etc.

Subcapas
A subshell es una copia del proceso de shell. Las subcapas se utilizan en la ejecución de
agrupaciones, oleoductos, etc.

Las subcapas heredan funciones, alias, etc.definidos en la shell, así como
propiedades anteriores, ya que las subcapas son copias del proceso de shell. Excepciones notables
son:

· Las trampas registradas por la trampa incorporada se reinician todas en subcapas excepto unas
cuya acción se establece en "ignorar". (Vea abajo)

· El modo interactivo y el control de trabajos están desactivados en subcapas. Los trabajos no son
heredado por subcapas.

Las subcapas se ejecutan independientemente del shell original, por lo que los cambios de cualquier
las propiedades anteriores no afectan a las del shell original.

Nota:
Si el subshell contiene una sola trampa incorporada, algunos shells (pero no yash) pueden
no restablecer las trampas en la entrada a la subcapa.

INTERACTIVO MODO


La interactivo modo es un modo del shell destinado a la interacción directa con un usuario.
Si yash está en modo interactivo, se llama interactivo shell.

Si un shell se ejecuta en modo interactivo o no se determina en la invocación del
cáscara. Una vez que se ha iniciado el shell, el modo interactivo no se puede activar ni desactivar.

Cuando el shell es interactivo:

· Los scripts de inicialización se ejecutan durante la invocación.

· El shell busca correo e imprime un símbolo del sistema cuando lee un comando. Trabajo
Los cambios de estado también se informan si el control de trabajos está activo. Se puede utilizar la edición de líneas
dependiendo de la capacidad del terminal.

· Los comandos ejecutados se registran automáticamente en el historial de comandos.

· Si un comando ejecutado por el shell es eliminado por una señal que no sea SIGINT y
SIGPIPE, el shell informa del hecho al error estándar.

· El token de nombre de archivo está sujeto a la expansión del nombre de ruta en la redirección de archivos.

· La entrada estándar de un comando asíncrono no se redirige automáticamente a
/ dev / null (solo en el modo POSIXly correcto).

· El shell no sale cuando encuentra un error de sintaxis o expansión durante el comando
ejecución. (cf. Terminación del caparazón)

· El shell no sale cuando recibe la señal SIGINT, SIGTERM o SIGQUIT.

· La trampa incorporada puede cambiar un manejador de señales incluso si se ha establecido el manejador
para "ignorar" cuando se invocó el shell.

· El valor de la - el parámetro especial contiene i.

· La configuración regional del shell refleja el valor de la LC_CTYPE variable siempre que el valor sea
cambiado (si el shell no está en el modo POSIXly correcto).

· Los comandos se ejecutan incluso cuando la opción exec está desactivada.

· La opción ignorar-eof entra en vigor cuando está habilitada.

· Cuando el shell llega al final de la entrada o se ejecuta la salida incorporada, el shell
comprueba si hay algún trabajo detenido. Si es así, el shell imprime una advertencia y no
realmente salir.

· La suspensión incorporada por defecto no puede detener el shell si es un líder de sesión.

· El shell no sale cuando el punto incorporado no encuentra un archivo de secuencia de comandos para leer.

· El shell no sale cuando el exec incorporado no puede ejecutar un comando (si no está en
el modo POSIXly-correcto).

· Cuando finaliza un trabajo para el que la espera incorporada ha estado esperando, se informa del hecho
(solo si el control de trabajos está activo y no en el modo POSIXly correcto).

· Se imprime un mensaje cuando la lectura incorporada lee una segunda línea o la siguiente.

Mensajes del sistema
El caparazón interactivo imprime un prompt justo antes de leer un comando. El contenido del
La solicitud se especifica mediante el valor de la PS1 y PS2 variables. El primero se utiliza para
leyendo la primera línea del comando y la última para otras líneas.

Cuando se imprime el indicador, el valor de la variable está sujeto a la expansión de parámetros,
sustitución de comandos y expansión aritmética (pero tenga en cuenta que el estándar POSIX requiere
sólo expansión de parámetros). El resultado de la expansión se analiza según las reglas siguientes para
haga la cadena de solicitud real, que se imprime con el error estándar.

En el modo POSIXly-correct, cada signo de exclamación (!) en la cadena se sustituye por
el número de historial de comandos del comando que se está ingresando. Dos exclamaciones adyacentes
marcas (!!) se imprimen como una sola exclamación. Los demás caracteres se imprimen intactos.

Si el shell no está en el modo de comando POSIXly, se pueden usar las siguientes notaciones para
formatee la cadena de solicitud. Las notaciones se reemplazan con las cadenas designadas en la lista
debajo. Los caracteres que no se interpretan como notaciones se imprimen intactos.

\a
Carácter de campana (código ASCII: 7)

\e
Carácter de escape (código ASCII: 27)

\j
El número de trabajos en el caparazón.

\n
Carácter de nueva línea (código ASCII: 10)

\r
Carácter de retorno de carro (código ASCII: 13)

\!
El número de historial de comandos del comando que se está ingresando

\$
# si el ID de usuario efectivo del shell es 0; $ de otra manera.

\\
Barra invertida

\[, \]
Estas dos notaciones pueden rodear parte de la cadena de solicitud que no es visible en la
Terminal. La parte rodeada se ignora cuando el caparazón cuenta el número de
caracteres que se muestran en el terminal, haciendo que los caracteres estén correctamente alineados
en el terminal cuando la cadena de solicitud contiene caracteres especiales invisibles.

\fespecificaciones de fuentes.
Cuando la edición de líneas está activa, esta notación se reemplaza con caracteres especiales para
cambie los estilos de fuente en el terminal si el terminal es capaz de hacerlo. Si la edición de línea
está inactivo o el terminal es incapaz de cambiar los estilos de fuente, esta notación es
silenciosamente ignorado. Uno o más de los siguientes se pueden utilizar para especificaciones de fuentes:

k
Cambiar el color de la fuente a negro

r
Cambiar el color de la fuente a rojo

g
Cambiar el color de la fuente a verde

y
Cambiar el color de la fuente a amarillo

b
Cambiar el color de la fuente a azul

m
Cambiar el color de la fuente a magenta

c
Cambiar el color de la fuente a cian

w
Cambiar el color de la fuente a blanco

K
Cambiar el color de fondo a negro

R
Cambiar el color de fondo a rojo

G
Cambiar el color de fondo a verde

Y
Cambiar el color de fondo a amarillo

B
Cambiar el color de fondo a azul

M
Cambiar el color de fondo a magenta

C
Cambiar el color de fondo a cian

W
Cambiar el color de fondo a blanco

t
Hace que el color de la fuente o el fondo sean más brillantes (solo se puede usar justo después de una de las
caracteres arriba)

d
Cambiar la fuente y los colores de fondo a normal

s
Haz que la fuente destaque

u
Subrayar la fuente

v
Invertir los colores de fuente y de fondo

b
Hacer que la fuente parpadee

i
Hacer que la fuente sea tenue

o
Poner la fuente en negrita

x
Hacer invisible la fuente

D
Hacer que el color y el estilo sean normales

Los colores reales de la fuente y el fondo los define el terminal. Diferente
Los terminales pueden usar diferentes colores.

Además de la solicitud normal, se puede mostrar una cadena de solicitud a la derecha de la
cursor si la edición de línea está activa. Esas indicaciones se llaman Derecho ideas. Los contenidos de
Las solicitudes correctas se definen por el valor de la PS1R y PS2R variables, cada una correspondiente
En el correo electrónico “Su Cuenta de Usuario en su Nuevo Sistema XNUMXCX”. PS1 y PS2 variables.

Usando las notaciones mencionadas anteriormente, el estilo de fuente de las cadenas de comando que ingresa el usuario puede ser
cambiado, así como el de las indicaciones. El estilo de fuente de las cadenas de comandos está definido por el
valor de la PS1S y PS2S variables, cada una correspondiente a la PS1 y PS2 variables. La
el valor puede contener el \fespecificaciones de fuentes. notación solamente.

Cuando el shell no está en el modo POSIXly correcto, el valor de la PROMPT_COMMAND
La variable se ejecuta antes de cada solicitud.

Comando historia
Comando historia es una característica del shell que recuerda los comandos ejecutados para permitir
volver a ejecutarlos más tarde. Los comandos ejecutados en el modo interactivo se guardan automáticamente
en el historial de comandos. Los comandos guardados se pueden editar y volver a ejecutar mediante la edición de líneas
y las funciones incorporadas de fc e history.

Los comandos se guardan línea por línea. Líneas que no contienen caracteres que no sean espacios en blanco
no se guardan en el historial. Las líneas que comienzan con espacios en blanco no se guardan cuando
La opción hist-space está activada.

El historial de comandos se guarda en un archivo. Cuando el historial se usa por primera vez después de un shell interactivo
se inició, el shell abre un archivo para guardar el historial. El nombre del archivo es especificado por el
valor de la ARCHIVO HISTÓRICO variable. Si el archivo contiene datos históricos cuando se abre, los datos se
restaurado a la historia del caparazón. El contenido del archivo se actualiza en tiempo real a medida que el usuario
ingresa comandos en el shell. Si el ARCHIVO HISTÓRICO La variable no está configurada o el archivo no se puede
abierto correctamente, el historial no se guarda en el archivo, pero la función del historial se
funcional en todos los demás aspectos.

El número de comandos guardados en el historial se especifica mediante el valor de la SU TAMAÑO
variable. El shell elimina automáticamente los datos históricos antiguos para que la cantidad de datos guardados
comandos no supera el valor. Si el SU TAMAÑO La variable no está establecida o su valor es
no es un número natural, se guardarán 500 elementos en el historial.

La cáscara mira el valor de la ARCHIVO HISTÓRICO y SU TAMAÑO variables solo cuando la historia
La característica se usa por primera vez después de que se inició el shell. "La función de historial se utiliza" cuando:

· Se ejecuta el fc o el historial incorporado,

· Se utiliza la edición de línea (independientemente de si los datos históricos se recuperan o no en
edición de línea), o

· Se ingresa un comando al shell

Por lo tanto, las variables deben establecerse en los scripts de inicialización.

Cuando más de una instancia de yash comparte un solo archivo de historial, todos los shells usan el
mismos datos históricos. Como resultado, los comandos que han sido ejecutados por una instancia de shell pueden
ser recuperado en otra instancia de shell. Las conchas que comparten la misma historia deben tener la
mismo SU TAMAÑO valor para que manipulen correctamente los datos históricos.

El archivo de datos del historial de Yash tiene su propio formato que es incompatible con otros tipos de
conchas

La HISTRMDUP La variable se puede configurar para eliminar elementos duplicados del historial.

Correo comprobación
Un shell interactivo puede notificar la recepción del correo electrónico. El shell comprueba periódicamente el
fecha / hora de modificación de un archivo especificado por el usuario. Si el archivo ha sido modificado
desde la comprobación anterior, el shell imprime un mensaje de notificación (excepto cuando el shell
no está en el modo POSIXly correcto y el archivo está vacío). Especificando un archivo de buzón para
verifique, el shell imprimirá un mensaje cuando el archivo haya sido modificado, es decir, algunos
Se ha recibido el correo.

La verificación se realiza justo antes de que el shell imprima una línea de comandos. El intervalo de controles
puede ser especificado por el CORREO variable en segundos. Si el valor de la variable es 0, marque
se realiza antes de cada solicitud. Si el valor de la variable no es un entero no negativo, no
los controles están hechos.

El archivo cuya hora de modificación se comprueba está especificado por el MAIL variable. La
El valor de la variable debe establecerse en la ruta del archivo.

Si desea verificar más de un archivo o personalizar el mensaje de notificación, puede configurar
el RUTA DE CORREO variable en lugar de la MAIL variable. Cuando el RUTA DE CORREO se establece la variable, la
MAIL la variable se ignora. El valor de la RUTA DE CORREO la variable debe establecerse en uno o más
nombres de ruta separados por dos puntos de los archivos que se van a comprobar. Cada nombre de ruta puede ir seguido de un
signo de porcentaje (%) y un mensaje de notificación personalizado, que se imprime cuando el
se ha modificado el archivo correspondiente. Si el nombre de la ruta contiene un signo de porcentaje, debe
ser citado por una barra invertida. El mensaje especificado está sujeto a la expansión de parámetros. Para
ejemplo, si el valor del RUTA DE CORREO variable es / foo / mail% Nuevo mail!: / bar / mailbox% Has
got correo: / baz / mail \% data, la cáscara imprimirá

· New ¡correo! cuando el archivo / foo / mail ha sido modificado

· Tienes got mail cuando el archivo / barra / buzón ha sido modificado

· El mensaje predeterminado cuando se ha modificado el archivo / baz / mail% data.

TRABAJO CONTROL


Trabajos control es una función del shell que ejecuta múltiples comandos simultáneamente y
suspende / reanuda los comandos.

Cuando el control está activo:

· Cada tubería ejecutada por el shell se convierte en una trabajo. Un trabajo tiene su grupo de procesos único
ID que se comparte entre todos los procesos del trabajo.

· Si los procesos de un trabajo se suspenden mientras el shell está esperando los procesos
para terminar, el shell continúa con el siguiente comando como si el proceso hubiera terminado.
El shell recuerda el trabajo como suspendido para poder reanudarlo más tarde.

· Si un trabajo se ejecuta sincrónicamente, el shell establece el grupo de procesos en primer plano del
terminal al grupo de procesos del trabajo. Cuando el trabajo está terminado (o suspendido), el
shell vuelve al primer plano.

· La subcapa que ejecuta una sustitución de comando tiene su propio ID de grupo de proceso único como
un trabajo. Sin embargo, el shell no recuerda el subshell como un trabajo, por lo que no puede ser
suspendido o reanudado.

· Si el shell es interactivo, el estado del trabajo se informa antes de cada línea de comando.
como si el comando recibas nuevas vacantes en tu correo -n es ejecutado.

· La entrada estándar de un comando asíncrono no se redirige automáticamente a
/ dev / null (a menos que esté en el modo POSIXly correcto).

· El shell no sale cuando recibe la señal SIGTSTP.

· El valor de la - el parámetro especial contiene m.

· Cuando finaliza un trabajo para el que la espera incorporada ha estado esperando, se informa del hecho
(solo si el shell es interactivo y no en el modo POSIXly correcto).

Cuando el control de trabajos está inactivo, los procesos ejecutados por el shell tienen el mismo grupo de procesos
ID como el caparazón. El shell trata los comandos asincrónicos como un trabajo no controlado.

Puede utilizar los siguientes elementos integrados para manipular trabajos:

recibas nuevas vacantes en tu correo
imprime trabajos existentes

fg y bg
ejecutar trabajos en primer plano o en segundo plano

esperar
espera a que los trabajos se terminen (o suspendan)

renegar de
olvida trabajos

matar
envía una señal a los trabajos

Un shell interactivo de control de trabajos informa el estado de los trabajos antes de cada solicitud de forma predeterminada.
Puede configurar las siguientes opciones para hacer que el estado del informe de shell en otros momentos:

notificar
el shell informa inmediatamente cada vez que cambia el estado del trabajo.

notificar-le
el shell informa inmediatamente cuando cambia el estado del trabajo durante la edición de líneas.

Un trabajo se elimina de la lista de trabajos del shell cuando:

· Ha finalizado y se informa del estado "finalizado",

· La espera incorporada esperó con éxito a que finalizara el trabajo, o

· El incorporado de rechazo quitó el trabajo.

Nota:
La palabra "detener" es sinónimo de "suspender" en el contexto del control del trabajo.

Trabajos ID
Algunas incorporaciones usan la siguiente notación, que se llama trabajo ID, para especificar un trabajo para
operar en:

%, %%, %+
el trabajo actual

%-
el trabajo anterior

%n
el trabajo que tiene número de trabajo n, donde el n es un entero positivo

%cadena
el trabajo cuyo nombre comienza con cadena

%?cadena
el trabajo cuyo nombre contiene cadena

La corriente trabajo y anterior trabajo son trabajos seleccionados por el shell de acuerdo con lo siguiente
reglas:

· Cuando hay uno o más trabajos suspendidos, el trabajo actual se selecciona de ellos.

· Cuando hay uno o más trabajos suspendidos además del trabajo actual, el trabajo anterior
se selecciona de ellos.

· Los trabajos actuales y anteriores son siempre diferentes. Cuando el caparazón tiene solo un trabajo,
es el trabajo actual y no hay ningún trabajo anterior.

· Cuando finaliza el trabajo actual, el trabajo anterior se convierte en el trabajo actual.

· Cuando se cambia el trabajo actual, el trabajo actual anterior se convierte en el trabajo anterior, excepto
cuando terminó el trabajo anterior.

· Cuando se suspende el trabajo en primer plano, el trabajo se convierte en el trabajo actual.

Yash tiene algunas opciones para modificar las reglas de la selección de trabajo actual / anterior. (El
las reglas anteriores tienen prioridad sobre las opciones siguientes).

cur-asíncrono
Cuando se inicia un nuevo comando asincrónico, se convierte en el trabajo actual.

cur-bg
Cuando el bg integrado reanuda un trabajo, el trabajo se convierte en el trabajo actual.

detenerse
Cuando se suspende un trabajo, se convierte en el trabajo actual.

Los trabajos actuales y anteriores no se modifican siempre que se cumplan las reglas anteriores.

Las reglas de la selección de trabajo actual / anterior definidas en el estándar POSIX son más flexibles
que las reglas de yash anteriores. Otros shells compatibles con POSIX pueden seleccionar el actual y el anterior
trabajos de manera diferente.

INCORPORADO COMANDOS


Incorporado comandos son comandos que se implementan en el shell y son ejecutados por el
shell sin programas externos.

Tipos of incorporado comandos
Hay tres tipos de comandos incorporados en yash: comandos incorporados especiales,
comandos incorporados semi-especiales y comandos incorporados regulares.

Especial incorporado comandos son comandos mucho más importantes que otros. Son ejecutados
independientemente de que existan o no los correspondientes comandos externos. Resultados de
asignaciones de variables que ocurren en un comando simple que invoca un último incorporado especial
una vez finalizado el comando. Además, en el modo POSIXly-correct, un no interactivo
shell sale inmediatamente con un estado de salida distinto de cero cuando se produce un error de redireccionamiento, asignación
Se produce un error o un mal uso de la opción u operando en un comando incorporado especial.

Semi especial incorporado comandos son los segundos comandos incorporados importantes. Ellos son
ejecutado independientemente de si los comandos externos correspondientes existen o no. En otra
partes son los mismos que los comandos incorporados normales.

Regular incorporado comandos son comandos integrados menos importantes que incluyen comandos que pueden
implementarse como comandos externos o no se enumeran en POSIX. En el POSIXly correcto
modo, un incorporado regular se ejecuta solo cuando se encuentra un comando externo correspondiente
en PATH.

Sintaxis of comando argumentos
En esta sección explicamos las reglas comunes sobre los argumentos de los comandos. Los comandos integrados de
yash siga las reglas a menos que se indique lo contrario.

Hay dos tipos de argumentos de comando. Uno son opciones y el otro son operandos. Un
La opción es un argumento que comienza con un guion (-) y cambia la forma en que el comando
se comporta. Algunas opciones toman argumentos. Un operando es un argumento que no es una opción y
especifica los objetos sobre los que opera el comando.

Si especifica más de una opción para un comando, el orden de las opciones es normalmente
insignificante. Sin embargo, el orden de los operandos afecta el comportamiento del comando.

Una opción es una opción de un solo carácter o una opción larga. Una opción de un solo carácter
se identifica con un carácter alfabético. Una opción larga se identifica por múltiples
caracteres alfabéticos. El estándar POSIX solo prescribe opciones de un solo carácter, por lo que en
el modo POSIXly-correcto no puede utilizar opciones largas.

Una opción de un solo carácter se compone de un guión seguido de una letra. Por ejemplo, -a is
una opción de un solo carácter. Una opción de un solo carácter que toma un argumento requiere la
El argumento debe estar justo después del nombre de la opción.

Ejemplo 4. La . incorporado y un solo carácter opciones

Para el set integrado, -m es una opción de un solo carácter que no toma un argumento y
-o es uno que tiene un argumento.

· . -o erresalir -m

· . -oerresalir -m

En estas dos líneas de comando, erresalir es el argumento de la -o .

En el segundo ejemplo anterior, el -o opción y su argumento se combinan en un solo
argumento de línea de comando. El estándar POSIX desaprueba ese estilo y cualquier otro que se ajuste a POSIX.
las aplicaciones deben especificar opciones y sus argumentos como argumentos de línea de comando separados,
aunque yash acepta ambos estilos.

Puede combinar opciones de un solo carácter que no toman argumentos en un solo comando
argumento de línea. Por ejemplo, las tres opciones -a, -b y -c se puede combinar en -a B C.

Una opción larga se compone de dos guiones seguidos de un nombre de opción. Por ejemplo,
- opción larga es una opción larga. Puede omitir algunos últimos caracteres de un nombre de opción largo como
siempre que no sea ambiguo. Por ejemplo, puede utilizar --largo en lugar de - opción larga if
no hay otras opciones que empiecen con --largo. Como una opción de un solo carácter, una larga
La opción que toma un argumento requiere que el argumento sea un argumento de línea de comando solo
después del nombre de la opción o se especificará en el mismo argumento de línea de comando que la opción
nombre, separado por un signo igual (=).

Ejemplo 5. La fc incorporado y long opciones

Para el FC incorporado, --tranquilo es una opción larga que no toma un argumento y --editor
es uno que tiene un argumento.

· fc --editor vi --tranquilo

· fc --editor = vi --tranquilo

En estas líneas de comando, vi es el argumento de la --editor .

Los argumentos que no son opciones (ni argumentos para ellos) se interpretan como operandos. El
El estándar POSIX requiere que se especifiquen todas las opciones antes de los operandos. Por lo tanto, en
el modo POSIXly-correcto, cualquier argumento que venga después del primer operando se interpreta
como operandos (incluso si parecen opciones). Si no está en el modo POSIXly correcto, puede
especificar opciones después del operando.

Independientemente de si el shell está en el modo POSIXly correcto o no, un argumento que es
solo compuesto por dos guiones (--) se puede utilizar como separador entre opciones y operandos.
Todos los argumentos de la línea de comando después de -- separador se interpretan como operandos, por lo que puede
especifique operandos que comiencen con un guion correctamente usando el separador.

Ejemplo 6. y operandos a el . incorporado

· . -a -b -- -c -d

En este ejemplo, -a y -b son opciones y -c y -d son operandos. El -- separador en sí
no es una opción ni un operando.

Independientemente de si el shell está en el modo POSIXly correcto o no, un argumento que es
solo compuesto por un solo guion (-) se interpreta como un operando.

EDICIÓN DE LÍNEAS


Con el edición de línea función, puede editar el texto del comando cuando ingresa un comando para
un caparazón interactivo. No solo funciona como un simple editor de interfaz visual, sino que también
integrado con el historial de comandos. Puede recuperar, editar y ejecutar comandos en el
history con edición de líneas en lugar de usar el fc incorporado.

La edición de líneas tiene dos modos de edición, los modos vi y emacs, cada uno con su propia clave
Ajustes de encuadernación. Al cambiar los modos de edición, puede cambiar las combinaciones de teclas utilizadas en
edición de líneas. Cada modo tiene una opción de shell correspondiente, que determina si el
el modo está actualmente activo o no. No puede haber más de un modo activo a la vez, por lo que
Las opciones para los otros modos se desactivan automáticamente cuando activa la opción para
un modo. La función de edición de línea completa se desactiva cuando esas opciones están desactivadas.

Cuando se inicia un shell interactivo, el modo vi se activa automáticamente si el
la entrada estándar y el error están conectados a un terminal.

La edicin de lnea se puede usar solo cuando la entrada estndar y el error estn conectados a un
Terminal. Si no, el shell vuelve silenciosamente al mecanismo de entrada normal. Mientras
se está utilizando la edición de línea, el shell usa la interfaz termios para cambiar la configuración de E / S de
el terminal y la interfaz terminfo para analizar secuencias de teclas de entrada.

Cáscara opciones on edición de línea
Las siguientes opciones se pueden configurar con el conjunto integrado para habilitar la edición de línea y elegir una
modo de edición para activar:

vi
activa el modo vi.

emacs
activa el modo emacs.

Las otras opciones relacionadas con la edición de líneas son:

le-siempre-rp
Cuando esta opción está habilitada, el indicador de la derecha siempre está visible: cuando el cursor
llega al indicador de la derecha, se mueve a la siguiente línea desde la posición original, que
de lo contrario, se sobrescribirá con el texto de entrada.

le-comp-depuración
Cuando está habilitado, la información interna se imprime durante la finalización, lo que ayudará
depuración de scripts de finalización.

le-conv-meta
Cuando está habilitado, el octavo bit de cada byte de entrada siempre se trata como un indicador de meta-clave,
independientemente de los datos de terminfo.

le-no-conv-meta
Cuando está habilitado, el octavo bit de cada byte de entrada nunca se trata como un indicador de meta-clave,
independientemente de los datos de terminfo.

Las opciones le-conv-meta y le-no-conv-meta no se pueden habilitar a la vez. Cuándo
cualquiera está habilitado, el otro se deshabilita automáticamente. Cuando ninguno de los dos está habilitado,
El octavo bit puede tratarse como un indicador de metaclave en función de los datos de terminfo.

le-prompt-sp
Cuando está habilitado, el shell imprime una secuencia de caracteres especial antes de imprimir cada
mensaje para que cada mensaje se imprima al principio de una línea.

Esta opción está activada de forma predeterminada.

campana visible
Cuando está habilitado, el shell hace parpadear el terminal en lugar de hacer sonar una alarma cuando un
Se requiere alerta.

Edición los modos
La vi modo es un modo de edición que ofrece combinaciones de teclas similares a las del editor vi.
El modo vi tiene dos submodos que se cambian durante la edición: la inserción y el comando
modos. El submodo siempre se restablece al modo de inserción cuando se inicia la edición de línea para un
nueva línea de comando. En el modo de inserción, la mayoría de los caracteres se insertan en el búfer tal como se escriben.
En el modo de comando, los caracteres de entrada se tratan como comandos que mueven el cursor,
insertar / eliminar texto, etc.

La emacs modo ofrece combinaciones de teclas similares al editor emacs. La mayoría de los personajes son
insertado en el búfer como se escribe, pero más caracteres se tratan como comandos que el vi
modo de inserción.

Se utiliza otro submodo mientras ingresa palabras clave de búsqueda. El submodo se llama
Buscar modo, que ofrece combinaciones de teclas ligeramente diferentes según la edición activa
modo.

Edición de línea comandos
Todos los caracteres que ingresa el usuario mientras la edición de línea está activa se tratan como edición de línea
comandos enumerados a continuación. El bindkey incorporado permite personalizar las combinaciones de teclas de cada
modo (excepto para el modo de búsqueda).

La siguiente lista muestra no solo las funciones de los comandos, sino también las combinaciones de teclas predeterminadas.
Las palabras clave "vi-insert", "vi-command", "vi-search", "emacs", "emacs-search" significan vi
modo de inserción, el modo de comando vi, el modo de búsqueda para el modo vi (el modo de búsqueda vi),
el modo emacs, y el modo de búsqueda para el modo emacs (el modo de búsqueda emacs),
respectivamente.

Algunos comandos toman un argumento que afecta la función de los comandos. Por ejemplo, el
El comando forward-char mueve el cursor tantos caracteres como especifica el argumento.
Para especificar un argumento, use el comando argumento-dígito justo antes de otro comando que
toma un argumento.

Básico . comandos
no
Hacer nada.

vi-comando
\ ^ [

alerta
Alerta.

autoinserto
Inserte el carácter de entrada en la posición actual del cursor. Personajes escapados por
No se pueden insertar secuencias de escape.

inserción vi, emacs
\\

insert-tab
Inserta un carácter de tabulación en la posición actual del cursor.

emacs
\ ^ [\ ^ Yo

esperar-literalmente
Insertar un carácter que se ingresa justo después de este comando en el cursor actual
posición. Este comando puede ingresar un carácter que no puede ser ingresado por el
comando de autoinserción, excepto un carácter nulo ('\ 0').

inserción vi, búsqueda vi, búsqueda emacs
\ ^ V

emacs
\ ^ Q, \ ^ V

argumento-digito
Pase el dígito de entrada al siguiente comando como argumento.

Este comando puede estar vinculado a un dígito o guión. Para pasar "12" como argumento a la
comando forward-char en el modo vi, por ejemplo, ingrese 12l.

vi-comando
1, 2, 3, 4, 5, 6, 7, 8, 9

emacs
\ ^ [0, \ ^ [1, \ ^ [2, \ ^ [3, \ ^ [4, \ ^ [5, \ ^ [6, \ ^ [7, \ ^ [8, \ ^ [9, \ ^ [-,

bol-o-dígito
Como el comando de comienzo de línea si no hay argumento; como el
comando de argumento-dígito de lo contrario.

vi-comando
0

aceptar línea
Termina de editar la línea actual. Una nueva línea se agrega automáticamente a la línea.
La línea será ejecutada por el shell.

inserción vi, comando vi, emacs, búsqueda de emacs
\ ^ J, \ ^ M

abortar línea
Abandone el búfer actual y termine de editar como si se ingresara una línea vacía.

vi-inserción, vi-comando, vi-búsqueda, emacs, emacs-búsqueda
\!, \ ^ C

eof
Abandone el búfer actual y termine de editar como si el shell llegara al final de
aporte. Esto normalmente hace que el shell salga.

eof-si-vacio
Como el comando eof si el búfer está vacío; como el comando de alerta de lo contrario.

vi-inserción, vi-comando
\#, \ ^ D

eof-o-eliminar
Como el comando eof si el búfer está vacío; como el comando delete-char
de otra manera.

emacs
\#, \ ^ D

aceptar con hash
Como el comando accept-line, pero:

· Un signo de almohadilla (#) se inserta al principio de la línea si no hay ninguna.

· De lo contrario, el signo de almohadilla se elimina del principio de la línea.

vi-comando
#

emacs
\ ^ [#

setmode-viinsert
Cambie al modo de inserción vi.

vi-comando
i, \I

establecer modo-vicommand
Cambie al modo de comando vi.

vi-insertar
\ ^ [

establecer modo-emacs
Cambie al modo emacs.

esperar-char, abortar-esperar-char
Estos comandos no están pensados ​​para que los utilice el usuario. Son utilizados por el caparazón para
implementar algunos otros comandos.

volver a dibujar todo
Vuelva a imprimir el mensaje y la línea actual en la terminal.

vi-inserción, vi-comando, vi-búsqueda, emacs, emacs-búsqueda
\ ^ L

borrar-y-volver-a-dibujar-todo
Borre la terminal y vuelva a imprimir el mensaje y la línea actual.

Motion comandos
Motion comandos mueva el cursor sobre la línea. La mayoría de los comandos de movimiento aceptan un argumento.
Cuando se pasa un argumento, repiten el movimiento del cursor tantas veces como se especifica por
el argumento. Pasando "4" como argumento al comando forward-char, por ejemplo,
avanza el cursor cuatro caracteres.

El caparazón tiene varias definiciones de palabras como unidades de distancia: A palabra grande es uno o
más caracteres adyacentes que no sean espacios en blanco. A semipalabra es uno o más personajes adyacentes
que no contienen espacios en blanco ni signos de puntuación. Un espadaemac es uno o más adyacentes
caracteres alfanuméricos. A palabra clave es cualquiera:

· Uno o más caracteres alfanuméricos adyacentes y / o guiones bajos (_), o

· Uno o más caracteres adyacentes que no contienen ninguno de los caracteres alfanuméricos,
guiones bajos y espacios en blanco.

adelante-char
Mueva el cursor al siguiente carácter.

vi-insertar
\R

vi-comando
l, (espacio), \R

emacs
\R, \ ^ F

char al revés
Mueve el cursor al carácter anterior.

vi-insertar
\L

vi-comando
h, \B, \L, \?, \ ^ H

emacs
\L, \ ^ B

adelante-palabra grande
Mueva el cursor a la siguiente palabra grande.

vi-comando
W

fin de palabra grande
Mueva el cursor al siguiente final de una palabra grande.

vi-comando
E

Bigword al revés
Mueva el cursor a la palabra grande anterior.

vi-comando
B

semipalabra hacia adelante
Mueva el cursor a la siguiente semipalabra.

fin de semipalabra
Mueva el cursor al siguiente final de una semipalabra.

semipalabra al revés
Mueva el cursor a la semipalabra anterior.

adelante-viword
Mueva el cursor a la siguiente viword.

vi-comando
w

fin-de-viword
Mueva el cursor al siguiente final de una viword.

vi-comando
e

al revés-viword
Mueva el cursor a la viword anterior.

vi-comando
b

reenviar-emacsword
Mueva el cursor a la siguiente emacsword.

emacs
\ ^ [f, \ ^ [F

retroceder-emacsword
Mueva el cursor a la emacsword anterior.

emacs
\ ^ [b, \ ^ [B

principio de línea
Mueva el cursor al principio de la línea.

vi-inserción, vi-comando
\H

emacs
\H, \ ^ A

fin de la línea
Mueva el cursor al final de la línea.

vi-insertar
\E

vi-comando
$, \E

emacs
\E, \ ^ E

ir a la columna
Mueva el cursor al nel carácter de la línea, donde n es el argumento. Asumir
n = 1 cuando no hay argumento.

vi-comando
|

primero no en blanco
Mueva el cursor al primer carácter que no esté en blanco en la línea.

vi-comando
^

encontrar-char
Mueva el cursor a la primera posición donde un carácter que se ingresa justo después
este comando aparece después de la posición actual del cursor.

vi-comando
f

emacs
\ ^]

encontrar-char-rev
Mueva el cursor a la última posición donde un carácter que se ingresa justo después
este comando aparece antes de la posición actual del cursor.

vi-comando
F

emacs
\ ^ [\ ^]

hasta-char
Mueva el cursor a la primera posición justo antes de un carácter que se ingresa
después de que este comando aparezca después de la posición actual del cursor.

vi-comando
t

hasta-char-rev
Mueva el cursor a la última posición justo después de un carácter que se ingresa
después de que este comando aparezca antes de la posición actual del cursor.

vi-comando
T

reencontrar-char
Rehaga el último comando find-char, find-char-rev, till-char, till-char-rev.

vi-comando
;

reencontrar-char-rev
Rehaga el último comando find-char, find-char-rev, till-char, till-char-rev en el
direccion contraria.

vi-comando
,

Edición comandos
Los comandos de edición modifican el contenido del búfer. La mayoría de los comandos de edición aceptan
argumento. Cuando pasa un argumento, repiten la modificación tantas veces como
especificado por el argumento.

Los textos eliminados por comandos cuyo nombre comienza con "matar" se guardan en matar ring, de
qué contenido eliminado se puede restaurar en el búfer. Los 32 textos más recientes son
mantenido en el círculo de la muerte.

eliminar-char
Elimina un carácter en la posición actual del cursor si no se pasa ningún argumento; me gusta
el comando kill-char de lo contrario.

inserción vi, emacs
\X

eliminar-bigword
Elimina una palabra grande en la posición actual del cursor si no se pasa ningún argumento; como el
comando kill-bigword de lo contrario.

eliminar-semipalabra
Elimina una semipalabra en la posición actual del cursor si no se pasa ningún argumento; me gusta
el comando kill-semiword en caso contrario.

eliminar-viword
Elimina una palabra vi en la posición actual del cursor si no se pasa ningún argumento; como el
comando kill-viword de lo contrario.

eliminar-emacsword
Elimina una emacsword en la posición actual del cursor si no se pasa ningún argumento; me gusta
el comando kill-emacsword de lo contrario.

retroceder-borrar-char
Eliminar un carácter justo antes de la posición actual del cursor si no hay ningún argumento
aprobado; como el comando backward-kill-char de lo contrario.

inserción vi, emacs
\B, \?, \ ^ H

retroceder-eliminar-bigword
Elimina una palabra grande justo antes de la posición actual del cursor si no se pasa ningún argumento;
como el comando backward-kill-bigword de lo contrario.

retro-eliminar-semipalabra
Elimina una semipalabra justo antes de la posición actual del cursor si no hay ningún argumento.
aprobado; como el comando backward-kill-semiword de lo contrario.

vi-insertar
\ ^ W

retroceder-borrar-viword
Elimina una palabra vi justo antes de la posición actual del cursor si no se pasa ningún argumento;
como el comando backward-kill-viword de lo contrario.

retroceder-eliminar-emacsword
Eliminar una emacsword justo antes de la posición actual del cursor si no hay ningún argumento
aprobado; como el comando backward-kill-emacsword de lo contrario.

eliminar línea
Elimina todo el contenido del búfer.

reenviar-borrar-linea
Elimina todos los caracteres desde la posición actual del cursor hasta el final del búfer.

volver-borrar-linea
Elimina todos los caracteres antes de la posición actual del cursor.

vi-insertar
\$, \ ^ U

matar-char
Elimina un personaje en la posición actual del cursor y agrégalo al círculo de la muerte.

vi-comando
x, \X

matar-bigword
Elimine una palabra grande en la posición actual del cursor y agréguela al anillo de muerte.

matar-semi-palabra
Elimina una semipalabra en la posición actual del cursor y agrégala al anillo de muerte.

matar-viword
Elimine una palabra vi en la posición actual del cursor y agréguela al anillo de muerte.

matar-emacsword
Elimine una emacsword en la posición actual del cursor y agréguela al anillo de la muerte.

emacs
\ ^ [d, \ ^ [D

hacia atrás-matar-char
Elimina un carácter justo antes de la posición actual del cursor y agrégalo a la muerte.
anillo.

vi-comando
X

al revés-matar-bigword
Elimine una palabra grande justo antes de la posición actual del cursor y agréguela a la muerte
anillo.

emacs
\ ^ W

semi-palabra-hacia-atrás-matar
Elimina una semipalabra justo antes de la posición actual del cursor y agrégala a la muerte.
anillo.

retro-matar-viword
Elimine un viword justo antes de la posición actual del cursor y agréguelo al kill
anillo.

al revés-matar-emacsword
Elimina una emacsword justo antes de la posición actual del cursor y agrégala a kill
anillo.

emacs
\ ^ [\ B, \ ^ [\?, \ ^ [\ ^ H

línea de muerte
Elimine todo el contenido del búfer y agréguelo al anillo de muerte.

línea de muerte hacia adelante
Elimina todos los caracteres desde la posición actual del cursor hasta el final del búfer
y agréguelo al anillo de la muerte.

emacs
\ ^ K

línea de muerte hacia atrás
Elimina todos los caracteres antes de la posición actual del cursor y agrégalos a la muerte.
anillo.

emacs
\$, \ ^ U, \ ^ X \ B, \ ^ X \?

poner antes
Inserte el último texto eliminado antes de la posición actual del cursor y mueva el cursor
hasta el último carácter que se insertó.

vi-comando
P

put
Inserte el último texto eliminado después de la posición actual del cursor y mueva el cursor
hasta el último carácter que se insertó.

vi-comando
p

poner a la izquierda
Inserte el último texto eliminado antes de la posición actual del cursor y mueva el cursor
hasta el último carácter que se insertó.

emacs
\ ^ Y

poner pop
Reemplace el texto recién puesto con el siguiente texto eliminado anterior.

Este comando se puede usar solo después de poner antes, poner, poner a la izquierda o poner pop
mando.

emacs
\ ^ [y, \ ^ [Y

deshacer
Cancelar la modificación con el último comando de edición.

vi
u

emacs
\ ^ _, \ ^ X \ $, \ ^ X \ ^ U

Deshacer todo
Cancela todas las modificaciones en el búfer actual, restaurando el contenido inicial.

vi
U

emacs
\ ^ [\ ^ R, \ ^ [r, \ ^ [R

cancelar-deshacer
Cancele la cancelación con el último comando deshacer o deshacer todo.

vi
\ ^ R

cancelar-deshacer-todo
Cancele todas las cancelaciones con todos los comandos de deshacer y deshacer todos más recientes.

rehacer
Repita la modificación con el último comando de edición.

vi-comando
.

Cierre comandos
completar
Complete una palabra justo antes de la posición del cursor y, si hay más de una
candidato, muestre una lista de los candidatos.

próximo candidato completo
Como el comando completo cuando los candidatos no se enumeran; de lo contrario, seleccione
el próximo candidato en la lista.

inserción vi, emacs
\ ^ Yo

candidato-anterior-completo
Como el comando completo cuando los candidatos no se enumeran; de lo contrario, seleccione
el candidato anterior en la lista.

inserción vi, emacs
\ bt

columna-siguiente-completa
Como el comando completo cuando los candidatos no se enumeran; de lo contrario, seleccione
el primer candidato en la siguiente columna de la lista.

columna-anterior-completa
Como el comando completo cuando los candidatos no se enumeran; de lo contrario, seleccione
el primer candidato en la columna anterior de la lista.

completar-siguiente-pagina
Como el comando completo cuando los candidatos no se enumeran; de lo contrario, seleccione
el primer candidato en la página siguiente de la lista.

página anterior completa
Como el comando completo cuando los candidatos no se enumeran; de lo contrario, seleccione
el primer candidato en la página anterior de la lista.

lista completa
Complete una palabra justo antes de la posición del cursor.

Si no aprueba ningún argumento, se muestra una lista de candidatos a finalización. De lo contrario, el
la palabra se completa con el nel candidato donde n es el argumento.

emacs
\ ^ [?, \ ^ [=

completar todo
Reemplazar una palabra justo antes de la posición del cursor con toda la terminación posible
candidatos, cada uno separado por un espacio.

emacs
\ ^ [*

completo-máximo
Complete una palabra justo antes de la posición del cursor con el prefijo más largo de todos
posibles candidatos a finalización.

candidatos claros
Borre la lista de candidatos a finalización.

Vi específico comandos
vi-reemplazar-char
Reemplace el carácter en la posición del cursor con un carácter que se ingresa
después de este comando.

vi-comando
r

vi-insertar-comienzo
Mueva el cursor al principio de la línea y cambie al modo de inserción vi.

vi-comando
I

vi-adjuntar
Mueva el cursor al siguiente carácter y cambie al modo de inserción vi.

vi-comando
I

vi-añadir-a-eol
Mueva el cursor al final de la línea y cambie al modo de inserción vi.

vi-comando
A

vi-reemplazar
Cambie al modo de inserción vi y comience a sobrescribir. Mientras sobrescribe, el
El comando de autoinserción reemplaza el carácter en la posición del cursor en lugar de
insertando un carácter. La sobrescritura finaliza cuando se cambia el modo de edición.

vi-comando
R

caja-interruptor-vi
Cambie entre mayúsculas y minúsculas entre la posición actual y la siguiente del cursor. Esta
El comando debe ir seguido de un comando de movimiento, que determina el siguiente cursor
.

vi-switch-case-char
Cambie entre mayúsculas y minúsculas del carácter en la posición actual del cursor y mueva el cursor a
el siguiente personaje.

vi-comando
~

vi-tirón
Agregue al círculo de la muerte los caracteres entre la posición actual y la siguiente del cursor.
Este comando debe ir seguido de un comando de movimiento, que determina el siguiente
posición del cursor.

vi-comando
y

vi-yank-a-eol
Agregue al anillo de la muerte los caracteres desde la posición actual del cursor hasta el final de
la línea.

vi-comando
Y

vi-eliminar
Elimine los caracteres entre las posiciones del cursor actual y siguiente y agréguelos a la
anillo de la muerte. Este comando debe ir seguido de un comando de movimiento, que determina la
siguiente posición del cursor.

vi-comando
d

vi-eliminar-a-eol
Elimine los caracteres desde la posición actual del cursor hasta el final de la línea y
agréguelo al anillo de la muerte.

vi-comando
D

vi-cambio
Elimine caracteres entre las posiciones actual y siguiente del cursor y cambie a la
vi modo de inserción. Este comando debe ir seguido de un comando de movimiento, que
determina la siguiente posición del cursor.

vi-comando
c

vi-cambio-a-eol
Elimine los caracteres desde la posición actual del cursor hasta el final de la línea y
cambie al modo de inserción vi.

vi-comando
C

línea-de-cambio-vi
Elimine todo el contenido del búfer y cambie al modo de inserción de vi.

vi-comando
S

vi-tirar-y-cambiar
Al igual que el comando vi-change, pero el texto eliminado se agrega al anillo de eliminación.

vi-yank-y-cambio-a-eol
Como el comando vi-change-to-eol, pero el texto eliminado se agrega al kill ring.

vi-tirar-y-cambiar-línea
Como el comando vi-change-line, pero el texto eliminado se agrega al kill ring.

vi-sustituto
Elimina un personaje en la posición actual del cursor, agrégalo al anillo de muerte y
cambie al modo de inserción vi.

vi-comando
s

vi-añadir-la-última-palabra-grande
Inserte un espacio y la última palabra grande en la entrada del historial de comandos más reciente simplemente
después de la posición actual del cursor y cambie al modo de inserción vi. Si argumento n
se pasa, el nSe inserta la palabra grande en la entrada en lugar de la última.

vi-comando
_

vi-alias-exec
Ejecute el valor de un alias llamado _c como comandos de edición donde c es un personaje
entrada justo después de este comando.

vi-comando
@

vi-editar-y-aceptar
Inicie el editor vi para editar el contenido actual del búfer. Cuando el editor terminó,
el contenido del búfer editado se acepta como el comando accept-line a menos que el
El estado de salida del editor es distinto de cero.

vi-comando
v

vi-lista-completa
Como el comando de lista completa, pero también cambia al modo de inserción vi.

vi-comando
=

vi-completo-todo
Como el comando complete-all, pero también cambia al modo de inserción vi.

vi-comando
*

vi-completo-max
Como el comando complete-max, pero también cambie al modo de inserción vi.

vi-comando
\\

vi-buscar-hacia adelante
Cambie al modo de búsqueda vi e inicie la búsqueda del historial de avance.

vi-comando
?

vi-buscar-hacia atrás
Cambie al modo de búsqueda vi y comience la búsqueda del historial hacia atrás.

vi-comando
/

Específico de Emacs comandos
emacs-transponer-caracteres
Mueva un carácter justo antes del cursor a la derecha.

emacs
\ ^ T

emacs-transponer-palabras
Mueva una emacsword justo antes del cursor a la derecha.

emacs
\ ^ [t, \ ^ [T

emacs-downcase-palabra
Haga una emacsword justo después del cursor en minúsculas.

emacs
\ ^ [l, \^[l

palabra-mayúscula-emacs
Haga una emacsword justo después del cursor en mayúsculas.

emacs
\ ^ [u, \ ^ [U

emacs-capitalizar-palabra
Ponga en mayúscula la primera letra de una emacsword justo después del cursor.

emacs
\ ^ [c, \ ^ [u

emacs-eliminar-espacio-horizontal
Elimina espacios alrededor del cursor. Si se pasó algún argumento, elimine los espacios solo
antes del cursor solamente.

emacs
\ ^ [\\

emacs-solo-un-espacio
Elimina espacios alrededor del cursor y deja un espacio. Si se especifica un argumento,
deje tantos espacios como el argumento.

emacs
\ ^ [ (Escape seguido de un espacio)

emacs-buscar-adelante
Cambie al modo de búsqueda de emacs y comience la búsqueda del historial de avance.

emacs
\ ^ S

emacs-buscar-hacia atrás
Cambie al modo de búsqueda de emacs y comience la búsqueda del historial hacia atrás.

emacs
\ ^ R

Relacionado con la historia comandos
historia mas antigua
Recuerde la entrada más antigua de la historia. Si argumento n se pasa, la entrada cuya
número es n se recuerda en su lugar. La posición del cursor permanece sin cambios.

historia más reciente
Recuerde la entrada más reciente de la historia. Si argumento n se pasa, la entrada cuya
número es n se recuerda en su lugar. La posición del cursor permanece sin cambios.

historial de retorno
Vuelve al búfer inicial que no corresponde a ninguna de las entradas del historial existentes. Si
argumento n se pasa, la entrada cuyo número es n se recuerda en su lugar. El cursor
la posición permanece sin cambios.

historia-mas-antigua-bol
Recupere la entrada más antigua del historial y mueva el cursor al comienzo de la
línea. Si argumento n se pasa, la entrada cuyo número es n se recuerda en su lugar.

vi-comando
G

nuevo-historia-bol
Recupere la entrada más reciente del historial y mueva el cursor al comienzo de la
línea. Si argumento n se pasa, la entrada cuyo número es n se recuerda en su lugar.

retorno-historia-bol
Regrese al búfer inicial correspondiente a ninguna de las entradas existentes del historial y
mueva el cursor al principio de la línea. Si argumento n se pasa, la entrada
cuyo número es n se recuerda en su lugar.

vi-comando
g

historia-mas-antigua-eol
Recupere la entrada más antigua del historial y mueva el cursor al final de la línea.
Si argumento n se pasa, la entrada cuyo número es n se recuerda en su lugar.

emacs
\ ^ [

historia-más-nueva-eol
Recupere la entrada más reciente del historial y mueva el cursor al final de la línea.
Si argumento n se pasa, la entrada cuyo número es n se recuerda en su lugar.

retorno-historia-eol
Regrese al búfer inicial correspondiente a ninguna de las entradas existentes del historial y
mueva el cursor al final de la línea. Si argumento n se pasa, la entrada cuya
número es n se recuerda en su lugar.

emacs
\ ^ [>

siguiente historia
Recupera la siguiente entrada del historial. La posición del cursor permanece sin cambios.

historia previa
Recupera la entrada anterior del historial. La posición del cursor permanece sin cambios.

siguiente-historia-bol
Recupere la siguiente entrada del historial y mueva el cursor al principio de la línea.

vi-comando
j, +, \D, \ ^ N

anterior-historia-bol
Recupere la entrada anterior del historial y mueva el cursor al comienzo de la
la línea.

vi-comando
k, -, \U, \ ^ P

próxima-historia-eol
Recupere la siguiente entrada del historial y mueva el cursor al final de la línea.

inserción vi, emacs
\D, \ ^ N

prev-historia-eol
Recupere la entrada anterior del historial y mueva el cursor al final de la línea.

inserción vi, emacs
\U, \ ^ P

busca de nuevo
Repite la última búsqueda del historial de comandos.

vi-comando
n

buscar-de-nuevo-rev
Repita la última búsqueda del historial de comandos en la dirección inversa.

vi-comando
N

buscar-de-nuevo-adelante
Repita la última búsqueda del historial de comandos en la dirección de avance.

buscar-de-nuevo-hacia atrás
Repita la última búsqueda del historial de comandos hacia atrás.

inicio-búsqueda-adelante
Recuerde la siguiente entrada del historial que comienza con el mismo texto que el texto de la
principio de la línea hasta la posición actual del cursor. La posición del cursor
permanece sin cambios.

inicio-búsqueda-hacia atrás
Recuerde la entrada del historial anterior que comienza con el mismo texto que el texto de
el comienzo de la línea hasta la posición actual del cursor. La posición del cursor
permanece sin cambios.

Buscar modo comandos
srch-autoinserción
Inserte el carácter de entrada en la posición actual del cursor. Personajes escapados por
No se pueden insertar secuencias de escape.

vi-búsqueda, emacs-búsqueda
\\

srch-hacia atrás-eliminar-carácter
Elimina el último carácter del texto de búsqueda. Si el texto está vacío:

· Me gusta el comando srch-abort-search cuando está en el modo de búsqueda vi, o

· Me gusta el comando de alerta cuando está en el modo de búsqueda de emacs.

vi-búsqueda, emacs-búsqueda
\B, \?, \ ^ H

srch-borrar-línea-hacia atrás
Elimina todo el texto de búsqueda.

vi-búsqueda, emacs-búsqueda
\$, \ ^ U

srch-continuar-adelante
Busque la siguiente entrada del historial coincidente.

emacs-búsqueda
\ ^ S

srch-continuar-hacia atrás
Busque la entrada anterior del historial de coincidencias.

emacs-búsqueda
\ ^ R

srch-aceptar-buscar
Termina el modo de búsqueda aceptando el resultado que se muestra.

vi-búsqueda
\ ^ J, \ ^ M

emacs-búsqueda
\ ^ J, \ ^ [

srch-abortar-buscar
Abortar la búsqueda y restaurar el contenido del búfer anterior.

vi-búsqueda
\ ^ [

emacs-búsqueda
\ ^ G

Escapar secuencias
En el bindkey incorporado, las secuencias de escape se utilizan para representar claves especiales como
teclas de función y teclas de flecha. Cada secuencia de escape comienza con una barra invertida (\) y por lo tanto
también hay una secuencia de escape para una barra invertida.

A continuación se encuentran las secuencias de escape disponibles:

\\
Barra invertida (\)

\B
Retroceso

\D
Flecha hacia abajo

\E
End

\H
Inicio

\I
Insertar (Insert-char, Enter-insert-mode)

\L
Flecha izquierda

\N
Avanzar página (página siguiente)

\P
Avanzar página (página anterior)

\R
Flecha correcta

\U
flecha hacia arriba

\X
Borrar

\!
INTR

\#
EOF

\$
MATANZA

\?
ERASE

\ ^ @
Control + @

\ ^ A, \ ^ B, ..., \ ^ Z
Ctrl+A, Ctrl+B, ..., Ctrl+Z

Tenga en cuenta que Ctrl + I, Ctrl + J y Ctrl + M son tabulación, nueva línea y retorno de carro,
respectivamente.

\ ^ [
Ctrl + [ (Escapar)

\ ^ \
Control + \

\ ^]
Ctrl +]

\ ^^
Control + ^

\ ^ _
Control + _

\ ^?
Ctrl +? (Borrar)

\ F00, \ F01, ..., \ F63
F0, F1, ..., F63

\ a1
Arriba a la izquierda en el teclado

\ a3
Arriba a la derecha en el teclado

\ b2
Centro en el teclado

\ bg
Comenzando

\ bt
Pestaña trasera

\ c1
Abajo a la izquierda en el teclado

\ c3
Abajo a la derecha en el teclado

\California
Borrar todas las pestañas

\ cl
Cerrado

\ cn
Cancelar

\co
Comando

\ cp
Copiar

\ cr
Crear

\ cs
Limpiar la pantalla o borrar

\Connecticut
Pestaña clara

\ dl
Eliminar línea

\ ei
Salir del modo de inserción

\ el
Claro hasta el final de la línea

\ es
Claro hasta el final de la pantalla

\ et
Entrar (enviar)

\ex
Exit

\ fd
Encuentre

\ hp
Ayuda

\Illinois
Insertar línea

\ ll
Casa abajo

\yo
Mensaje

\ mk
Marcar

\Sra
Evento del mouse

\ mv
Moverse

\ nx
Objeto siguiente

\sobre
Abierto

\ op


\ pr
Imprimir (copiar)

\ pv
Objeto anterior

\ rd
rehacer

\re
Currículum

\ rf
Ref (referencia)

\Rh
Refrescar

\ rp
Reemplaza

\ rs
Reanudación

\ sf
Desplazarse hacia adelante (Desplazarse hacia abajo)

\ sl
Seleccione

\ sr
Desplazarse hacia atrás (Desplazarse hacia arriba)

\S t
Pestaña de configuración

\ su
Suspende los

\ sv
Guarde

\ ud
deshacer

\ SE
Mayús + Fin

\ SH
Mayús + Inicio

\SI
Shift + Insert

\ SL
Mayús + flecha izquierda

\ SR
Mayús + flecha derecha

\ SX
Shift + Supr

\ Sbg
Mayús + Inicio

\ Scn
Mayús + Cancelar

\ Sco
Mayús + Comando

\ Scp
Mayús + Copiar

\ Scr
Mayús + Crear

\ Sdl
Mayús + Eliminar línea

\ Sel
Mayús + Fin de línea

\Sexo
Mayús + Salir

\Sfd
Mayús + Buscar

\ Shp
Mayús + Ayuda

\ Smg
Mayús + Mensaje

\ Smv
Mayús + Mover

\ Snx
Mayús + Siguiente

\Compensación
Mayús + Opciones

\ Spr
Mayús + Imprimir

\ Spv
Mayús + Anterior

\ Srd
Mayús + Rehacer

\ Sre
Mayús + Reanudar

\ Srp
Mayús + Reemplazar

\ Ssu
Mayús + Suspender

\ Ssv
Mayús + Guardar

\ Sud
Mayús + Deshacer

INTR, EOF, KILL y ERASE son caracteres especiales configurados por el comando stty. en un
configuración típica, se envían escribiendo Ctrl+C, Ctrl+D, Ctrl+U y Ctrl+H,
respectivamente, pero alguna configuración usa Ctrl +? en lugar de Ctrl + H para BORRAR.

Comando línea terminación
Al usar los comandos completos y completos del siguiente candidato, etc., puede completar el comando
nombres, opciones y operandos. De forma predeterminada, el comando complete-next-candidate está vinculado
con la tecla Tab en los modos vi insert y emacs.

Escriba algunas primeras letras del nombre de un comando o ruta y presione la tecla Tab, y una lista de
Se mostrarán los nombres coincidentes. Puede elegir un candidato de la lista para completar el
nombre presionando la tecla Tab de nuevo. Si solo hay un nombre coincidente, no se incluirá ninguna lista.
se muestra y el nombre se completará directamente.

Si el nombre a completar contiene caracteres como * y ?, se trata como un patrón.
El nombre en la línea de comando se sustituirá directamente con todos los nombres posibles que coincidan
el patrón (no puede elegir de una lista).

Normalmente, los nombres de los comandos se completan con los nombres de los comandos y los argumentos de los comandos con
nombres de ruta. Sin embargo, terminación funciones se puede definir para refinar los resultados de finalización.

Cierre detalles
Al completar la finalización por primera vez después de que se haya iniciado el shell, el INIT
el archivo se carga como si la cadena de comando . -ALABAMA finalización/INICIO es ejecutado. Si el archivo
no se encuentra, se ignora silenciosamente. Esta carga automática está destinada principalmente a
cargando funciones de finalización incluidas con el shell, pero puede dejar que el shell cargue
sus propias funciones poniendo un archivo en la ruta de carga.

Al completar un nombre de comando, el shell ejecuta el finalización // comando función
y al completar un argumento de comando, el finalización // argumento función. Si esos
Las funciones de finalización no están definidas, el shell simplemente se completa con los nombres de los comandos o
nombres de ruta. Al completar otros nombres, como el nombre de usuario en la expansión de tilde y
el nombre del parámetro en la expansión de parámetros, las funciones de finalización nunca se utilizan:
shell simplemente se completa con nombres de usuario, nombres de parámetros o lo que sea aplicable.

Las funciones de finalización se ejecutan sin argumentos. Las siguientes variables locales
se definen automáticamente al ejecutar funciones de finalización:

IFS
El valor son los tres caracteres de un espacio, una pestaña y una nueva línea, que son los
valor predeterminado de la variable.

PALABRAS
Esta variable es una matriz cuyos elementos son un nombre de comando y argumentos que
ya se han ingresado antes de que se complete el argumento. Al completar un
nombre del comando, la matriz no tiene elementos.

PALABRA OBJETIVO
El valor es el nombre del comando introducido parcialmente o el argumento que se
completado.

Los candidatos a finalización se generan ejecutando el integrado completo durante una
función de finalización.

Las funciones de finalización no deben realizar E / S en el terminal, o el texto mostrado
corrupto. Las funciones de finalización deben ejecutarse lo más rápido posible para un mejor usuario
celestial

Mientras se ejecuta una función de finalización:

· El modo POSIXly-correct está temporalmente deshabilitado,

· La opción err-exit está temporalmente deshabilitada, y

· No se ejecutan trampas.

POSIXLY-CORRECTO MODO


Yash se comporta como se define en POSIX.1-2008, Shell & Utilities en su mayor parte, pero algunos
las funcionalidades desobedecen POSIX por su usabilidad. Cuando se necesita una conformidad completa con POSIX,
puede habilitar el POSIXly correcto modo para hacer que yash obedezca a POSIX lo más posible.

Si yash se inicia con el nombre "sh", el modo POSIXly-correct se habilita automáticamente.
La -o posixly-correcto La opción de línea de comandos también habilita el modo POSIXly-correct. Después
yash se ha iniciado, el modo POSIXly correcto se puede habilitar ejecutando el comando
cadena . -o posixly-correcto.

Cuando el modo POSIXly-correct está activado, yash no solo intenta obedecer los requisitos
POSIX, pero también trata como errores la mayoría de las condiciones en las que el comportamiento es indefinido or
sin especificar por POSIX. Como resultado, la mayoría de las funcionalidades específicas de Yash están deshabilitadas en el
Modo POSIXly correcto.

A continuación se muestra la lista completa de las diferencias de comportamiento entre cuando yash está en el
Modo POSIXly correcto y cuando no. Cuando el modo POSIXly-correct está habilitado:

· Se utilizan diferentes scripts de inicialización.

· Los alias globales no se sustituyen.

· Los comandos anidados en un comando compuesto no deben estar vacíos.

· Las palabras expandidas en un bucle for se asignan como una variable global en lugar de local.
La variable debe tener un nombre portátil (solo ASCII). Un punto y coma antes do no puede
aparecer sin in después del nombre de la variable.

· El primer patrón en un comando de caso no se puede esac.

· Los función La palabra clave no se puede utilizar para la definición de funciones. La función debe tener un
nombre portátil (solo ASCII).

· Los comandos simples no se pueden asignar a matrices.

· Cambiar el valor de la LC_CTYPE variable después de que se haya inicializado el shell
no afecta la configuración regional del shell.

· Los AZAR La variable no se puede utilizar para generar números aleatorios.

· La expansión de Tilde solo se expande ~ y ~nombre de usuario.

· La expansión de parámetros no se puede anidar. No se permiten índices.

· Los comandos en una sustitución de comandos de la forma $(comandos) se analizan cada vez
se ejecuta la sustitución.

· En expansión aritmética, los números fraccionarios y la ++ y -- los operadores no pueden ser
usado. Todas las variables deben ser numéricas.

· En una redirección a un archivo, si la expansión del nombre de ruta arrojó más de una o ninguna
nombre de ruta, no se trata inmediatamente como un error. En cambio, el caparazón intenta tratar
la palabra antes de la expansión como nombre de ruta.

· Redirección de socket, aquí cadenas, redirección de tubería y redirección de proceso no se pueden
usado.

· Al ejecutar un comando simple, la falla en la búsqueda de comandos no activa la ejecución
del COMMAND_NOT_FOUND_HANDLER variable.

· En la búsqueda de comandos, un integrado normal debe tener un comando externo correspondiente
para que se encuentre el empotrado.

· Los comandos asíncronos ignoran las señales SIGINT y SIGQUIT incluso cuando el control del trabajo está
activo. La entrada estándar de comandos asincrónicos se redirige a / dev / null si el
shell no es interactivo, independientemente de si el control de trabajos está activo o no.

· Algunos incorporados se comportan de manera diferente. Especialmente, algunas opciones de la línea de comandos no se pueden
usado.

· Un shell no interactivo sale cuando un incorporado especial recibe un sintácticamente incorrecto
argumentos o cuando ocurre un error en la asignación o redirección con un especial
incorporado.

· Un shell interactivo no ejecuta el PROMPT_COMMAND variable antes de imprimir una
inmediato. Los valores de la PS1, PS2 y PS4 las variables se analizan de forma diferente.

· En la comprobación de correo, se imprime un mensaje de notificación si el archivo ha sido modificado,
independientemente de si el archivo está vacío.

FRECUENTEMENTE PREGUNTADO FRECUENTES Y SOLUCIÓN DE PROBLEMAS


La tu préstamo estudiantil prompt is demasiado sencillo...
Sin un archivo yashrc, yash es casi lo mismo que un shell POSIX sin formato. Ponga la muestra yashrc
en su directorio personal~ / .yashrc) y personalícelo como desee.

Cómo can I use Unicode (no ASCII) ¿caracteres?
Necesita establecer variables de entorno local para habilitar el soporte de caracteres Unicode.

Si las variables ya se han configurado para su preferencia, probablemente no tenga
hacer cualquier cosa. Para comprobar las configuraciones locales actuales, puede utilizar el local
mando:

$ localidad
LANG =
LC_CTYPE = "en_US.utf8"
LC_NUMERIC = "en_US.utf8"
LC_TIME = "en_US.utf8"
LC_COLLATE = "en_US.utf8"
LC_MONETARY = "en_US.utf8"
LC_MESSAGES = "en_US.utf8"
LC_PAPER = "en_US.utf8"
LC_NAME = "en_US.utf8"
LC_ADDRESS = "en_US.utf8"
LC_TELEPHONE = "en_US.utf8"
LC_MEASUREMENT = "en_US.utf8"
LC_IDENTIFICATION = "en_US.utf8"
LC_ALL = en_US.utf8

En este ejemplo, el local El comando muestra que todas las categorías de configuración regional son
configurado para el idioma inglés, la región de Estados Unidos y la codificación UTF-8.

Si la configuración actual no parece coincidir con sus preferencias, configure el LC_TODOS
variable como esta:

exportar LC_ALL = en_US.utf8

Si desea utilizar otros idiomas, regiones o codificaciones, debe establecer la variable en
un valor diferente. Consulte la documentación de su sistema operativo para aprender a configurar estos
variables en detalle.

Si desea aplicar la misma configuración cada vez que inicia yash, escriba el comando
in ~ / .yashrc or ~ / .yash_profile.

Si yash aún rechaza los caracteres Unicode que se ingresan, consulte la sección siguiente sobre
edición de líneas.

Edición de línea No Trabaja
Primero, escriba echo $ TERM y ver si imprime un cuerdo . xterm es el valor más seguro que
debería funcionar en cualquier entorno existente. Versiones coloreadas como xterm-16color así como de otros
tipos de terminales como rxvt y vt100 también puede funcionar. Todos los valores posibles se pueden enumerar por el
dedo del pie mando. Es más conveniente elegir un valor que coincida con el tipo de terminal real
que está utilizando, pero es posible que no funcione si el tipo de terminal que eligió no es compatible con
el sistema en el que se está ejecutando yash. Si es así, intente cambiar el PLAZO valor por exportar
TERM = xterm, por ejemplo, para encontrar un valor que funcione.

Si la edición de líneas funciona pero tiene problemas para ingresar caracteres Unicode (no ASCII), intente
habilitando la opción le-no-conv-meta por . -o le-no-conv-meta.

FORMAL DEFINICIÓN OF COMANDO SINTAXIS


Este capítulo define la sintaxis de los comandos de shell como una gramática de expresión de análisis.

El conjunto de terminales de la gramática es el conjunto de caracteres que se pueden manejar en el
entorno en el que se ejecuta el shell (también conocido como juego de caracteres de ejecución), con la excepción
que el conjunto no contiene el carácter nulo ('\ 0').

A continuación se muestra una lista de no terminales de la gramática con las expresiones de análisis correspondientes. El
La lista no incluye reglas para analizar el contenido y los documentos al final de este documento. En el
Modo POSIXly correcto, la gramática varía de la lista a continuación para deshabilitar no POSIX
funcionalidades.

Comando completo
SecuenciaEOF

Secuencia
N * Lista *

Lista
Tubería ((&& / ||) N * Pipeline) * ListSeparator

Tubería
¿Estallido? Comando (|N * Comando) *

Comando
CompoundCommandRedirection * /

! RFunctionDefinition /

! R SimpleCommand

ComandoCompuesto
Subshell / Agrupación / IfCommand / ForCommand / WhileCommand / CaseCommand /
FunciónComando

subcapa
(Secuencia)S*

Agrupamiento
Soporte IzquierdoSecuenciaDerechoSoporte

SiComando
IfSequenceThen Sequence (Elif Sequence Then Sequence) * (Else Sequence)? Fi

ParaComando
ForNameS * Separator? (InWord * Separador) DoSequenceDone

MientrasComando
(Mientras / Hasta) SequenceDo Sequence Done

CasoComando
CaseWordN * In N * CaseItem * Esac

CasoItem
! Esac ((S*)? Palabra (| Espada)* )Secuencia (;; / & Esac)

FunciónComando
FunciónPalabra ((S* ))? N * CompoundCommandRedirection *

Función Definición
Nombres * ( S* )N * CompoundCommandRedirection *

ComandoSimple
& (Palabra / Redirección) (Asignación / Redirección) * (Palabra / Redirección) *

Asignación
Nombre=Palabra /

Nombre =(N * (Palabra N *) * )

Nombre
! [[: dígito:]] [[: alnum:] _]+

Nombre portátil
![0-9] [0-9ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_]+

Word
(WordElement /! SpecialChar.) + S *

elemento de palabra
\ . / ' (!' .) * ' / "QuoteElement * " / Parámetro / Aritmética / CommandSubstitution

CotizaciónElemento
\ ([$ `" \] / NL) / Parámetro / Aritmética / Sustitución de comandos /

![`" \].

Parámetro
$ [PS [:dígito:]] / $Nombre portátil / $ParámetroCuerpo

ParámetroCuerpo
{¿Número de parámetro? (Nombre de parámetro/Cuerpo de parámetro/Parámetro) ¿Índice de parámetro?
¿Coincidencia de parámetros? }

Número de parámetro
# ![+ =: /%]! ([-? #] })

Nombre del parámetro
[PS] /

[[: alnum:] _]+

Índice de parámetros
[PalabraÍndiceParámetro (, Palabra de índice de parámetro)? ]

PalabraÍndiceParámetroPalabraÍndiceParámetro
(WordElement /! ["'],].) +

Coincidencia de parámetros
:? El- + =?] Palabra de coincidencia de parámetro /

(# / ## / % / %%) Palabra de coincidencia de parámetro /

(:/ / / [#% /]?) ParámetroMatchWordNoSlash (/ Palabra de coincidencia de parámetro)?

ParámetroMatchWord
(WordElement /! ["'}].) *

ParámetroMatchWordNoSlash
(WordElement /! ["'/}].) *

Aritmética
PSCuerpo aritmético * ))

Cuerpo aritmético
\ . / Parámetro / Aritmética / CommandSubstitution / ( Cuerpo aritmético ) /

![`()].

Sustitución de comandos
$(Secuencia) / `CommandSubstitutionBody * `

ComandoSustituciónCuerpo
\ [$ `\] /

!` .

Redirección
RedirectionFDRedirectionOperatorS * Word /

RedirecciónFD <(Secuencia) /

RedirecciónFD >( Secuencia )

RedirecciónFD
[[:dígito:]]*

Operador de redirección
< / <> / > / >| / >> / >> | / <& / >& / << / << - / <<

Separador de lista
Separador / &N * /

&) /

&;;

Separador
;N * / N + / EOF

N
S * NL

S
[[: en blanco:]] / Comentario

Comentario
# (! NL.) *

R
Bang / LeftBrace / RightBrace / Case / Do / Done / Elif / Else / Esac / Fi / For / If
/ En / Entonces / Hasta / Mientras

Explosión
!D

Soporte Izquierdo
{D

Soporte derecho
}D

Caso
caseD

Do
doD

Terminado
doneD

Elif
elifD

otro
másD

esac
esacD

Fi
fiD

Para los ensayos clínicos de CRISPR,
para D

Función
funciónD

If
ifD

In
inD

Entonces
y luego D

Hasta
hastaD

Aunque
mientrasD

D
!Palabras*

Caracter especial
[| &; <> () `\" ' [: en blanco:]] / NL

NL


EOF
!.

ALIAS INCORPORADO


La alias incorporado define y / o imprime alias.

Sintaxis
· alias [-gp] [nombre [=valor] ...]

DESCRIPCIÓN
El alias integrado define y / o imprime los alias especificados por los operandos. El impreso
Los alias se pueden utilizar como (parte de) comandos de shell. Las impresiones integradas están todas definidas actualmente
alias cuando no se proporcionan operandos.


-g, --global
Con esta opción, los alias se definen como alias globales; sin esta opción, ya que
alias normales.

-p, --prefijo
Con esta opción, los alias se imprimen en un formulario de comando completo como alias -g foo = 'bar'.
Sin esta opción, solo los operandos de comando se imprimen como foo = 'bar'.

Operandos
nombre
El nombre de un alias que se debe imprimir.

nombre =valor
El nombre y valor de un alias que se está definiendo.

Exit estado
El estado de salida del alias incorporado es cero a menos que haya algún error.

Notas
Los caracteres que no se pueden utilizar en un nombre de alias son el espacio, tabulación, nueva línea y cualquier
of = $ <> \ '"`; & | () #. Puede utilizar cualquier carácter en un valor de alias.

El alias integrado es un elemento integrado semi-especial.

El estándar POSIX no define opciones para el alias incorporado, por lo tanto, no hay opciones
disponible en el modo POSIXly correcto.

FORMACIÓN INCORPORADO


La matriz incorporado imprime o modifica matrices.

Sintaxis
· matriz

· matriz nombre [valor...]

· matriz -d nombre [índice...]

· matriz -i nombre índice [valor...]

· matriz -s nombre índice valor

DESCRIPCIÓN
Cuando se ejecuta sin ninguna opción u operandos, el integrado imprime todas las definiciones de matriz en
la salida estándar en una forma que se puede analizar como comandos.

Cuando se ejecuta con nombre y valors (pero sin una opción), el integrado establece el valors
como los valores de la matriz denominada nombre .

Con el -d (--Eliminar), el integrado elimina la índiceth valores de la matriz denominada
nombre . El número de valores en la matriz se reducirá por el número de índicees
especificado. Si el índiceEl valor no existe, se ignora silenciosamente.

Con el -i (--insertar) opción, las inserciones incorporadas valors en la matriz llamada nombre .
El número de valores en la matriz se incrementará por el número de valors especificado. El
Los valores se insertan entre los índicevalores th y next. Si índice es cero, los valores son
insertado antes del primer valor. Si índice es mayor que el número de valores en el
matriz, los valores se añaden después del último elemento.

Con el -s (--colocar) opción, los conjuntos incorporados valor como el índiceth valor de la matriz
llamado nombre . La matriz debe tener al menos índice valores.


-d, --Eliminar
Eliminar valores de matriz.

-i, --insertar
Insertar valores de matriz.

-s, --colocar
Establecer un valor de matriz.

Operandos
nombre
El nombre de una matriz sobre la que operar.

índice
El índice de un elemento de matriz. El primer elemento tiene el índice de 1.

valor
Una cadena en la que se establece el elemento de matriz.

Exit estado
El estado de salida de la matriz incorporada es cero a menos que haya algún error.

Notas
La matriz incorporada no está definida en el estándar POSIX.

El comando matriz nombre valor... es equivalente a la tarea nombre =(valor...).

BG INCORPORADO


La bg incorporado reanuda un trabajo en segundo plano.

Sintaxis
· bg [trabajo...]

DESCRIPCIÓN
El bg integrado envía la señal SIGCONT al trabajo especificado. Como resultado, el trabajo es
reanudado en segundo plano (si ha sido suspendido).

El nombre del trabajo se imprime cuando se reanuda.

El dispositivo integrado solo se puede usar cuando el control de trabajos está habilitado.

Operandos
trabajo
El ID de trabajo del trabajo que se reanudará.

Se puede especificar más de un trabajo a la vez. El trabajo actual se reanuda si no hay ninguno
especificado.

El signo de porcentaje (%) al comienzo de un ID de trabajo se puede omitir si el shell no está
en el modo POSIXly-correct.

Exit estado
El estado de salida del bg integrado es cero a menos que haya algún error.

Notas
El empotrado bg es un empotrado semi-especial.

El estándar POSIX establece que el incorporado no tendrá ningún efecto cuando el trabajo ya esté
corriendo. Sin embargo, el bg integrado de yash siempre envía la señal SIGCONT al trabajo.

LLAVE DE ENLACE INCORPORADO


La llave de encuadernación incorporado imprime o modifica las combinaciones de teclas utilizadas en la edición de líneas.

Sintaxis
· llave de encuadernación -aev [clave [comando]]

· llave de encuadernación -l

DESCRIPCIÓN
Cuando se ejecuta con el -l (--lista), la función incorporada enumera todas las opciones de edición de línea disponibles.
comandos a la salida estándar.

Cuando se ejecuta con una de las otras opciones, el integrado imprime o modifica las combinaciones de teclas
para el modo de edición especificado por la opción:

· Sin que clave or comando, todos los enlaces definidos actualmente se imprimen según el estándar
salida en una forma que se puede analizar como comandos que restauran los enlaces actuales cuando
ejecutado.

· Con clave pero sin comando, solo el enlace para lo dado clave está impreso.

· Con clave y comando, clave está obligado a comando.


-a, --vi-comando
Imprima o modifique enlaces para el modo de comando vi.

-e, --emacs
Imprime o modifica enlaces para el modo emacs.

-v, --vi-insertar
Imprime o modifica enlaces para el modo de inserción vi.

Operandos
clave
Una secuencia de caracteres de una o más teclas que está vinculada a un comando de edición. El
la secuencia puede incluir secuencias de escape.

comando
Un comando de edición de línea al que clave está obligado. Si comando es un solo guion-), clave
está desatado.

Exit estado
El estado de salida de la clave de enlace incorporada es cero a menos que haya algún error.

Notas
La clave de enlace incorporada no está definida en el estándar POSIX.

Oración INCORPORADO


La romper incorporado aborta un bucle que se está ejecutando.

Sintaxis
· romper [nido]

· romper -i

DESCRIPCIÓN
Cuando se ejecuta sin el -i (--iteración), el integrado cancela una
ejecutado durante, mientras o hasta el bucle. Cuando se ejecuta en bucles anidados, aborta el nidoth
bucle más interno. El valor por defecto nido es uno. Si el número de bucles anidados ejecutados actualmente
es menor que nido, el integrado aborta el bucle más externo.

Cuando se ejecuta con el -i (--iteración), el incorporado aborta el ejecutado actualmente
ejecución iterativa (más interna).


-i, --iteración
Abortar una ejecución iterativa en lugar de un bucle.

Operandos
nido
El número de bucles para abortar, que debe ser un número entero positivo.

Exit estado
El estado de salida del break integrado es:

· Cero si un bucle se abortó con éxito.

· El del comando que se ejecutó justo antes de la pausa incorporada si es iterativo
la ejecución fue abortada con éxito.

Notas
El freno incorporado es un incorporado especial.

El estándar POSIX no define opciones para la interrupción incorporada; el incorporado no acepta
opciones en el modo POSIXly-correct.

CD INCORPORADO


La cd incorporado cambia el directorio de trabajo.

Sintaxis
· cd [-L | -P] [directorio]

DESCRIPCIÓN
El cd incorporado cambia el directorio de trabajo al directorio especificado por el operando.
El nombre de ruta del nuevo directorio de trabajo se asigna al PWD variable, cuyo anterior
El valor se asigna de nuevo al viejo variable.

If directorio es una ruta relativa que no comienza con '.' o '..', rutas en el CDPATH
se buscan variables para encontrar un nuevo directorio de trabajo. La búsqueda se realiza de una manera
similar al último paso de la búsqueda de comandos, pero se busca un directorio en lugar de un
archivo regular ejecutable. Si se encontró un nuevo directorio de trabajo en CDPATH, su nombre de ruta es
impreso en la salida estándar. Si no se encontró ningún directorio aplicable en la búsqueda,
directorio se trata simplemente como un nombre de ruta relativo al directorio de trabajo actual.

Si el directorio de trabajo se cambió con éxito, el valor de la YASH_AFTER_CD variable
se ejecuta como un comando a menos que el shell esté en el modo POSIXly correcto. Si la variable
es una matriz, sus valores se ejecutan iterativamente (cf. eval integrado).


-L, --lógico
Los enlaces simbólicos en la ruta del nuevo directorio de trabajo no se resuelven. El nuevo
valor de la PWD puede incluir componentes de nombre de ruta que son enlaces simbólicos.

-P, --físico
Se resuelven los enlaces simbólicos en la ruta del nuevo directorio de trabajo. El nuevo
valor de la PWD La variable nunca incluye componentes de nombre de ruta que son enlaces simbólicos.

- directorio-predeterminado =directorio
Si se especifica esta opción y el directorio operando se omite, el argumento de este
La opción se utiliza para directorio operando. Si el directorio se especifica el operando, este
se ignora la opción.

La -L (--lógico) y -P (--físico) las opciones son mutuamente excluyentes: solo la última
el especificado es efectivo. Si no se especifica ninguno, -L se supone.

Operandos
directorio
El nombre de la ruta del nuevo directorio de trabajo.

If directorio es un solo guion ('-'), el valor del viejo se asume la variable para
el nuevo nombre de ruta del directorio, que se imprime en la salida estándar.

If directorio se omite, el directorio de trabajo se cambia al directorio especificado
según el - directorio-predeterminado = ... opción. Si tampoco se especifica esa opción, la
el predeterminado es el directorio de inicio.

Exit estado
El estado de salida del cd incorporado es cero si el directorio de trabajo se
cambiado y distinto de cero si hubo un error.

Notas
El cd incorporado es un incorporado semiespecial.

El estándar POSIX no define el uso de la YASH_AFTER_CD variable o la
- directorio-predeterminado = ... opción. El estándar no permite usar una opción con un solo
operando de guión.

El estado de salida de los comandos en el YASH_AFTER_CD variable no afecta a la de la
cd incorporado.

COLON INCORPORADO


La colon incorporado no hace nada.

Sintaxis
· : [argumento...]

DESCRIPCIÓN
El colon integrado no hace nada. Se ignoran los argumentos de la línea de comandos.

Exit estado
El estado de salida de los dos puntos integrados es cero.

Notas
El colon integrado es un elemento integrado especial.

Los argumentos se expanden y las redirecciones se realizan como de costumbre. El colon y la verdad
incorporados tienen el mismo efecto, pero dos puntos es un incorporado especial mientras que verdadero es un
semi-especial.

COMANDO INCORPORADO


La comando incorporado ejecuta o identifica un comando.

Sintaxis
· comando [-befp] comando [argumento...]

· comando -v | -V [-abefkp] comando...

DESCRIPCIÓN
Sin el -v (--identificar) o -V (--verbio-identificar) opción, el integrado ejecuta
comando con argumentos de la misma manera que el último paso de ejecución de simple
comandos. El comando se trata como un comando incorporado o externo o una función de acuerdo con
a las opciones especificadas en el comando incorporado. El shell no sale con el argumento.
error de sintaxis, etc.incluso si el comando es una función incorporada especial

Con el -v (--identificar) opción, comando es identificado. Si el comando se encuentra en $ RUTA,
se imprime su ruta completa. Si es una palabra clave, función o incorporado que no se encuentra
in $ RUTA, el nombre del comando simplemente se imprime. Si es un alias, se imprime en el formulario
como uno alias ll = 'ls -l '. Si no se encuentra el comando, no se imprime nada y el estado de salida
no es cero.

La -V (--verbio-identificar) opción es similar a la -v (--identificar) opción, pero la
El formato de salida es más amigable para los humanos.


-a, --alias
Busque el comando como un alias. Debe usarse con el -v (--identificar) o -V
(--verbio-identificar) opción.

-b, --comando incorporado
Busque el comando como integrado.

-e, --comando-externo
Busque el comando como un comando externo.

-f, --función
Busque el comando como una función.

-k, --palabra clave
Busque el comando como palabra clave. Debe usarse con el -v (--identificar) o -V
(--verbio-identificar) opción.

-p, --ruta estándar
Buscar el valor predeterminado del sistema TRAYECTORIA en lugar de la corriente $ RUTA.

-v, --identificar
Identifica comandosy imprimir en el formato definido en el estándar POSIX.

-V, --verbio-identificar
Identifica comandosy imprímalos en un formato amigable para los humanos.

Si ninguno de los -a (--alias), -b (--comando incorporado), -e (--comando-externo), -f
(--función), o -k (--palabra clave) se especifican las opciones, se asumen los siguientes valores predeterminados:

Sin el -v (--identificar) o -V (--verbio-identificar) opción
-b -e

Con el -v (--identificar) o -V (--verbio-identificar) opción
-a -b -e -f -k

Operandos
comando
Un comando para ser ejecutado o identificado.

argumento...
Se pasan argumentos al comando ejecutado.

Exit estado
El estado de salida del comando integrado es:

Sin el -v (--identificar) o -V (--verbio-identificar) opción
el estado de salida del comando ejecutado.

Con el -v (--identificar) o -V (--verbio-identificar) opción
cero a menos que haya algún error.

Notas
El comando integrado es un elemento integrado semi-especial.

En el modo POSIXly-correct, las opciones distintas de -p, -v y -V no se puede utilizar y como máximo
uno comando se puede especificar. El estándar POSIX no permite especificar ambos -v y -V
juntos, pero yash sí (solo el último especificado es efectivo).

COMPLETA INCORPORADO


La completar incorporado genera candidatos de finalización. Este integrado solo se puede ejecutar
desde las funciones de finalización durante la finalización de la línea de comandos.

Sintaxis
· completar [-UN patrón] [-R patrón] [-T] [-PAG prefijo] [-S sufijo] [-abcdfghjkuv] [[-O]
[-D description] palabra clave...]

DESCRIPCIÓN
El integrado genera candidatos de finalización de acuerdo con los argumentos especificados. No
importa cómo se generen los candidatos, solo los candidatos que coincidan con la palabra que se está completando
son generadas.


-A patrón, --accept =patrón
Acepte únicamente candidatos que coincidan con el patrón especificado por esta opción. Cuando mas de
se especifica una de estas opciones, solo los candidatos que coinciden con todos los patrones son
generado.

-D description, --description =description
Dar una descripción del palabra clave candidatos. La descripción se muestra junto al
candidatos en la lista de candidatos.

-O, --opción
Los candidatos se tratan como opciones de línea de comandos. Se antepone un guion a cada
candidato que se trata como una opción.

-P prefijo, --prefix =prefijo
pasar por alto prefijo de la palabra que se completa al generar candidatos. El especificado
prefijo debe ser parte inicial de la palabra.

Si la palabra que se completa es archivo: /// inicio / usuario / docume por ejemplo, la línea de comando
completar -P expediente:// -f generará candidatos a nombre de ruta que completen
/ inicio / usuario / docume.

-R patrón, --reject =patrón
Rechace candidatos que coincidan con el patrón especificado por esta opción. Cuando mas de uno
de esta opción, solo los candidatos que no coinciden con ninguno de los patrones son
generado.

-S sufijo, --sufijo =sufijo
Adjuntar sufijo a cada candidato generado.

-T, --no-terminación
No agregue un espacio después de completar la palabra. Sin esta opción, un espacio es
adjunto a la palabra completa para que no tenga que ingresar un espacio antes de la
siguiente palabra.

que selecciona candidato tipos
-a, --alias
Alias. (igual que --alias-normal --alias-global)

--variable de matriz
Matrices.

--bindkey
Los comandos de edición de línea llave de encuadernación incorporado acepta.

-b, --comando incorporado
Comandos integrados. (igual que --incluido especial --semi-especial-incorporado
--regular-incorporado)

-c, --mando
Comandos. (igual que --comando incorporado --comando-externo --función)

-d, --directorio
Directorios

--dirstack-índice
Índices válidos de la pila de directorios.

--Archivo ejecutable
Archivos regulares ejecutables.

--comando-externo
Comandos externos.

-f, --expediente
Archivos (incluidos directorios).

trabajo terminado
ID de trabajo de trabajos terminados.

--función
Funciones

--alias-global
Alias ​​globales.

-g, --grupo
Grupos de Usuarios.

-h, --nombre de host
Nombres de host.

-j, --trabajo
ID de trabajo.

-k, --palabra clave
Palabras clave

--alias-normal
Alias ​​normales.

--regular-incorporado
Comandos incorporados regulares.

trabajo en marcha
ID de trabajo de los trabajos que se están ejecutando.

- variable escalar
Variables que no son matrices.

--semi-especial-incorporado
Comandos integrados semi-especiales.

--señal
Señales

--incluido especial
Comandos especiales incorporados.

--trabajo parado
ID de trabajos de trabajos que están suspendidos.

-u, --nombre de usuario
Nombres de inicio de sesión de los usuarios.

-v, --variable
Variables

Si -d (--directorio) La opción se especifica sin la -f (--expediente) opción, la -S /
-T se asumen opciones.

Los candidatos generados para las identificaciones de trabajo no tienen signos de porcentaje iniciales (%). Si la palabra
completarse comienza con un signo de porcentaje, el -P % se debe especificar la opción.

Operandos
Los operandos se tratan como candidatos de finalización.

Exit estado
El estado de salida del incorporado es cero si se generaron uno o más candidatos, uno si
no se generaron candidatos, o más de uno si se produjo un error.

Notas
El integrado completo no está definido en el estándar POSIX.

CONTINUAR INCORPORADO


La continue incorporado omite una iteración de un bucle que se está ejecutando.

Sintaxis
· continue [nido]

· continue -i

DESCRIPCIÓN
Cuando se ejecuta sin el -i (--iteración) opción, el integrado aborta la corriente
iteración del ciclo for, while o until y comienza la siguiente iteración del ciclo. Cuándo
ejecutado en bucles anidados, afecta al nidoth bucle más interno. El valor por defecto nido es uno.
Si el número de bucles anidados ejecutados actualmente es menor que nido, el incorporado afecta
el bucle más externo.

Cuando se ejecuta con el -i (--iteración) opción, el integrado aborta la iteración actual
de ejecución iterativa (más interna).


-i, --iteración
Omita una ejecución iterativa en lugar de un bucle.

Operandos
nido
La nidoEl bucle más interno se ve afectado. nido debe ser un número entero positivo.

Exit estado
El estado de salida de continuar incorporado es:

· Cero si la iteración del bucle se omitió con éxito.

· El del comando que se ejecutó justo antes de continuar incorporado si es iterativo
la ejecución se omitió con éxito.

Notas
Continuar incorporada es una incorporada especial.

El estándar POSIX no define opciones para continuar incorporado; el incorporado no acepta
opciones en el modo POSIXly-correct.

DIRS INCORPORADO


La dirs incorporado imprime el contenido de la pila de directorios.

Sintaxis
· dirs [-CV] [índice..]

DESCRIPCIÓN
La directorio montón es una función que registra el historial de directorios de trabajo. Puedes usar
el pushd incorporado para guardar un directorio de trabajo en la pila de directorios, el popd incorporado
para recuperar el directorio de trabajo guardado y los directorios integrados para ver el contenido de la pila.
Esos incorporados usan el pila de basura matriz y el PWD variable para guardar el contenido de la pila.
Modificar la matriz significa modificar el contenido de la pila.

Las entradas de la pila de directorios están indexadas por números enteros firmados. La entrada de índice +0 es la
directorio de trabajo actual, +1 es el último directorio guardado, +2 es el penúltimo, por lo que
sobre. Los índices negativos están en orden inverso: la entrada del índice -0 es la primera que se guarda
directorio, -1 es el segundo, y -n es el directorio de trabajo actual si la pila tiene n
entradas,

Cuando se ejecuta sin el -c (--claro) opción, el directorio incorporado imprime la
contenido de la pila de directorios a la salida estándar. Con el -c (--claro) opción, la
incorporado borra la pila de directorios.


-c, --claro
Borre el contenido de la pila de directorios, excepto el directorio de trabajo actual, que tiene
índice +0.

-v, --verboso
Imprime índices al imprimir el contenido de la pila.

Operandos
índice
El índice de una entrada de pila que se va a imprimir.

Puede especificar más de un índice. Si no especifica ningún índice, todas las entradas
están impresos.

Exit estado
El estado de salida de los directorios integrados es cero a menos que haya algún error.

Notas
Los directorios integrados no están definidos en el estándar POSIX.

RENEGAR DE INCORPORADO


La renegar de incorporado elimina puestos de trabajo.

Sintaxis
· renegar de [-un] [trabajo...}

DESCRIPCIÓN
La función de rechazo elimina los trabajos especificados de la lista de trabajos. Los trabajos eliminados no
ser controlados por el trabajo, pero los procesos del trabajo continúan ejecutándose (a menos que hayan sido
suspendido).


-a, --todas
Elimina todos los trabajos.

Operandos
trabajo
El ID de trabajo del trabajo que se eliminará.

Puede especificar más de un ID de trabajo. Si no especifica ningún ID de trabajo, el actual
se elimina el trabajo. Si el shell no está en el modo POSIXly correcto, el prefijo% del
La identificación del trabajo se puede omitir.

Exit estado
El estado de salida del disown incorporado es cero a menos que haya algún error.

Notas
El rechazo incorporado no está definido en el estándar POSIX.

DOT INCORPORADO


La punto incorporado lee un archivo y ejecuta comandos en él.

Sintaxis
· . [-ALABAMA] presentar [argumento...]

DESCRIPCIÓN
El punto incorporado lee el especificado presentar, analiza su contenido como comandos y ejecuta
ellos en el entorno de ejecución de comandos actual.

If argumentos se especifican, los parámetros posicionales se establecen temporalmente en ellos. El
Los parámetros posicionales se restaurarán cuando finalice el punto incorporado. Si no argumentos son
especificado, los parámetros posicionales no se modifican.

If presentar no contiene ninguna barra, el shell busca $ RUTA para un legible (pero no
necesariamente ejecutable) archivo de script de shell cuyo nombre es presentar de la misma manera que el comando
búsqueda. Si no se encuentra dicho archivo, el shell busca en el directorio de trabajo actual un
archivo a menos que esté en el modo POSIXly-correct. Para asegurarse de que el archivo en el trabajo actual
se utiliza el directorio, iniciar presentar con './'.


-A, --sin alias
Desactive la sustitución de alias durante el análisis.

-L, --autoad
Buscar $ YASH_LOADPATH en lugar de $ RUTA, independientemente de si presentar contiene barras.
La presentar El valor no se considera relativo al directorio de trabajo actual.

El punto incorporado trata como operandos cualquier argumento de línea de comando después del primer operando.

Operandos
presentar
El nombre de la ruta de un archivo que se va a leer.

argumentos...
Cadenas en las que se establecen los parámetros posicionales durante la ejecución.

Exit estado
El estado de salida del punto incorporado es el del último comando ejecutado. El estado de salida
es cero si el archivo no contiene comandos para ejecutar y distinto de cero si no se encontró un archivo
o no se pudo abrir.

Notas
El punto integrado es un elemento integrado especial.

Un shell no interactivo sale inmediatamente con un estado de salida distinto de cero si el punto incorporado
no puede encontrar o abrir un archivo para ejecutar.

El estándar POSIX no define opciones para el punto incorporado; el incorporado no acepta
opciones en el modo POSIXly-correct.

El estándar POSIX no define el argumentos... operandos. Es un error especificar
el argumentos... operandos en el modo POSIXly-correct.

ECHO INCORPORADO


La echo incorporado imprime sus argumentos.

Sintaxis
· echo [cadena...]

El integrado trata todos los argumentos de la línea de comando como operandos excepto las opciones
descrito abajo. Cualquier palabra que no se pueda analizar como una opción aceptable se trata como una
operando. Las opciones deben preceder a todos los operandos. Los errores de sintaxis nunca ocurren en el eco
incorporado.

DESCRIPCIÓN
El eco incorporado imprime el operando cadenas seguido de una nueva línea a la salida estándar.
La cadenas están separados por un espacio.

Escapar secuencias
La ESTILO_ECO variable y la -e opción habilitar secuencias de escape que se reemplazan
con los caracteres correspondientes:

\a
Carácter de campana (código ASCII: 7)

\b
Retroceso (código ASCII: 8)

\c
Nada. Después de esta secuencia de escape, no se imprime ningún carácter.

\e
Carácter de escape (código ASCII: 27)

\f
Carácter de alimentación de formulario (código ASCII: 12)

\n
Carácter de nueva línea (código ASCII: 10)

\r
Carácter de retorno de carro (código ASCII: 13)

\t
Carácter de tabulación horizontal (código ASCII: 9)

\v
Carácter de tabulación vertical (código ASCII: 11)

\\
Barra invertida

\0xxx
Personaje cuyo código es xxx, donde el xxx es un número octal de como máximo tres dígitos.

Cuando las secuencias de escape no están habilitadas, simplemente se imprimen intactas.

ESTILO_ECO variable
La ESTILO_ECO variable define qué opciones se aceptan y si escape
Las secuencias están habilitadas de forma predeterminada. El valor de la variable debe establecerse en uno de los
siguientes:

SYSV, XSI
No se aceptan opciones. Las secuencias de escape siempre están habilitadas.

BSD
La -n se acepta la opción. Las secuencias de escape nunca están habilitadas.

GNU
La -n, -e y -E Se aceptan opciones. Las secuencias de escape no están habilitadas por
por defecto, pero puede ser habilitado por el -e .

zsh
La -n, -e y -E Se aceptan opciones. Las secuencias de escape están habilitadas de forma predeterminada,
pero puede ser deshabilitado por el -E .

DASH
La -n se acepta la opción. Las secuencias de escape siempre están habilitadas.

RAW
No se aceptan opciones. Las secuencias de escape nunca están habilitadas.

Cuando el ESTILO_ECO variable no está configurada, por defecto es SYSV.


-n
No imprima una nueva línea al final.

-e
Habilitar secuencias de escape.

-E
Deshabilitar secuencias de escape.

Exit estado
El estado de salida del eco incorporado es cero a menos que haya algún error.

Notas
El estándar POSIX no define el ESTILO_ECO variable ni ninguna opción para el
incorporado. De acuerdo con POSIX, el comportamiento del incorporado está definido por la implementación cuando
el primer argumento es -n o cuando cualquier argumento contiene una barra invertida. Para máximo
portabilidad, se debe preferir el printf incorporado sobre el echo incorporado.

EVAL INCORPORADO


La eval incorporado evalúa los operandos como comandos.

Sintaxis
· eval [-I] [comando...]

El eval incorporado requiere que todas las opciones precedan a los operandos. Cualquier argumento de línea de comando
después del primer operando se tratan todos como operandos.

DESCRIPCIÓN
El eval analiza los operandos como comandos y los ejecuta en la ejecución del comando actual
ambiente.

Cuando se ejecuta sin el -i (--iteración), todos los operandos se concatenan en
una cadena (con un espacio insertado entre cada operando) y analizada/ejecutada a la vez.

Con el -i (--iteración), la función integrada realiza iterativo ejecución: los operandos son
analizado/ejecutado uno por uno. Si el comando continue incorporado se ejecuta con el -i (--iteración)
opción durante la ejecución iterativa, la ejecución del operando actual se aborta y
el siguiente operando se analiza/ejecuta inmediatamente. El descanso integrado con el -i
(--iteración) es similar pero los operandos restantes no se analizan/ejecutan. El
valor de la ? El parámetro especial se guarda antes de que comience la ejecución iterativa. El
el valor del parámetro se restaura al guardado después de cada iteración.


-i, --iteración
Realizar una ejecución iterativa.

Operandos
comando
Una cadena que se analiza y ejecuta como comandos.

Exit estado
El estado de salida es cero si no comando fue especificado o comando no contenía ningún comando real
que se puede ejecutar. De lo contrario, es decir, si el eval incorporado ejecutó uno o más
comandos, el estado de salida del eval incorporado es el del último comando ejecutado.

Notas
El eval incorporado es un incorporado especial.

El estándar POSIX no define opciones para la evaluación integrada; el incorporado no acepta
opciones en el modo POSIXly-correct.

EJEC INCORPORADO


La ejecutivo incorporado reemplaza el proceso de shell con otro comando externo.

Sintaxis
· ejecutivo [-cf] [-un nombre ] [comando [argumento...]]

El exec incorporado requiere que todas las opciones precedan a los operandos. Es importante para que
Las opciones para el exec incorporado no se confunden con las opciones para comando. Cualquier línea de comando
argumentos después comando son tratados como argumentos.

DESCRIPCIÓN
Cuando el exec integrado se ejecuta con comando, el shell ejecuta comando con argumentos
de manera similar al último paso de ejecución de un comando simple. las diferencias son
que comando siempre se trata como un comando externo que ignora cualquier función existente y
integrados y que la llamada al sistema exec que inicia el comando externo se llama en el
entorno de ejecución de comandos actual en lugar de un subshell, reemplazando el proceso de shell
con el nuevo proceso de comando.

Si el shell está en el modo POSIXly-correct o no es interactivo, falla en la ejecución de
comando hace que el shell salga inmediatamente.

Si un shell interactivo que no está en el modo POSIXly-correct tiene un trabajo detenido, el
shell imprime un mensaje de advertencia y se niega a ejecutar comando. Una vez que el proceso de shell es
reemplazado con un comando externo, la información sobre los trabajos del shell se pierde, por lo que
tiene que reanudar o eliminar los trabajos detenidos mediante el envío de señales a mano. Para obligar a la cáscara a
ejecutar comando independientemente, especifique el -f (--fuerza) opción.

Cuando se ejecuta sin comando, el incorporado no hace nada. Sin embargo, como efecto secundario,
la redirección aplicada a los restos integrados en el entorno de ejecución de comandos actual
incluso después de que el incorporado terminó.


-a nombre , --como=nombre
Pass nombre , En lugar de comando, al comando externo como su nombre.

-c, --claro
Pasar al comando externo solo las variables que se asignan en el comando simple en
que se está ejecutando el incorporado. Otras variables de entorno no se pasan a
El comando.

-f, --fuerza
Suprime las advertencias que impedirían la ejecución del comando.

Operandos
comando
Un comando externo a ejecutar.

argumento...
Argumentos a pasar al comando.

Exit estado
Si el proceso de shell se reemplazó con éxito con el comando externo, no hay salida
estado ya que el proceso de shell ya no existe.

El estado de salida es:

· 127 si no se encuentra el comando,

· 126 si se encontró el comando pero no se pudo ejecutar, y

· cero si no comando fue especificado.

Notas
El exec incorporado es un incorporado especial.

El estándar POSIX no define opciones para el exec integrado; el incorporado no acepta
opciones en el modo POSIXly-correct.

SALIR INCORPORADO


La salida incorporado hace que el proceso de shell se cierre.

Sintaxis
· salida [-F] [estado_salida]

DESCRIPCIÓN
La salida incorporada hace que el proceso de shell (o subshell) actual se cierre.

Si un shell interactivo tiene un trabajo detenido, el shell imprime un mensaje de advertencia y rechaza
salir. Para forzar la salida del shell independientemente, especifique el -f (--fuerza) opción o ejecutar
el incorporado dos veces seguidas.

Si se ha configurado una trampa EXIT, el shell ejecuta la trampa antes de salir.


-f, --fuerza
Suprima las advertencias que impedirían la salida del shell.

Operandos
estado_salida
Un entero no negativo que será el estado de salida del shell saliente.

Si se omite este operando, el estado de salida del shell será el del último
comando ejecutado antes de la salida integrada (pero, si la función integrada se ejecuta durante una
trap, el estado de salida será el del último comando antes de entrar en el trap).

If estado_salida es 256 o mayor, el estado de salida real será el resto de
estado_salida dividido por 256.

Exit estado
Debido a que el incorporado hace que el shell se cierre, no hay un estado de salida del incorporado.

Como excepción, si el shell se niega a salir, el estado de salida del integrado es
distinto de cero.

Notas
La salida incorporada es un incorporado especial.

El estándar POSIX no define opciones para la salida incorporada; el incorporado no acepta
opciones en el modo POSIXly-correct.

El estándar POSIX establece que el estado_salida operando debe estar entre 0 y 255
(inclusivo). Yash acepta enteros mayores de 255 como extensión.

Si el incorporado se ejecuta durante una trampa EXIT, el shell simplemente sale sin ejecutar
la trampa de nuevo. Si estado_salida no se especificó, el estado de salida del shell es lo que el
el estado de salida sería si la trampa no se hubiera establecido. Véase también Terminación del caparazón.

EXPORTAR INCORPORADO


La exportar incorporado marca variables para exportar a procesos secundarios.

Sintaxis
· exportar [-prX] [nombre [=valor] ...]

DESCRIPCIÓN
La exportación integrada es equivalente a la composición tipográfica integrada con el -gx .

Notas
La exportación integrada es una función especial integrada.

El estándar POSIX define el -p opción solamente; otras opciones no se pueden utilizar en el
Modo POSIXly-correct. El POSIX no permite usar la opción junto con operandos.

FALSO INCORPORADO


La false incorporado no hace nada sin éxito.

Sintaxis
· false

DESCRIPCIÓN
El falso incorporado no hace nada. Los argumentos de la línea de comandos se ignoran.

Exit estado
El estado de salida del falso incorporado es distinto de cero.

Notas
El incorporado falso es un incorporado semiespecial.

FC INCORPORADO


La fc incorporado vuelve a ejecutar o imprime comandos del historial de comandos.

Sintaxis
· fc [-qr] [-mi editor] [comienzo [final]]

· fc -s[q] [los ancianos =new] [comienzo]

· fc -l[nrv] [comienzo [final]]

DESCRIPCIÓN
Cuando se ejecuta sin el -l (--lista), la función incorporada ejecuta los comandos en el
intervalo de historial de comandos especificado por los operandos. Si el -s (--silencio) la opción no es
especificado, el shell invoca un editor que le permite editar los comandos antes de que
son ejecutados. Los comandos se ejecutan cuando sale del editor. Si el -s (--silencio)
se especifica la opción, los comandos se ejecutan inmediatamente. En cualquier caso, el ejecutado
los comandos se imprimen en la salida estándar y se agregan al historial.

Cuando se ejecuta con el -l (--lista), la opción incorporada imprime los comandos en el comando
intervalo de historial especificado por los operandos. Por defecto, los comandos se imprimen con su
números de entrada de historial, pero el formato de salida se puede cambiar usando el -n (--sin números)) y
-v (--verboso) opciones.


-e editor, --editor =editor
Especifique un editor que se utilice para editar comandos.

Si no se especifica esta opción, el valor de la FCEDIT se utiliza la variable. Si el
la variable tampoco está configurada, vi se utiliza.

-l, --lista
Imprimir entradas del historial de comandos.

-n, --sin números
No imprima números de entrada al imprimir entradas de historial.

-q, --tranquilo
No imprima comandos antes de ejecutarlos.

-r, --contrarrestar
Invierta el orden de las entradas de comando en el rango.

-s, --silencio
Ejecute comandos sin editarlos.

-v, --verboso
Imprime el tiempo de ejecución antes de cada entrada del historial al imprimir.

Operandos
comienzo y final
La comienzo y final Los operandos especifican un rango de entradas del historial de comandos que son
ejecutado o impreso. Si uno de los operandos es un número entero, se trata como un historial
número de entrada. Un entero negativo significa que el nª entrada más reciente donde n son los
valor absoluto del entero. Si uno de los operandos no es un número entero, se trata
como parte de una cadena de comando: la entrada más reciente que comienza con la cadena es
seleccionado como el inicio o final del rango.

Si la primera entrada del rango especificado por comienzo es más nuevo que el anterior
entrada del rango especificado por final, el rango se invierte como si el -r
(--contrarrestar) se especificó la opción. (Si la opción ya está especificada, es
cancelado.)

Los valores predeterminados para comienzo y final son:

┌──────┬─────────┬───────────────┐
│ │ con -lsin -l
├──────┼─────────┼───────────────┤
comienzo │ -16 │ -1 │
├──────┼─────────┼───────────────┤
final │ -16 │ igual que comienzo
└──────┴─────────┴───────────────┘

los ancianos =new
Un operando de este formato reemplaza parte de la cadena de comando. Si la cadena de comandos
contiene los ancianos , se reemplaza por new y se ejecuta la nueva cadena. solo el primero
Ocurrencia de los ancianos es remplazado.

Exit estado
Si se ejecutaron comandos, el estado de salida del fc incorporado es el último ejecutado
mando. De lo contrario, el estado de salida es cero a menos que haya algún error.

Notas
El fc incorporado es un incorporado semiespecial.

El estándar POSIX no define el -q (--tranquilo) o -v (--verboso) opciones, por lo que
no se puede utilizar en el modo POSIXly-correct.

El historial de comandos no se puede modificar durante la edición de líneas.

FG INCORPORADO


La fg incorporado reanuda un trabajo en primer plano.

Sintaxis
· fg [trabajo...]

DESCRIPCIÓN
El fg incorporado trae el trabajo especificado al primer plano y envía la señal SIGCONT a
el trabajo. Como resultado, el trabajo se reanuda en primer plano (si se ha suspendido). El
built-in luego espera a que termine el trabajo y devuelve el estado de salida del mismo.

El nombre del trabajo se imprime cuando se reanuda.

El dispositivo integrado solo se puede usar cuando el control de trabajos está habilitado.

Operandos
trabajo
El ID de trabajo del trabajo que se reanudará.

Si se especifica más de un trabajo, se reanudan en orden, uno a la vez. El
el trabajo actual se reanuda si no se especifica ninguno.

El signo de porcentaje (%) al comienzo de un ID de trabajo se puede omitir si el shell no está
en el modo POSIXly-correct.

Exit estado
El estado de salida del fg incorporado es el del (último) trabajo reanudado. El estado de salida es
distinto de cero cuando hubo algún error.

Notas
El fg incorporado es un incorporado semiespecial.

No puede especificar más de un trabajo en el modo POSIXly-correct.

OBTENER INCORPORADO


La obtener opciones incorporado analiza las opciones de comando.

Sintaxis
· obtener opciones lista de opciones variable [argumento...]

DESCRIPCIÓN
El getopts incorporado analiza las opciones de un solo carácter que aparecen en argumentos. Cada vez
se invoca el incorporado, analiza una opción y asigna el carácter de opción a
variable.

La lista de opciones El operando es una lista de caracteres de opción que debe aceptar el
analizador En lista de opciones, una opción que toma un argumento debe especificarse como la opción
carácter seguido de dos puntos. Por ejemplo, si desea que el -a, -b y -c opciones para ser
analizado y el -b opción de tomar un argumento, entonces lista de opciones debiera ser a B C.

Cuando se analiza una opción que toma un argumento, el argumento se asigna a la OPTARG
variable.

Cuando una opción que no está especificada en lista de opciones se encuentra o cuando se encuentra un argumento de opción
falta, el resultado depende del primer carácter de lista de opciones:

· Si lista de opciones comienza con dos puntos, el carácter de opción se asigna al OPTARG
variable y variable está configurado para ? (cuando la opción no está en lista de opciones) o :
(cuando falta el argumento de la opción).

· De lo contrario, variable se establece a ?, OPTARG la variable no está configurada y aparece un mensaje de error.
impreso.

El integrado analiza una opción para cada ejecución. Para todas las opciones en un conjunto de comandos
argumentos de línea para ser analizados, el incorporado debe ejecutarse repetidamente con el mismo
argumentos El incorporado utiliza el OPTAR variable para recordar cuál argumento debiera ser
analizado a continuación. Cuando el incorporado se invoca por primera vez, el valor de la variable debe ser
1, que es el valor predeterminado. No debe modificar la variable hasta que todas las opciones hayan
analizado, cuando el integrado establece la variable en el índice del primer operando en
argumentos. (Si no hay operandos, se establecerá en el número de argumentos más uno.)

Cuando desee comenzar a analizar un nuevo conjunto de argumentos, usted tiene que restablecer el OPTAR
variable a 1 de antemano.

Operandos
lista de opciones
Una lista de opciones que deben aceptarse como opciones válidas en el análisis.

variable
El nombre de una variable a la que se asignará el resultado.

argumentos
Argumentos de la línea de comandos que se van a analizar.

Cuando no argumentose dan s, se analizan los parámetros posicionales.

Exit estado
Si se encuentra una opción, esté o no especificada en lista de opciones, el estado de salida es
cero. Si no hay más opciones para analizar, el estado de salida es distinto de cero.

Ejemplo
aopt=falso bopt= copt=falso
mientras getopts ab:c opt
do
caso $inscribirse
a) aopt=verdadero;;
b) bopt=$OPTARG;;
c) copto=verdadero ;;
\?) devuelve 2 ;;
esac
done
si $aoptar; luego echo Option -a especificado; fi
if [ -n "$bopt" ]; luego echo Option -b $bopt especificado; fi
si $ copto; luego echo Option -c especificado; fi
turno $((OPTIND - 1))
echo Los operandos son: $*

Notas
In argumentos que se analizan, las opciones deben preceder a los operandos. El análisis de extremos incorporado
cuando encuentra el primer operando.

El getopts incorporado es un incorporado semiespecial.

El estándar POSIX no especifica qué sucederá cuando el OPTAR se asigna la variable
un valor diferente a 1.

Hachís INCORPORADO


La hachís incorporado recuerda, olvida o informa las ubicaciones de los comandos.

Sintaxis
· hachís comando...

· hachís -r [comando...]

· hachís [-un]

· hachís -d usuario...

· hachís -Dr [usuario...]

· hachís -d

DESCRIPCIÓN
Cuando se ejecuta con comandos pero sin opciones, el comando incorporado ejecuta inmediatamente
búsqueda de ruta y cachés comandocaminos completos de s.

Cuando se ejecuta con el -r (--retirar), elimina las rutas de comandos (o todos
rutas almacenadas en caché si no se especifica ninguna) desde el caché.

Cuando se ejecuta sin opciones o comandos, imprime las rutas almacenadas actualmente en caché al
salida estándar.

Con el -d (--directorio), la opción incorporada hace lo mismo con el directorio de inicio
caché, en lugar de la caché de ruta de comando. Las rutas del directorio de inicio en caché se usan en tilde
expansión.


-a, --todas
Imprime todas las rutas almacenadas en caché.

Sin esta opción, no se imprimen las rutas de los componentes integrados.

-d, --directorio
Afecta la memoria caché del directorio de inicio en lugar de la memoria caché de la ruta de comando.

-r, --retirar
Eliminar rutas almacenadas en caché.

Operandos
comando
El nombre de un comando externo (que no contiene ninguna barra inclinada).

usuario
Un nombre de usuario.

Exit estado
El estado de salida del hash incorporado es cero a menos que haya algún error.

Notas
El shell almacena en caché automáticamente las rutas de comando y directorio al ejecutar un comando o
realizando la expansión de tilde, por lo que normalmente no hay necesidad de usar este incorporado explícitamente
a las rutas de caché.

Asignar un valor a la TRAYECTORIA variable elimina todas las rutas de comandos de la memoria caché como si hachís
-r Fue ejecutado.

El estándar POSIX define el -r solo opción: no se pueden usar otras opciones en el
Modo POSIXly correcto.

AYUDA INCORPORADO


La ayuda incorporado imprime el uso de incorporados.

Sintaxis
· ayuda [incorporado...]

DESCRIPCIÓN
La ayuda incorporada imprime una descripción de incorporados.

El incorporado extrae parte de la salida de hombre Yash y lo imprime en la salida estándar.
Por lo tanto, la página de manual de yash debe haber sido instalada para que el incorporado funcione.
Según el estilo de formato del comando man, es posible que el integrado no funcione como
esperado.

Operandos
incorporados
Nombres de incorporados.

Exit estado
El estado de salida de la ayuda integrada es cero a menos que haya algún error.

Notas
La ayuda integrada no está definida en el estándar POSIX.

Muchos integrados de yash aceptan el --ayuda opción que imprime la misma descripción.

HISTORIA INCORPORADO


La historia incorporado imprime o edita el historial de comandos.

Sintaxis
· historia [-cf] [-D entrada] [-s comando] [-r presentar] [-w presentar] [contar]

DESCRIPCIÓN
El historial incorporado imprime o edita el historial de comandos.

Cuando se ejecuta con una opción, el historial de ediciones incorporado de acuerdo con la opción. si mas
se especifica más de una opción, cada opción se procesa en orden.

Cuando se ejecuta con el contar operando, el incorporado imprime el más reciente contar historia
entradas a la salida estándar de la misma manera que el fc incorporado.

Cuando se ejecuta sin opciones ni operandos, el incorporado imprime el historial completo.


-c, --claro
Borre todas las entradas del historial por completo.

-d entrada, --delete =entrada
Eliminar lo especificado entrada. entrada debe especificarse de la misma manera que el
comienzo y final operandos del fc incorporado.

-F, --archivo de descarga
Reconstruir el archivo de historial. Esta operación elimina los datos antiguos no utilizados del archivo.

-r presentar, --read =presentar
Leer líneas de comando de presentar y agregarlos al historial. Los contenidos del archivo son
tratados como líneas de texto simple.

-s comando, --set =comando
Agregar comando como una nueva entrada del historial después de eliminar la entrada más reciente.

-w presentar, --escribir =presentar
Escribe toda la historia a presentar. Cualquier dato existente en el archivo se perderá. El
El formato de salida son líneas de texto simple, cada una de las cuales es una cadena de comando.

Operandos
contar
El número de entradas a imprimir.

Exit estado
El estado de salida del historial incorporado es cero a menos que haya algún error.

Notas
El historial incorporado no está definido en el estándar POSIX.

El historial de comandos no se puede modificar durante la edición de líneas.

TRABAJO INCORPORADO


La recibas nuevas vacantes en tu correo incorporado informa el estado del trabajo.

Sintaxis
· recibas nuevas vacantes en tu correo [-lnprs] [trabajo...]

DESCRIPCIÓN
Los trabajos incorporados imprimen información de los trabajos que el shell está controlando actualmente.

De manera predeterminada, se imprime la siguiente información para cada trabajo, línea por línea:

· el número de trabajo,

· los + or - símbolo si el trabajo es el trabajo actual o anterior, respectivamente,

· el estado, y

· la cadena de comandos.


-l, --verboso
Imprima el ID del proceso, el estado y la cadena de comando para cada proceso en los trabajos.

-n, --nuevo
Imprimir solo trabajos nuevos: trabajos cuyo estado nunca se ha informado desde que el estado
cambiado.

-p, --pgid-solo
Imprima los ID de grupos de procesos de los trabajos únicamente.

-r, --solo en ejecución
Imprima solo trabajos en ejecución.

-s, --solo detenido
Imprima solo trabajos detenidos.

Operandos
trabajos
Los ID de trabajo de los trabajos que se van a informar. Cuando no trabajo se especifica, todos los trabajos bajo el
Se informa sobre el control de Shell.

Exit estado
El estado de salida de los trabajos integrados es cero a menos que haya algún error.

Notas
El trabajo incorporado es un incorporado semiespecial.

El estándar POSIX define el -l y -p solo opciones: no se pueden usar otras opciones en el
Modo POSIXly-correct. En el modo POSIXly-correct, el efecto de la -l opción es
diferente en que el estado se informa para cada trabajo en lugar de para cada proceso.

El ID de grupo de proceso de un trabajo ejecutado por yash es igual al ID de proceso del primero
comando de la tubería que forma el trabajo.

MATANZA INCORPORADO


La matar incorporado envía una señal a los procesos.

Sintaxis
· matar [-señal|-s señal| -n señal] ...

· matar -l [-v] [señal...]

El kill incorporado requiere que todas las opciones precedan a los operandos. Cualquier argumento de línea de comando
después del primer operando se tratan todos como operandos.

DESCRIPCIÓN
Cuando se ejecuta sin el -l opción, el incorporado envía una señal a los procesos. La señal
enviado puede ser especificado por opción. La señal SIGTERM se envía si no se especifica ninguna señal.

Cuando se ejecuta con el -l opción, la información de impresión incorporada de señals a la
salida estándar. Si no señal se especifica, se imprime la información de todas las señales.


Especificación de señal opciones
-señal, -s señal, -n señal
Una opción de especificación de señal especifica una señal que se enviará a los procesos. señal can
especificarse por nombre o número. si el numero 0 se especifica, el integrado comprueba si un
podría enviarse una señal a los procesos, pero en realidad no se envía ninguna señal. Nombres de señales
no distinguen entre mayúsculas y minúsculas.

Puede especificar como máximo una opción de especificación de señal a la vez.

Otros opciones
-l
Imprime información de la señal en lugar de enviar una señal.

-v
Imprimir más información de la señal.

Sin esta opción, el integrado imprime solo el nombre de la señal. Esta opción agrega
el número de la señal y una breve descripción.

Cuando el -v se especifica la opción, la -l Se puede omitir la opción.

Operandos
es
Especifique los procesos a los que se envía una señal.

Los procesos se pueden especificar por el ID del proceso, el ID del grupo de procesos o el ID del trabajo. El
El ID del grupo de procesos debe ir precedido de un guión (-) para que no sea tratado como un
identificacion de proceso.

¿Cuándo? 0 se especifica como , la señal se envía al grupo de procesos al que pertenece el
pertenece el proceso de shell. Cuándo -1 se especifica, la señal se envía a todos los procesos en
el sistema.

señal
Especifique una señal de la que se imprime la información.

La señal se puede especificar por el nombre, el número o el estado de salida de un comando
que fue asesinado por la señal.

Exit estado
El estado de salida de la eliminación integrada es cero a menos que haya algún error. Si la señal fuera
enviado a al menos un proceso, el estado de salida es cero incluso si la señal no se envió a
todos los procesos especificados.

Notas
El kill incorporado es un incorporado semiespecial.

Los argumentos de comando que comienzan con un guión deben usarse con cuidado. El comando matar -1
-2, por ejemplo, envía la señal 1 al grupo de procesos 2 ya que -1 es tratado como un
opción de especificación de señal y -2 como un operando que especifica un grupo de procesos. los comandos
matar -- -1 -2 y matar -TÉRMINO -1 -2, por otro lado, trata a ambos -1 y -2 como operandos.

El estándar POSIX no define el -n or -v opciones, por lo que no se pueden utilizar en el
Modo POSIXly-correct. El estándar no permite especificar un número de señal como el
argumento de la -s opción o un nombre de señal como el señal operando

El estándar requiere que los nombres de las señales se especifiquen sin la SIG prefijo, como INT y
DEJAR. Si el shell no está en el modo POSIXly-correct, el incorporado acepta SIG-prefijo
nombres de señales también.

Popd INCORPORADO


La popd incorporado extrae un directorio de la pila de directorios.

Sintaxis
· popd [índice]

DESCRIPCIÓN
El popd incorporado elimina la última entrada de la pila de directorios, volviendo a la
directorio de trabajo anterior. Si índice se da, la entrada especificada por índice es removido
en lugar del último.

Operandos
índice
El índice de una entrada de la pila de directorios que desea eliminar.

Si se omite, +0 (la última entrada) se asume.

Exit estado
El estado de salida del popd incorporado es cero a menos que haya algún error.

Notas
Es un error usar este integrado cuando solo hay una entrada de pila de directorio.

El popd incorporado no está definido en el estándar POSIX.

IMPRIMIR INCORPORADO


La Printf incorporado imprime valores formateados.

Sintaxis
· Printf formato [valor...]

DESCRIPCIÓN
Los formatos integrados de printf valors según formato y los imprime al estándar
producción. A diferencia del echo incorporado, el printf incorporado no imprime una nueva línea
automáticamente.

El proceso de formateo es muy similar al de la función printf en la programación C
idioma. Puede utilizar especificaciones de conversión (que comienzan con %) y secuencias de escape
(que comienzan con \) en formato. Cualquier otro carácter que no sea parte de una conversión
especificación o secuencia de escape se imprimen literalmente.

Conversión Especificaciones
Una especificación de conversión comienza con un signo de porcentaje (%).

Una especificación de conversión excepto %% consume un valor, que está formateado de acuerdo con
la especificación e impreso. Cada especificación de conversión consume una valor en la sección de
orden de aparición. si hay mas valors que las especificaciones de conversión, el
toda formato es reprocesado hasta que todo el valorse consumen. si un valor para ser
consumido falta, se supone que es una cadena vacía (si la especificación
requiere una cadena) o cero (si es un número). Si no valorse dan, formato es procesado
sólo una vez.

Las especificaciones de conversión disponibles son:

%d, %i
imprime un entero con signo en decimal

%u
imprime un entero sin signo en decimal

%o
imprime un entero sin signo en octal

%x
imprime un entero sin signo en minúsculas hexadecimales

%X
imprime un entero sin signo en mayúsculas hexadecimales

%f
imprime un número de punto flotante en minúsculas

%F
imprime un número de punto flotante en mayúsculas

%e
imprime un número de punto flotante con exponente en minúsculas

%E
imprime un número de punto flotante con exponente en mayúsculas

%g
lo mismo que %f or %e, seleccionado automáticamente

%G
lo mismo que %F or %E, seleccionado automáticamente

%c
imprime el primer caracter de la cadena

%s
imprime una cadena

%b
imprime una cadena (reconociendo secuencias de escape como el eco incorporado)

%%
imprime un signo de porcentaje (%)

Para los ensayos clínicos de CRISPR, %g y %G, la especificación que realmente se utiliza es %f or %F si el exponente
la parte está entre -5 y la precisión (exclusiva); %e or %E de otra manera.

En una especificación de conversión excepto %%, el signo de porcentaje inicial puede ir seguido de
indicadores, ancho de campo y/o precisión en este orden.

Las banderas son una secuencia de cualquier número de los siguientes caracteres:

Signo menos (-)
Con esta bandera, se agregan espacios al valor formateado para llenar hasta el campo
ancho. De lo contrario, se anteponen espacios.

Signo de más (+)
Un signo más o menos siempre se antepone a un número.

Espacio ( )
Se antepone un espacio a un número formateado si no tiene signo más o menos.

signo hash (#)
El valor tiene un formato alternativo: Para %o, el entero octal impreso
tiene al menos un cero inicial. Para %x y %X, un entero distinto de cero se formatea con
0x y 0X prefijos, respectivamente. Para %e, %E, %f, %F, %g y %G, una marca decimal
(también conocido como carácter radix) siempre se imprime incluso si el valor es un número entero exacto.
Para los ensayos clínicos de CRISPR, %g y %G, el número impreso tiene al menos un dígito en la parte fraccionaria.

Cero (0)
Los ceros se anteponen a un número formateado para llenar hasta el ancho del campo. esta bandera
se ignora si se especifica el indicador menos o si la especificación de conversión es
%d, %i, %u, %o, %x o %X con una precisión.

El ancho de un campo se especifica como un entero decimal que no tiene ceros a la izquierda.

Un ancho de campo define un recuento mínimo de bytes de un valor formateado. Si está formateado
el valor no alcanza el número mínimo de bytes, se anteponen tantos espacios que el
el valor impreso tiene el número de bytes especificado.

Una precisión se especifica como un período (.) seguido de un entero decimal. si el entero
se omite después del punto, se supone que la precisión es cero.

Para especificaciones de conversión %d, %i, %u, %o, %x y %X, una precisión define un
número mínimo de dígitos. Si el entero formateado no alcanza el número mínimo de dígitos,
se anteponen tantos ceros que el entero impreso tiene el número especificado de
dígitos La precisión predeterminada es uno para estas especificaciones de conversión.

Para especificaciones de conversión %e, %E, %f y %F, una precisión define el número de
dígitos después de la marca decimal. La precisión predeterminada es seis para estas conversiones.
especificaciones.

Para especificaciones de conversión %g y %G, una precisión define un número máximo de
dígitos significativos en el valor impreso. La precisión predeterminada es seis para estos
especificaciones de conversión.

Para especificaciones de conversión %s y %b, una precisión define un número máximo de bytes de
la cadena impresa. La precisión predeterminada es infinita para estas conversiones.
especificaciones.

En la especificación de conversión % 08.3f, se especifica el indicador cero, el ancho del campo es
8, y la precisión es 3. Si esta especificación se aplica al valor 12.34, la salida
se mantendrá 0012.340.

Escapar secuencias
Las siguientes secuencias de escape se reconocen en formato:

\a
Carácter de campana (código ASCII: 7)

\b
Retroceso (código ASCII: 8)

\f
Carácter de alimentación de formulario (código ASCII: 12)

\n
Carácter de nueva línea (código ASCII: 10)

\r
Carácter de retorno de carro (código ASCII: 13)

\t
Carácter de tabulación horizontal (código ASCII: 9)

\v
Carácter de tabulación vertical (código ASCII: 11)

\\
Barra invertida

\"
Comillas dobles

\'
Comilla simple (apóstrofe)

\xxx
Personaje cuyo código es xxx, donde el xxx es un número octal de como máximo tres dígitos.

Operandos
formato
Una cadena que define cómo valors debe estar formateado.

valors
Valores que están formateados de acuerdo con formato.

Un valor es un número o una cadena.

Cuando se requiere un valor numérico, valor puede ser una comilla simple o doble seguida
por un carácter, en lugar de un número normal. Por ejemplo, el comando Printf '%D' '"3'
imprimirá 51 en un ambiente típico donde el carácter 3 tiene el código de carácter 51.

Exit estado
El estado de salida del printf incorporado es cero a menos que haya algún error.

Notas
El estándar POSIX no define con precisión cómo los caracteres de varios bytes deben ser manejados por
el incorporado. Cuando usas el %s especificación de conversión con precisión o la %c
especificación de conversión, puede obtener resultados inesperados si el valor formateado
contiene un carácter que está representado por más de un byte. Yash nunca imprime solo
parte de los bytes que representan un único carácter multibyte porque todos los multibyte
los caracteres se convierten en caracteres anchos cuando se procesan en el shell.

Comandos Pushd INCORPORADO


La pushd incorporado empuja un directorio en la pila de directorios.

Sintaxis
· pushd [-L | -P] [directorio]

DESCRIPCIÓN
El pushd incorporado cambia el directorio de trabajo a directorio de la misma manera que el cd
incorporado y lo agrega a la pila de directorios. Si el directorio de trabajo no se pudo cambiar
con éxito, la pila no se modifica.


El pushd incorporado acepta la siguiente opción, así como las opciones que se pueden usar
para el cd incorporado:

--eliminar duplicados
Si el nuevo directorio de trabajo ya ha estado en la pila de directorios, el existente
la entrada se elimina de la pila antes de que el nuevo directorio se inserte en la pila.

Operandos
directorio
El nombre de la ruta del nuevo directorio de trabajo.

If directorio es un solo guion ('-'), el valor del viejo se asume la variable para
el nuevo nombre de ruta del directorio, que se imprime en la salida estándar.

If directorio es un número entero con signo más o menos, se considera como una entrada
índice de la pila de directorios. La entrada se elimina de la pila y luego se empuja a
la pila de nuevo.

If directorio se omite, el directorio de trabajo se cambia al directorio especificado
según el - directorio-predeterminado = ... opción. Si tampoco se especifica esa opción, la
el valor predeterminado es el índice +1.

Exit estado
El estado de salida de pushd incorporado es cero a menos que haya algún error.

Notas
El pushd incorporado no está definido en el estándar POSIX.

PWD INCORPORADO


La pwd incorporado imprime el directorio de trabajo actual.

Sintaxis
· pwd [-L | -P]

DESCRIPCIÓN
El pwd incorporado imprime una ruta absoluta al directorio de trabajo actual del shell en el
salida estándar.


-L, --lógico
Si el valor del PWD variable es una ruta absoluta al directorio de trabajo del shell
y la ruta no contiene ninguna . or .. componentes, luego se imprime la ruta.
De lo contrario, la ruta impresa es la misma que cuando el -P Se especifica la opción.

-P, --físico
La ruta impresa no contiene ninguna . or .. componentes, componentes de enlace simbólico,
o barras diagonales redundantes.

La -L (--lógico) y -P (--físico) las opciones son mutuamente excluyentes: solo la última
el especificado es efectivo. Si no se especifica ninguno, -L se supone.

Exit estado
El estado de salida del pwd incorporado es cero a menos que haya algún error.

Notas
El pwd incorporado es un incorporado semiespecial.

LEER INCORPORADO


La read incorporado lee una línea de la entrada estándar.

Sintaxis
· read [-aire] [-P|-p] variable...

DESCRIPCIÓN
El read incorporado lee una línea de cadena de la entrada estándar y la asigna a la
variables especificadas.

Si -r (--modo crudo) se especifica la opción, se tratan todos los caracteres de la línea
literalmente.

Si -r (--modo crudo) no se especifica la opción, las barras invertidas en la línea se tratan como
cotizaciones Si hay una barra invertida al final de la línea, se trata como una línea.
continuación. Cuando el incorporado lee la siguiente línea, el PS2 la variable se utiliza como indicador
si el shell es interactivo y la entrada estándar es una terminal.

La línea de entrada está sujeta a la división de campos. Las palabras resultantes se asignan a
variables en orden. Si hay más palabras que variables, se asigna la última variable
todas las palabras restantes (como si las palabras no estuvieran divididas). Si las palabras son menos de
variables, a las variables restantes se les asignan cadenas vacías.


-A, --formación
hacer el ultimo variable una matriz. En lugar de asignar una concatenación de los restantes
palabras a una variable normal, las palabras se asignan a una matriz.

-e, --edición de línea
Use la edición de línea para leer la línea.

Para usar la edición de línea, también se deben cumplir todas las siguientes condiciones:

· El caparazón es interactivo.

· La opción vi o emacs está habilitada.

· La entrada estándar y el error estándar están conectados a una terminal.

-P, --ps1
imprimir el PS1 variable como aviso antes de leer la (primera) línea si el shell está
interactivo y la entrada estándar es un terminal.

-p prompt, --prompt =prompt
Imprime lo especificado prompt antes de leer la (primera) línea si el shell es interactivo
y la entrada estándar es un terminal.

-r, --modo crudo
No trate las barras invertidas como comillas.

Operandos
variables
Nombres de variables a las que se asignan palabras de entrada.

Exit estado
El estado de salida de la lectura incorporada es cero a menos que haya algún error.

Tenga en cuenta que el estado de salida es distinto de cero si se encuentra un final de entrada antes de leer el
línea completa.

Notas
El incorporado de lectura es un incorporado semiespecial.

El estándar POSIX define el -r solo opción: no se pueden usar otras opciones en el
Modo POSIXly correcto.

La PS1R y PS1S variables afectan el comportamiento de la edición de línea si el PS1 se utiliza el aviso.
Lo mismo para PS2.

Sólo lectura INCORPORADO


La solo lectura incorporado hace que las variables y funciones sean de solo lectura.

Sintaxis
· solo lectura [-pxX] [nombre [=valor] ...]

· solo lectura -f[p] [nombre ...]

DESCRIPCIÓN
El readonly incorporado es equivalente al typeset incorporado con el -gramo .

Notas
El incorporado de solo lectura es un incorporado especial.

El estándar POSIX define el -p opción solamente; otras opciones no se pueden utilizar en el
Modo POSIXly-correct. El POSIX no permite usar la opción junto con operandos.

DEVOLUCION INCORPORADO


La volvemos incorporado regresa de una función o script.

Sintaxis
· volvemos [-norte] [estado_salida]

DESCRIPCIÓN
Cuando se ejecuta sin el -n (--sin retorno), ocurre una de las siguientes cosas:

· Si el shell está ejecutando una función, la ejecución de la función finaliza.

· Si el dot incorporado está ejecutando una secuencia de comandos, la ejecución de la secuencia de comandos finaliza.

· Si el shell está ejecutando un script durante la inicialización, la ejecución del script
esta terminado.

· Si el shell está ejecutando una trampa, la ejecución de la trampa se termina para el
señal manejada actualmente.

· De lo contrario, el shell sale a menos que sea interactivo.

Cuando se ejecuta con el -n (--sin retorno), la opción incorporada no hace nada más que devolver el
especificado estado_salida.


-n, --sin retorno
No finalice una función, un script, una trampa o el shell.

Operandos
estado_salida
El estado de salida del incorporado.

El valor debe ser un entero no negativo.

Si se omite, se utiliza el estado de salida del último comando ejecutado. (Pero cuando la concha
está ejecutando una trampa, el estado de salida del último comando antes de que se use la trampa).

Exit estado
El estado de salida de la devolución incorporada está definido por el estado_salida operando La salida
status también se usa como el estado de salida de la función, el script o el shell terminados.

Notas
El retorno incorporado es un incorporado especial.

El estándar POSIX establece que el estado_salida operando debe estar entre 0 y 255
(inclusivo). Yash acepta enteros mayores de 255 como extensión.

En el estándar POSIX, el comportamiento del retorno incorporado se define solo cuando el shell
está ejecutando una función o script.

El estándar POSIX no define opciones para el retorno incorporado; el incorporado no acepta
opciones en el modo POSIXly-correct.

SET INCORPORADO


La . incorporado establece opciones de shell y parámetros posicionales.

Sintaxis
· . [opcións] [operandos]

· . -o

· . +o

El conjunto incorporado requiere que todas las opciones precedan a los operandos. Cualquier argumento de línea de comando
después del primer operando se tratan todos como operandos.

DESCRIPCIÓN
Cuando se ejecuta sin ningún argumento de comando, el integrado imprime una lista de todos los existentes
variables a la entrada estándar en una forma que se puede reutilizar como comandos que restaurarán
las definiciones de las variables.

¿Cuándo? -o es el único argumento de comando, el incorporado imprime una lista de opciones de shell con
su configuración actual. Cuándo +o es el único argumento de comando, los comandos de impresión incorporados
que se puede reutilizar para restaurar la configuración actual de la opción de shell.

En otros casos, la configuración de opciones de shell de cambios incorporados y/o parámetros posicionales.


Cuando se especifican una o más opciones, el integrado habilita o deshabilita el shell
opciones Una opción normal con prefijo de guión habilita una opción de shell. Una opción que es
con el prefijo más (+) en lugar de un guión deshabilita una opción de shell. Por ejemplo, opciones
-m, -o monitorear y --monitor habilitar la opción de monitor y las opciones +m, +o monitorear,
++ monitor desactivarlo.

El nombre de una opción larga no distingue entre mayúsculas y minúsculas y puede incluir caracteres no alfanuméricos irrelevantes.
caracteres, que se ignoran. Por ejemplo, opciones --le-comp-depuración y --LeCompDebug están
equivalente. Si no se antepone al nombre de una opción larga, el significado se invierte. Para
ejemplo, --noalexportar es equivalente a ++exportación y ++nonotificar a --notificar.

Una opción se puede especificar en una de las siguientes formas:

· una opción larga, por ejemplo --alexportar

· un -o opción con un nombre de opción especificado como argumento, por ejemplo -o exportar

· una opción de un solo carácter, por ejemplo -a

No todas las opciones se pueden especificar como opciones de un solo carácter.

Las opciones disponibles son:

todo-exportación (-a)
Cuando está habilitado, todas las variables se exportan automáticamente cuando se asignan.

corsé-expandir
Esta opción permite la expansión de la riostra.

caso-glob
(Habilitado de forma predeterminada) Cuando está habilitado, la coincidencia de patrones distingue entre mayúsculas y minúsculas en el nombre de la ruta
expansión.

golpear (+C)
(Habilitado por defecto) Cuando está habilitado, el >la redirección se comporta igual que la >|
redirección.

cur-async, cur-bg, cur-parada
(Habilitado de manera predeterminada) Estas opciones afectan la elección del trabajo actual (cf. ID del trabajo).

punto-glob
Cuando está habilitado, los puntos al comienzo de los nombres de archivo no se tratan de manera especial en
expansión de nombre de ruta.

emacs
Esta opción habilita la edición de líneas en el modo emacs.

err-salir (-e)
Cuando está habilitado, si una canalización termina con un estado de salida distinto de cero, el shell inmediatamente
sale a menos que:

· la canalización es una condición de un comando if o while o before loop;

· la tubería tiene el prefijo !, o

· la canalización es un único comando compuesto distinto de una agrupación de subcapa.

ejecutivo (+n)
(Habilitado de forma predeterminada) Los comandos se ejecutan realmente solo cuando esta opción está habilitada.
De lo contrario, los comandos solo se analizan y no se ejecutan. Deshabilitar esta opción puede ser
útil para comprobar la sintaxis. En un shell interactivo, esta opción siempre se asume
habilitada.

globo extendido
Esta opción habilita la extensión en la expansión del nombre de ruta.

globo (+f)
(Habilitado de forma predeterminada) Esta opción habilita la expansión del nombre de ruta.

hash en definición (-h)
Cuando se define una función cuando esta opción está habilitada, el shell realiza inmediatamente
ruta de comando busca cada comando que aparece en la función y almacena en caché el
ruta completa del comando.

espacio histórico
Cuando está habilitado, las líneas de comando que comienzan con un espacio en blanco no se guardan en el comando
historia.

ignorar-eof
Cuando está habilitado, un shell interactivo no se cierra cuando se ingresa EOF (fin de archivo). Esta
evita que el shell salga cuando accidentalmente presionas Ctrl-D.

le-siempre-rp, le-comp-debug, le-conv-meta, le-no-conv-meta, le-prompt-sp, le-visible-bell
Vea las opciones de shell en la edición de línea.

marca-dirs
Cuando está habilitado, los nombres de los directorios resultantes tienen como sufijo una barra inclinada en la expansión del nombre de la ruta.

monitor (-m)
Esta opción activa el control de trabajos. Esta opción está habilitada por defecto para un interactivo
cáscara.

notificar (-b)
Cuando el estado de un trabajo cambia cuando esta opción está habilitada, el shell inmediatamente
avisa en cualquier momento. Esta opción anula la opción de notificación.

notificar-le
Esta opción es similar a la opción de notificación, pero el cambio de estado solo se notifica
mientras el shell espera la entrada con la edición de línea.

globo nulo
Cuando está habilitado, en la expansión de nombre de ruta, los patrones que no coinciden con ningún nombre de ruta se
eliminado de la línea de comando en lugar de dejarlo como está.

posixly-correcto
Esta opción habilita el modo POSIXly-correct.

rastrear todo
(Habilitado de forma predeterminada) Cuando esta opción está deshabilitada, la opción x-trace está temporalmente
deshabilitado mientras el shell está ejecutando comandos definidos en el
COMMAND_NOT_FOUND_HANDLER, PROMPT_COMMAND o YASH_AFTER_CD variable.

desarmado (+u)
(Habilitado de forma predeterminada) Cuando está habilitado, los parámetros no definidos se expanden a cadenas vacías
en la expansión de parámetros. Cuando está deshabilitada, la expansión de un parámetro indefinido da como resultado una
error.

detallado (-v)
Cuando está habilitado, el shell imprime cada línea de comando en el error estándar antes de analizar
y ejecutándolo.

vi
Esta opción permite la edición de líneas en el modo vi. Esta opción está habilitada por defecto en
un shell interactivo si la entrada estándar y el error son ambos terminales.

trazo x (-x)
Cuando está habilitado, los resultados de la expansión se imprimen con el error estándar para cada
comando simple que se está ejecutando. Cuando se imprime, cada línea se antepone con una expansión
resultado de la PS4 variable. Véase también la opción rastrear todo.

Operandos
Si se pasan uno o más operandos al conjunto incorporado, los parámetros posicionales actuales se
todo eliminado y los operandos se establecen como nuevos parámetros posicionales. Si el -- separador
(cf. sintaxis de argumentos de comando), los parámetros posicionales se establecen incluso cuando
no hay operandos, en cuyo caso los nuevos parámetros posicionales no serán nada.

Exit estado
El estado de salida del conjunto incorporado es cero a menos que haya algún error.

Notas
El conjunto incorporado es un incorporado especial.

En el estándar POSIX, las opciones de shell disponibles son muy limitadas. El estándar no
definir:

· opciones largas como --alexportar,

· anteponer no para negar una opción,

· uso de letras mayúsculas y/o caracteres no alfanuméricos en los nombres de las opciones

Las opciones definidas en la norma son:

· -a, -o exportar

· -e, -o erresalir

· -m, -o monitorear

· -C, -o no clobber

· -n, -o noexec

· -f, -o noglob

· -b, -o notificar

· -u, -o sustantivo

· -v, -o verboso

· -x, -o xtrace

· -h

· -o ignorante de

· -o nolog

· -o vi

Yash no es compatible con la opción nolog, lo que evita que las definiciones de funciones sean
agregado al historial de comandos.

BASICO INCORPORADO


La Turno incorporado elimina algunos parámetros posicionales.

Sintaxis
· Turno [contar]

DESCRIPCIÓN
El cambio integrado elimina el primer contar parámetros posicionales.

Operandos
contar
El número de parámetros posicionales que se eliminarán.

Es un error si el número real de parámetros posicionales es menor que contar. Si
omitido, el valor predeterminado es uno.

Exit estado
El estado de salida del turno incorporado es cero a menos que haya algún error.

Notas
El cambio incorporado es un incorporado especial.

El número de parámetros posicionales se puede obtener con el # parámetro especial.

SUSPENDER INCORPORADO


La suspender incorporado suspende la concha.

Sintaxis
· suspender [-F]

DESCRIPCIÓN
La suspensión incorporada envía una señal SIGSTOP a todos los procesos en el grupo de procesos al que
pertenece el proceso de shell. La señal suspende los procesos (incluido el shell). El
los procesos suspendidos se reanudan cuando reciben una señal SIGCONT.

Si el shell es interactivo y su ID de grupo de proceso es igual al ID de proceso del
líder de sesión, el shell imprime un mensaje de advertencia y se niega a enviar una señal a menos que el
-f (--fuerza) se especifica la opción. (En tal caso, no hay otro shell de control de trabajos
que puede enviar una señal SIGCONT para reanudar el caparazón suspendido, por lo que el caparazón nunca podría ser
reanudado.)


-f, --fuerza
Suprime las advertencias que evitarían que el shell envíe una señal.

Exit estado
El estado de salida es cero si la señal se envió con éxito y distinto de cero en caso contrario.

Notas
La suspensión incorporada no está definida en el estándar POSIX.

HAZTE EL TEST INCORPORADO


La compruébalo incorporado evalúa una expresión.

Sintaxis
· compruébalo expresión

· [ expresión ]

La prueba integrada no distingue opciones y operandos; todos los argumentos de la línea de comandos
se interpretan como expresión. Si el incorporado se ejecuta con el nombre [, expresión
debe ser seguido por ].

DESCRIPCIÓN
La prueba integrada evalúa expresión como una expresión condicional que se compone de
operadores y operandos que se describen a continuación. El estado de salida es 0 si la condición es verdadera y
1 de lo contrario.

Los operadores unarios a continuación prueban un archivo. Si el operando presentar es un enlace simbólico, el archivo
al que hace referencia el enlace se prueba (excepto para el -h y -L operadores).

-b presentar
presentar es un archivo especial de bloque

-c presentar
presentar es un archivo especial de caracteres

-d presentar
presentar es un directorio

-e presentar
presentar existe

-f presentar
presentar es un archivo normal

-G presentar
presentarEl ID de grupo es el mismo que el ID de grupo efectivo del shell

-g presentar
presentarEl indicador set-group-ID está establecido

-h presentar
igual que -L

-k presentar
presentarel bit pegajoso está establecido

-L presentar
presentar es un enlace simbólico

-N presentar
presentar no se ha accedido desde la última modificación

-O presentar
presentarEl ID de usuario es el mismo que el ID de usuario efectivo del shell

-p presentar
presentar es un FIFO (tubería con nombre)

-r presentar
presentar es legible

-S presentar
presentar es un enchufe

-s presentar
presentar no está vacío

-u presentar
presentarEl indicador set-user-ID está establecido

-w presentar
presentar se puede escribir

-x presentar
presentar es ejecutable

El siguiente operador unario prueba un descriptor de archivo:

-t fd
fd está asociado con un terminal

Los siguientes operadores unarios prueban una cadena:

-n cadena
cadena no está vacío

-z cadena
cadena esta vacio

El siguiente operador unario prueba una opción de shell:

-o ?opción
opción es un nombre de opción de shell válido

-o opción
opción es un nombre de opción de shell válido que está habilitado

Los operadores binarios a continuación comparan archivos. Los archivos que no existen se consideran más antiguos que cualquier
archivos existentes.

file1 -Nuevo Testamento file2
file1 es más nuevo que file2

file1 -Antiguo Testamento file2
file1 es más viejo que file2

file1 -ef file2
file1 es un enlace duro a file2

Los siguientes operadores binarios comparan cadenas:

string1 = string2
string1 es la misma cadena que string2

string1 != string2
string1 no es la misma cadena que string2

Los operadores binarios a continuación comparan cadenas según el orden alfabético en el
ubicación actual:

string1 === string2
string1 es igual a string2

string1 ! == string2
string1 no es igual a string2

string1 < string2
string1 es menor que string2

string1 <= string2
string1 es menor o igual que string2

string1 > string2
string1 es mayor que string2

string1 >= string2
string1 es mayor o igual a string2

El siguiente operador binario realiza la coincidencia de patrones:

cadena =~ patrón
expresión regular extendida patrón cerillas cadena

Los siguientes operadores binarios comparan enteros:

v1 -eq v2
v1 es igual a v2

v1 -n v2
v1 no es igual a v2

v1 -gt v2
v1 es mayor que v2

v1 -ge v2
v1 es mayor o igual a v2

v1 -lt v2
v1 es menor que v2

v1 -El v2
v1 es menor o igual que v2

Los operadores binarios a continuación comparan los números de versión:

v1 -veq v2
v1 es igual a v2

v1 -vne v2
v1 no es igual a v2

v1 -vgt v2
v1 es mayor que v2

v1 -vge v2
v1 es mayor o igual a v2

v1 -vlt v2
v1 es menor que v2

v1 -vle v2
v1 es menor o igual que v2

Los siguientes operadores se pueden usar para hacer expresiones complejas:

! expresión
negar (invertir) el resultado

( expresión )
cambiar la precedencia del operador

expresión1 -a expresión2
conjunción lógica (y)

expresión1 -o expresión2
disyunción lógica (o)

Si la expresión es una sola palabra sin operadores, la -n Se supone operador. Un vacío
expresión se evalúa como falsa.

Comparación of versión números
La comparación de números de versión es similar a la comparación de cadenas en orden alfabético.
Las diferencias son:

· Los dígitos adyacentes se tratan como un número entero. Los números enteros se comparan en matemática.
orden en lugar de orden alfabético.

· Los dígitos se consideran más grandes que los caracteres que no son dígitos.

Por ejemplo, los números de versión 0.1.2 - 3 y 00.001.02 - 3 son iguales y 0.2.1 es más pequeño
than 0.10.0.

Exit estado
El estado de salida de la prueba integrada es 0 si expresión es verdadero y 1 en caso contrario. La salida
el estado es 2 si expresión no se puede evaluar debido a un error de sintaxis o cualquier otro
razones.

Notas
Las expresiones complejas pueden causar confusión y deben evitarse. Usa el compuesto de la concha
comandos. Por ejemplo, [ 1 -eq 1 ] && [ -t = 1 ] && ! [ foo ] se prefiere sobre [ 1 -eq 1
-a -t = 1 -a ! foo ].

El estándar POSIX establece que el estado de salida debe ser mayor que 1 en caso de error. El
El estándar POSIX no define los siguientes operadores: -Nuevo Testamento, -Antiguo Testamento, -ef, ==, ===, ! ==, <,
<=, >, >=, =~, -veq, -vne, -vgt, -vge, -vlt y -vle. POSIX tampoco especifica -o como herramienta de edición del
operador unario.

DE ENTREGA INCORPORADO


La veces incorporado imprime el uso del tiempo de la CPU.

Sintaxis
· veces

DESCRIPCIÓN
Los tiempos incorporados imprimen los tiempos de CPU consumidos por el proceso de shell y su hijo
procesos a la salida estándar.

El integrado imprime dos líneas: la primera línea muestra el tiempo de CPU del proceso de shell y
el segundo el de sus procesos hijos (sin incluir aquellos que no han
terminado). Cada línea muestra los tiempos de CPU consumidos en el modo usuario y sistema.

Exit estado
El estado de salida de los tiempos incorporados es cero a menos que haya algún error.

Notas
Los tiempos incorporados son un incorporado especial.

TRAP INCORPORADO


La trampa incorporado establece o imprime controladores de señales.

Sintaxis
· trampa

· trampa action señal...

· trampa número_señal [señal...]

· trampa -p [señal...]

DESCRIPCIÓN
La trampa integrada establece o imprime acciones que se toman cuando el shell recibe señales.
(Esas acciones se llaman traps.)

Cuando se ejecuta con action y uno o más señals, el incorporado establece las trampas para señals
a action. Si el shell recibe una de las señales, se realizará la acción.

Si el primer operando es número_señal en lugar de action, el integrado restablece las trampas para
número_señal y señales como si action iba -.

Cuando se ejecuta con el -p (--impresión) opción o sin operandos, las impresiones integradas
actualmente establece trampas en la salida estándar en un formato que se puede ejecutar como comandos
que restauran las trampas actuales. Si uno o más señals se especifican, sólo aquellas señales
están impresos. De lo contrario, se imprimen todas las señales con acciones no predeterminadas. (En algunos
situaciones, sin embargo, el integrado puede imprimir configuraciones de captura anteriores en lugar de la actual.
Ver notas a continuación.)


-p, --impresión
Imprime la configuración de captura actual.

Operandos
action
Una acción que se tomará cuando señal Esta recibido.

If action es un solo guion-), la acción se restablece a la acción predeterminada que es
definido por el sistema operativo. Si action es una cadena vacía, la señal se ignora
en el recibo. De lo contrario, action se trata como una cadena de comando: la cadena se analiza y
se ejecutan como comandos cuando se recibe la señal. (Si se recibe una señal mientras un
se está ejecutando el comando, la acción se realiza justo después de que finaliza el comando).

señal
El número o nombre de una señal.

If señal es número 0 o nombre SALIR, se trata como una señal imaginaria especial que
siempre se recibe cuando sale el shell. La acción establecida para esta señal se realiza cuando
el caparazón sale normalmente.

número_señal
Esto es como señal, pero debe ser un número.

Exit estado
El estado de salida de la trampa incorporada es cero a menos que haya algún error.

Notas
La trampa integrada es una función especial integrada.

El estándar POSIX requiere que los nombres de las señales se especifiquen sin el SIG-prefijo,
como uno INT y DEJAR. Como extensión, yash acepta SIG-nombres prefijados como SIGINT y
SIGQUITAR y trata los nombres de las señales sin distinción entre mayúsculas y minúsculas.

Reutilizando salida of el incorporado
La salida de la trampa incorporada se puede guardar en una variable, que luego se puede ejecutar mediante
el eval incorporado para restaurar las trampas.

trampas_salvadas=$(trampa)
trampa '...' INT
eval "$trampas_guardadas"

Hay algunos trucos detrás de escena para permitir este idioma. Usas un comando
sustitución para guardar la salida de la trampa integrada en la variable. El comando
la sustitución se ejecuta en una subcapa. El subshell restablece todas las trampas (excepto las ignoradas
ones) al comienzo de sí mismo. Esto aparentemente resultaría en una salida (casi) vacía
del integrado que fallaría al restaurar las trampas como se esperaba.

Para evitar ese escollo, POSIX requiere que el shell siga una de las dos opciones
aqui:

· Si una sustitución de comando solo contiene una sola trampa incorporada, las trampas no deberían
se restablecerá cuando se inicie la subcapa para ejecutar el incorporado; o

· Una subcapa siempre restablece las trampas pero recuerda las trampas anteriores. si la trampa
incorporado se ejecuta en la subcapa pero no se ha ejecutado ninguna otra trampa incorporada
para modificar las trampas en el subshell, entonces el incorporado debe imprimir el recordado
trampas

Yash obedece al segundo.

VERDADERO INCORPORADO


La su verdadero incorporado no hace nada con éxito.

Sintaxis
· su verdadero

DESCRIPCIÓN
El verdadero incorporado no hace nada. Los argumentos de la línea de comandos se ignoran.

Exit estado
El estado de salida del verdadero incorporado es cero.

Notas
El verdadero incorporado es un incorporado semiespecial.

Los incorporados true y dos puntos tienen el mismo efecto, pero true es un incorporado semiespecial.
mientras que el colon es un especial.

TIPO INCORPORADO


La tipo incorporado identifica un comando.

Sintaxis
· tipo [-abefkp] [comando...]

DESCRIPCIÓN
El tipo incorporado es equivalente al comando incorporado con el -V .

Notas
El estándar POSIX no define la relación entre el tipo y los comandos incorporados.
El estándar no define opciones para el tipo incorporado.

Al menos uno comando El operando debe especificarse en el modo POSIXly-correct.

COMPOSICIÓN INCORPORADO


La compilado incorporado imprime o establece variables o funciones.

Sintaxis
· compilado [-gprxX] [variable[=valor] ...]

· compilado -f[pr] [función...]

DESCRIPCIÓN
Si se ejecuta sin la -f (--funciones) opción, las impresiones o juegos incorporados de composición tipográfica
variables a la salida estándar. De lo contrario, imprime o establece funciones.

Si se ejecuta con el -p (--impresión), la opción incorporada imprime las variables o funciones
especificado por operandos. Sin la opción, establece variables o funciones. Si no hay operandos
se especifican, imprime todas las variables o funciones existentes, independientemente de si el -p
(--impresión) se especifica la opción.


-f, --funciones
Imprimir o establecer funciones en lugar de variables.

-g, --global
Al establecer una nueva variable, la variable será una variable global si esta opción está
especificado. Sin esta opción, la variable sería una variable local.

Al imprimir variables, se imprimen todas las variables existentes, incluidas las variables globales.
si se especifica esta opción. Sin esta opción, solo se imprimen las variables locales.

-p, --impresión
Imprima variables o funciones en una forma que se pueda analizar y ejecutar como comandos
que restaurará las variables o funciones configuradas actualmente.

-r, --solo lectura
Al configurar variables o funciones, hágalas de solo lectura.

Al imprimir variables o funciones, imprima solo funciones o variables de solo lectura.

-x, --exportar
Al establecer variables, márquelas para exportar, de modo que se exporten a
comandos externos.

Al imprimir variables, imprima solo las variables exportadas.

-X, --no exportar
Al establecer variables, cancele la exportación de las variables.

Operandos
variable (sin valor)
El nombre de una variable que se va a establecer o imprimir.

Sin el -p (--impresión), la variable está definida (si aún no está definida) pero su
el valor no se establece ni cambia. Las variables que se definen sin valores se tratan como
desarmado en la expansión de parámetros.

variable=valor
El nombre de una variable y su nuevo valor.

El valor se asigna a la variable (independientemente de la -p (--impresión) opción).

función
El nombre de una función existente que se va a configurar o imprimir.

Exit estado
El estado de salida de la composición tipográfica incorporada es cero a menos que haya algún error.

Notas
Una variable global no se puede definir de nuevo si ya se ha definido una variable local
con el mismo nombre. La variable local se establecerá independientemente de la -g (--global) opción.

El estándar POSIX no define la composición tipográfica incorporada.

Las funciones integradas de exportación y de solo lectura son equivalentes a las integradas de composición tipográfica con el -gx y
-gramo opciones, respectivamente.

ULIMIT INCORPORADO


La ulimit incorporado establece o imprime un límite de recursos.

Sintaxis
· ulimit -a [-H|-S]

· ulimit [-H|-S] [-efilnqrstuvx] [límitar]

DESCRIPCIÓN
El ulimit incorporado establece o imprime un límite de recursos.

Si se ejecuta con el -a (--todas), la opción incorporada imprime los límites actuales para todos
tipos de recursos. De lo contrario, establece o imprime el límite de un solo tipo de recurso. Él
El tipo de recurso se puede especificar mediante las opciones que se enumeran a continuación. Los límites de recursos serán
afectan el proceso de shell actual y todos los comandos invocados desde el shell.

Cada tipo de recurso tiene dos valores límite: el límite estricto y el límite flexible. Puede cambiar un suave
limite libremente siempre y cuando no exceda el límite estricto. Puede disminuir un límite estricto
pero no puede aumentarlo sin el debido permiso.

Cuando el -H (--difícil) o -S (--suave) se especifica la opción, los juegos incorporados o imprimen el
límite duro o blando, respectivamente. Si no se especifica ninguna de las opciones, el
establece tanto el límite duro como el suave o imprime el límite suave.


-H, --difícil
Establecer o imprimir un límite estricto.

-S, --suave
Establezca o imprima un límite flexible.

-a, --todas
Imprime todas las configuraciones de límites actuales.

Las siguientes opciones especifican el tipo de recursos. Si no se especifica ninguno de ellos, -f is
el valor por defecto. Los tipos de recursos que se pueden configurar dependen del sistema operativo.

-c, --centro
Tamaño máximo de archivos principales creados (en bloques de 512 bytes)

-d, --datos
Tamaño máximo del segmento de datos de un proceso (en kilobytes)

-e, --bonito
Prioridad máxima de programación ('agradable')

-f, --ftamaño
Tamaño máximo de archivos creados por un proceso (en bloques de 512 bytes)

-i, --sigpendiente
Número máximo de señales pendientes

-l, --memlock
Tamaño máximo de memoria que se puede bloquear en RAM (en kilobytes)

-m, --rss
Tamaño máximo del conjunto residente de un proceso (en kilobytes)

-n, --ningún archivo
Descriptor de archivo máximo + 1

-q, --msgcola
Tamaño máximo de las colas de mensajes POSIX

-r, --rtprio
Prioridad máxima de programación en tiempo real

-s, --apilar
Tamaño máximo de la pila de un proceso (en kilobytes)

-t, --UPC
Tiempo máximo de CPU que puede utilizar un proceso (en segundos)

-u, --nproc
Número máximo de procesos para un usuario

-v, --como
Tamaño máximo de memoria utilizada por un proceso (en kilobytes)

-x, --Cerraduras
Número máximo de bloqueos de archivos

Operandos
límitar
Un límite a establecer.

El valor debe ser un entero no negativo o uno de en las, suave y ilimitado. Si valor
is en las or suave, el nuevo límite se establece en el límite duro o flexible actual. Si límitar is
no especificado, se imprime el límite actual.

Exit estado
El estado de salida del ulimit incorporado es cero a menos que haya algún error.

Notas
El estándar POSIX no define más opciones que -f. tampoco define en las, suave o
ilimitado para límitar valores.

UMASCARA INCORPORADO


La umask incorporado establece o imprime la máscara de creación del modo de archivo.

Sintaxis
· umask máscara

· umask [-S]

DESCRIPCIÓN
Si se ejecuta sin la máscara operando, el incorporado imprime la creación del modo de archivo actual
máscara del caparazón a la salida estándar en una forma que luego se puede usar como máscara a
restaurar la máscara actual.

De lo contrario, el integrado establece la máscara de creación del modo de archivo en máscara.


-S, --simbólico
Imprima en la forma simbólica en lugar de la forma de entero octal.

Operandos
máscara
La nueva máscara de creación de modo de archivo, ya sea en forma de entero octal o simbólico.

Octal entero formulario
En la forma de entero octal, la máscara se especifica como un entero octal no negativo que
es la suma de los siguientes permisos:

0400
leído por el propietario

0200
escribe por el dueño

0100
ejecutar/buscar por propietario

0040
leer por grupo

0020
escribir por grupo

0010
ejecutar/buscar por grupo

0004
leído por otros

0002
escribir por otros

0001
ejecutar/buscar por otros

Simbólico formulario
En la forma simbólica, la máscara se especifica como una expresión simbólica que denota
permisos que son No incluido en la máscara.

La expresión completa es una o más cláusulas separados por coma. UN cláusula es un
secuencia de queseguido de uno o más actions.

A que es uno de:

u
propietario

g
grupo de XNUMX

o
otros

a
todo del propietario, grupo y otros

Una secuencia vacía de ques es equivalente a quien a.

An action es un operador seguido por (permission). Un operador es uno de:

=
. quepermiso de (permission)

+
add (permission) a quepermiso de

-
remove (permission) Desde quepermiso de

y (permission) es uno de:

r
read

w
escribir

x
ejecutar/buscar

X
ejecutar/buscar (solo si algún usuario ya tiene permiso de ejecución/búsqueda)

s
set-user-ID y set-group-ID

u
permisos actuales del usuario

g
permisos actuales del grupo

o
permisos actuales de otros

pero mas de uno de r, w, x, X y s se puede especificar después de un solo operando.

Por ejemplo, el comando umask u=rwx,ir+rw

· desenmascara los permisos de lectura, escritura y ejecución/búsqueda del usuario;

· desenmascara el permiso de lectura del grupo y de otros; y

· enmascara el permiso de escritura del grupo y de los demás.

Exit estado
El estado de salida del umask incorporado es cero a menos que haya algún error.

Notas
El umask incorporado es un incorporado semiespecial.

El estándar POSIX no requiere el formato de salida predeterminado (usado cuando el -S opción es
no especificado) para ser la forma entera octal.

UNALÍAS INCORPORADO


La unalias incorporado no define alias.

Sintaxis
· unalias nombre ...

· unalias -a

DESCRIPCIÓN
El integrado unalias elimina la definición de los alias especificados por los operandos.


-a, --todas
Desdefinir todos los alias.

Operandos
nombre
El nombre de un alias no está definido.

Exit estado
El estado de salida del unalias incorporado es cero a menos que haya algún error. es un error
para especificar el nombre de un alias inexistente como nombre .

Notas
El integrado unalias es un integrado semiespecial.

UNSET INCORPORADO


La desarmado incorporado no define variables o funciones.

Sintaxis
· desarmado [-fv] [nombre ...]

DESCRIPCIÓN
El integrado unset elimina la definición de las variables o funciones especificadas por
operandos.

No es un error si alguna de las variables o funciones especificadas no existe; ellos son
silenciosamente ignorado.


-f, --funciones
Desdefinir funciones.

-v, --variables
Desdefinir variables.

Estas opciones son mutuamente excluyentes: solo la última especificada es efectiva. si ninguno
está especificado, -v se supone.

Operandos
nombre
El nombre de una variable o función para ser indefinido.

Exit estado
El estado de salida del integrado desarmado es cero a menos que haya algún error.

Notas
El integrado no configurado es un integrado especial.

Aunque yash no lo hace, el estándar POSIX permite eliminar una función si ninguno de los dos
el -f y -v se especifica options y la variable especificada no existe.

Al menos uno nombre El operando debe especificarse en el modo POSIXly-correct.

ESPERE INCORPORADO


La esperar incorporado espera a que finalicen los trabajos.

Sintaxis
· esperar [trabajo...]

DESCRIPCIÓN
La espera incorporada espera a que finalicen los trabajos en segundo plano. Si el control de trabajos está habilitado,
los trabajos detenidos se consideran terminados.

El integrado se puede usar para esperar comandos asincrónicos si el control de trabajos está deshabilitado.

Si el shell recibe una señal mientras el integrado está esperando y si se ha establecido una trampa
para la señal, luego se ejecuta la trampa y el incorporado finaliza inmediatamente (sin
esperando los trabajos). Si el shell recibe una señal SIGINT cuando el control de trabajos está habilitado,
el incorporado cancela la espera.

Operandos
trabajo
El Id. de trabajo del trabajo o el Id. de proceso de un proceso en el trabajo.

Si no es correcto trabajoSe especifican s, las esperas integradas para todos los trabajos existentes.

Si el trabajo especificado no existe, se considera que el trabajo ha terminado con el
estado de salida de 127.

Exit estado
Si no es correcto trabajos se especificaron y el integrado esperó con éxito todos los trabajos, la salida
el estado es cero. Si uno o más trabajose especificaron s, el estado de salida es el del último
trabajo.

Si el incorporado fue abortado por una señal, el estado de salida es un número entero (> 128) que
denota la señal. Si hubo algún otro error, el estado de salida está entre 1 y 126
(inclusivo).

Notas
El incorporado de espera es un incorporado semiespecial.

El ID de proceso del último proceso de un trabajo se puede obtener mediante el ! parámetro especial.
También puede usar los trabajos integrados para obtener los ID de proceso de los procesos de trabajo.

Use yash en línea usando los servicios de onworks.net


Servidores y estaciones de trabajo gratuitos

Descargar aplicaciones de Windows y Linux

Comandos de Linux

Ad




×
Anuncio
❤ ️Compre, reserve o adquiera aquí: sin costo, ayuda a mantener los servicios gratuitos.