У мене є програма, 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рішення прийнятне?