Je voudrais quelque chose qui fonctionne comme:Existe-t-il un moyen de diffuser un flux dans Posix Shell ou bash?
cat a > b
prog1 < b
prog2 < b
sans avoir à créer le fichier temporaire b.
Si je viens d'avoir un programme, je pourrais utiliser un tuyau:
cat a | prog1
Je me demande si un shell a la syntaxe pour soutenir quelque chose comme:
cat a (|prog1) (|prog2)
Ou est-il une pratique utilité qui peut aider? Quelque chose comme:
cat a | fanout prog1 prog2
'T> (prog1)> (prog2)> (PROG3) codeforester
@codeforester: Je pense qu'il est prudent de supposer que 'cat a' est juste une commande _example_, donc dans le cas général vous avez besoin d'un pipeline (ou d'une substitution de processus _input_). – mklement0
Vous devez utiliser 'cat a | tee> (prog1)> (prog2)>/dev/null', sinon la sortie de 'prog1' sera aussi envoyée à' prog2' - essayez 'echo hi | tee> (tr 'h' '@') | chat -n'. Cependant, vous obtenez un comportement de sortie asynchrone imprévisible et les processus d'arrière-plan ne sont peut-être pas encore terminés lorsque la commande suivante est exécutée. Voir [cette réponse] (http://stackoverflow.com/a/43906764/45375) du mien. – mklement0