У мене є програма, P
яка очікує отримання "Привіт" та виведення "Чому?" перед наданням функції. Ця функція використовується іншими програмами, які не усвідомлюють, що розпочати розмову з "Привіт" є загальною люб'язністю. Таким чином, я хочу написати обгортку, P
яка працює так (синтаксис zsh):
coproc P
print -p Hello # Send Hello to P
read -pr line # Read what P has to say
[[ "$line" = "Why?" ]] && Replace current process with the coprocess.
echo Could not get P's attention.
Використання cat
або dd
в Replace...
частині (щось на зразок cat <&p &; exec cat >&p
) призводить до непотрібної буферизації. Які мої варіанти?
bash
рішенням, яке не застосовується в zsh
, але, безумовно, прийме його ☺
ssh
його варіантом ProxyCommand
.
cat
як правило, не буфер. Якщо це робиться у вашій системі, спробуйте cat -u
.
zsh
рішення чиbash
рішення прийнятне?