Questa risposta su Security StackExchange utilizza un'interessante sintassi bash per generare un file in linea:
openssl req -new -x509 -nodes -newkey ec:<(openssl ecparam -name secp384r1) -keyout cert.key -out cert.crt -days 3650
Questo pezzo è particolarmente interessante:
<(openssl ecparam -name secp384r1)
Solo in esecuzione:
echo <(openssl ecparam -name secp384r1)
Ritorno /dev/fd/63
Quindi questo sembra creare un descrittore di file temporaneo con il contenuto del file.
Come si chiama?
Risposta accettata:
Si chiama sostituzione di processo ed è una caratteristica di bash, zsh e ksh (e forse altri, non lo so). Non è POSIX e non dovresti usarlo nel codice portatile, ma è molto utile.
Ecco la sezione pertinente del manuale di bash:
3.5.6 Sostituzione del processo
La sostituzione dei processi è supportata sui sistemi che supportano le named pipe
(FIFO) o il metodo /dev/fd per la denominazione dei file aperti. Prende la forma
di
<(list)
o
>(list)
L'elenco dei processi viene eseguito con il suo input o output collegato a una FIFO o a un file in /dev/fd. Il nome di questo file viene passato come argomento
al comando corrente come risultato dell'espansione.
Se viene utilizzato il modulo>(elenco), la scrittura nel file fornirà l'input per l'elenco. Se viene utilizzato il modulo <(list), il file passato come argomento deve essere
letto per ottenere l'output di list. Nota che non può essere visualizzato alcuno spazio
tra
verrebbe interpretato come un reindirizzamento.
Se disponibile, la sostituzione del processo viene eseguita simultaneamente con
espansione di parametri e variabili, sostituzione di comandi ed espansione aritmetica
.