Y el proceso de sustitución de comandos es muy similar. Alternativamente comando es la salida de un comando asignado a otra variable , por ejemplo, dir_files=`ls -l`
o date_time=$(date)
, el proceso alternativo es para pasar la salida de un comando a otro comando (grupo) .
el uso de sustitución proceso 0.shell
escritura | significado | notas | naturaleza |
---|---|---|---|
<(comandos) | Significa de la redirección de entrada, su salida se puede usar como otra entrada de comando |
lista de comandos es un conjunto de comandos para comandar un punto y coma pluralidad ; separó. Tenga en cuenta que, < o > no hay espacio entre los paréntesis . |
/ Dev / fd / n documento de aceptación (comandos) de salida, como otra entrada de comando |
> (Comandos) | Significa de redirección de la salida, para aceptar otro estándar de salida de comando |
La lectura desde / archivo dev / fd / n como (comandos) de entrada |
1. Necesidad de utilizar el proceso para reemplazar
para Li | resultado | explicación |
---|---|---|
El modo normal
|
La salida está vacía | comando echo en el Shell de los padres, y leer comandos se ejecutan en el sub Shell en , al final de la sub ejecución de lectura Shell se destruye, variables AA desaparece. comando de tuberías siempre se ejecuta en la sub-Shell, cualquier comando a los valores asignar a las variables se reunió con este problema. |
Uso sustitución proceso
|
La salida es aaaaa | En general, Shell el echo "aaaaa" resultado de salida se lee como una entrada. <() Se utiliza para capturar la salida del comando echo, < para redirigir el resultado de leer. Nota que dos < es un espacio entre el primero < representa la redirección de entrada, segundo < y () juntos representan el proceso de sustitución. comando de lectura y el segundo comandos echo correr en el proceso actual de Shell , leer los datos se guarda en la variable de proceso actual de AA, es posible utilizar con éxito el eco de salida. |
Ejemplos de procesos utilizados para sustituir "acepta la entrada estándar" en echo "QPY">> (leer; echo "你好, $ REPLY") |
Resultados de ejecución: Hola, QPY | Debido al uso de la redirección, comandos de lectura de echo "qpy" la salida de los datos leídos. |
2. Sustituir la naturaleza del proceso de
Para ser capaz de transferir datos entre los diferentes procesos, de hecho, el proceso de sustitución se asociará con los archivos de sistema , el nombre de este archivo es /dev/fd/n
(n es un número entero). El archivo se pasa como argumento para ()
el comando, ()
el comando es para leer o escribir en el fichero depende del formato del proceso de sustitución se <
sigue >
:
- Si es así
>()
, entonces el archivo dará()
la orden para proporcionar información; Con redirección de la salida, lo que para entrar puede provenir de otros comandos. - Si es así
<()
, entonces el archivo recibe()
la salida del comando; a través de la redirección de entrada, el contenido del archivo se pueden utilizar como otros comandos de entrada.
Utilice el comando echo para ver el proceso de sustitución del nombre del archivo correspondiente:
comando | exportación | explicación |
---|---|---|
eco> (verdadero) |
/ Dev / fd / 63 |
/dev/fd/ Hay una gran cantidad de números en el archivo de directorio, el proceso se utiliza generalmente para reemplazar el archivo 63, que es un sistema de archivos interno, generalmente nos vemos menos.
|
echo <(true) |
/ Dev / fd / 63 |
|
eco> (true) <(true) |
/ Dev / fd / 63 / dev / fd / 62 |
|
echo "QPY">> (leer; echo "hola, $ REPLY") | hola, QPY |
La primera
|