bash pipe questionВыход трубы bash для нескольких процессов
Я видел похожие вопросы с ответами, но я спрашиваю о самом базовом случае вывода трубопровода на несколько процессов. Например, я хочу вывести состояние в cowsay и (espeak &). У меня есть решение (следующее), но должен быть более простой и элегантный способ.
Joshua @ Joshua-HP-Pavilion-dv8-Notebook-PC ~ $ кошка .bashrc
(fortune -a > ~/tmp) && echo && (cat ~/tmp |cowsay -W65) && (cat ~/tmp | espeak &)
rm ~/tmp
Выход:
___________________________________________
/I ain't got no quarrel with them Viet Congs. \
| |
\ -- Muhammad Ali /
----------------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
[email protected] ~ $
Plus аудио из озвучки работает как фоновый процесс (| espeak &). Мое решение перенаправляет вывод в файл (~/tmp), выполняет действия, а затем удаляет ~/tmp. Почему я не могу это сделать, например:
fortune -a | (cowsay -W70 && espeak &)
? Я пробовал много вариантов, вот моя история попыток:
501 fortune -a | (cowsay -W70 && espeak &)
502 fortune -a | (cowsay -W70 && espeak)
503 fortune -a | (cowsay -W70 | espeak)
504 fortune -a | (cowsay -W70; espeak)
505 fortune -a | (espeak | cowsay -W70; espeak)
506 fortune -a | (espeak | cowsay -W70)
507 fortune -a | (espeak & | cowsay -W70)
508 fortune -a | (espeak & && cowsay -W70)
509 fortune -a | (espeak && cowsay -W70)
510 fortune -a | (espeak && cowsay -W70)
511 (fortune |cowsay -W65) && (cat ~/tmp | espeak &)
512 (fortune |cowsay -W65) && (espeak &)
513 (fortune |cowsay -W65) && espeak &
514 fortune | (cowsay -W65 && espeak &)
515 history
Кроме того, это моя первая попытка разместить вопрос. Добро пожаловать!
Мне нравится переменная идея. Избегание дискового ввода-вывода, особенно для нескольких строк текста, всегда является хорошей идеей. – user2085548