Tengo un programa P
que espera recibir "Hola" y mostrar "¿Por qué?" antes de proporcionar una función. Esta función es utilizada por otros programas que no son conscientes de que es una cortesía común iniciar una conversación con "Hola". Por lo tanto, quiero escribir un contenedor para P
que funcione así (sintaxis 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
o dd
en la Replace...
parte (algo así como cat <&p &; exec cat >&p
) da como resultado un almacenamiento en búfer innecesario. ¿Cuáles son mis opciones?
bash
solución que no es aplicable zsh
, pero que ciertamente la aceptaría ☺
ssh
y su opción ProxyCommand
.
cat
generalmente no amortigua. Si lo hace en su sistema, intente cat -u
.
zsh
solución o es unabash
solución aceptable?