Sto cercando di capire le pipe nominate nel contesto di questo esempio particolare.
Digito <(ls -l)
nel mio terminale e ottenere l'output come, bash: /dev/fd/63: Permission denied
.
Se digito cat <(ls -l)
, potrei vedere il contenuto della directory. Se lo sostituisco cat
con echo
, penso di ottenere il nome del terminale (o è?).
echo <(ls -l)
fornisce l'output come /dev/fd/63
.
Inoltre, questo esempio di output non mi è chiaro.
ls -l <(echo "Whatever")
lr-x------ 1 root root 64 Sep 17 13:18 /dev/fd/63 -> pipe:[48078752]
Tuttavia, se do, ls -l <()
mi elenca il contenuto della directory.
Cosa sta succedendo nel caso della pipa denominata?
mkfifo
crea solo la pipe denominata, senza alcun contenuto. Quindi devi scriverti da solo (ad esmkfifo mypipe; ls > mypipe
.). E sì, le scritture sulla pipe si bloccheranno fino a quando qualche processo non legge dalla pipe.