У меня есть программа, Pкоторая ожидает получить «Hello» и вывод «Почему?» перед предоставлением функции. Эта функция используется другими программами, которые не знают, что общение с «Hello» является обычной вежливостью. Таким образом, я хочу написать оболочку для 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решение приемлемо?