Eu tenho um programa P
que espera receber "Olá" e emitir "Por quê?" antes de fornecer um recurso. Esse recurso é usado por outros programas que não sabem que é uma cortesia comum iniciar uma conversa com "Olá". Assim, eu quero escrever um wrapper para P
que funcione assim (sintaxe 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.
Usar cat
ou dd
na Replace...
parte (algo como cat <&p &; exec cat >&p
) resulta em buffer desnecessário. Quais são as minhas opções?
bash
solução que não é aplicável no zsh
, mas certamente aceito-☺
ssh
e sua opção ProxyCommand
.
cat
geralmente não faz buffer. Se isso ocorrer no seu sistema, tente cat -u
.
zsh
solução ou é umabash
solução aceitável?