Substitution de processus
Substitution de processus (en anglais process substitution) : forme <(commande) ou >(commande), propre à Bash, ksh et zsh (absente de POSIX et de Dash). La commande s'exécute en parallèle du script, et l'expression est remplacée par un nom de fichier, par exemple /dev/fd/63, relié par un tube à sa sortie (<( )) ou à son entrée (>( )). diff <(sort a) <(sort b) compare ainsi deux sorties sans fichier temporaire.
Son usage le plus courant en script est while read ...; do ...; done < <(commande) : la boucle lit la sortie de la commande en restant dans le shell courant, donc ses variables survivent, contrairement à commande | while read, où la boucle tourne dans un sous-shell. Le code de sortie de la commande n'est pas perdu : $! donne son PID, et wait $! le récupère depuis Bash 5.0.