Per zsh, utilizzando =(command)
crea automaticamente un file temporaneo e sostituisce =(command)
con il percorso del file stesso. Con la sostituzione dei comandi, $(command)
viene sostituito con output del comando.
Quindi ci sono tre opzioni:
- Sostituzione del comando:
$(...)
- Sostituzione del processo:
<(...)
- Sostituzione processo aromatizzata con zsh:
=(...)
La subsitution di processo con gusto zsh, # 3, è molto utile e può essere usata in questo modo per confrontare l'output di due comandi usando uno strumento diff, ad esempio Beyond Compare:
bcomp =(ulimit -Sa | sort) =(ulimit -Ha | sort)
Per Oltre il confronto, tieni presente che devi utilizzare bcomp
per quanto sopra (anziché bcompare
) poiché bcomp
avvia il confronto e aspetta strong> per il completamento. Se utilizzi bcompare
, questo avvia il confronto e termina immediatamente a causa della quale scompaiono i file temporanei creati per memorizzare l'output dei comandi.
Leggi di più qui: link
Nota anche questo:
Si noti che la shell crea un file temporaneo e lo elimina al termine del comando.
e il seguente che è la differenza tra i due tipi di sostituzione del processo supportati da zsh (i.e # 2 e # 3):
Se leggi la pagina man di zsh, potresti notare che & lt; (...) è un'altra forma di sostituzione del processo che è simile a = (...). C'è una differenza importante tra i due. Nel caso & lt; (...), la shell crea una named pipe (FIFO) invece di un file. Questo è meglio, dal momento che non riempie il file system; ma non funziona in tutti i casi. In effetti, se avessimo sostituito = (...) con & lt; (...) negli esempi sopra, tutti avrebbero smesso di funzionare tranne fgrep -f & lt; (...). Non è possibile modificare una pipe o aprirla come cartella della posta; fgrep, tuttavia, non ha alcun problema con la lettura di un elenco di parole da una pipe. Ci si potrebbe chiedere perché diff & lt; (foo) bar non funzioni, dato che foo | lavori diff - bar; questo perché diff crea un file temporaneo se nota che uno dei suoi argomenti è -, e quindi copia il suo input standard nel file temporaneo.
Riferimento: link