GNU/Linux >> Linux Esercitazione >  >> Linux

Il Bash '?

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 e la parentesi a sinistra, altrimenti il ​​costrutto
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
.


Linux
  1. Personalizzazione della shell Bash

  2. Visualizzazione completa di dove è impostata la variabile Path in Bash?

  3. Come faccio a conoscere il nome del file di script in uno script Bash?

  4. Cos'è esattamente <() in bash (e =() in zsh)?

  5. Script Bash per rimuovere il file più vecchio da una cartella

Bash:Scrivi su file

Comando sorgente Bash

Bash:aggiungi al file

35 Esempi di script Bash

L'elenco delle scorciatoie da tastiera utili di Bash

Bash For Loop – La guida più pratica