GNU/Linux >> Tutoriales Linux >  >> Linux

El Bash'?

Esta respuesta en Security StackExchange usa una sintaxis bash interesante para generar un archivo en línea:

openssl req -new -x509 -nodes -newkey ec:<(openssl ecparam -name secp384r1) -keyout cert.key -out cert.crt -days 3650

Este bit es particularmente interesante:

<(openssl ecparam -name secp384r1)

Corriendo solo:

echo <(openssl ecparam -name secp384r1)

Vuelvo /dev/fd/63

Así que esto parece hacer un descriptor de archivo temporal con el contenido del archivo.

¿Cómo se llama esto?

Respuesta aceptada:

Se llama sustitución de procesos y es una característica de bash, zsh y ksh (y posiblemente otros, no lo sé). No es POSIX y no debería usarlo en código portátil, pero es muy útil.

Aquí está la sección relevante del manual de bash:

3.5.6 Sustitución de procesos

La sustitución de procesos se admite en sistemas que admiten canalizaciones con nombre
(FIFO) o el método /dev/fd para nombrar archivos abiertos. Toma la forma
de

  <(list) 

o

  >(list) 

La lista de procesos se ejecuta con su entrada o salida conectada a un FIFO o algún archivo en /dev/fd. El nombre de este archivo se pasa como un argumento
al comando actual como resultado de la expansión.
Si se usa el formulario>(lista), escribir en el archivo proporcionará entrada para la lista. Si se usa la forma <(lista), el archivo pasado como argumento debe ser
leído para obtener la salida de la lista. Tenga en cuenta que no puede aparecer ningún espacio
entre y el paréntesis izquierdo, de lo contrario, la construcción
se interpretaría como una redirección.

Cuando está disponible, la sustitución de procesos se realiza simultáneamente con
expansión de parámetros y variables, sustitución de comandos y expansión aritmética
.


Linux
  1. Personalización del shell Bash

  2. ¿Por qué The Bash Script no reconoce los alias?

  3. ¿Está Mv Atomic en el Fs?

  4. ¿Vista completa de dónde se establece la variable de ruta en Bash?

  5. Bash Script para eliminar el archivo más antiguo de una carpeta?

Bash:escribir en archivo

Comando de fuente Bash

Bash:Agregar al archivo

35 ejemplos de secuencias de comandos Bash

La lista de atajos de teclado Bash útiles

Bash For Loop:la guía más práctica