Ho un programma P
che si aspetta di ricevere "Hello" e produrre "Why?" prima di fornire una funzione. Questa funzione è utilizzata da altri programmi che non sono consapevoli del fatto che è comunemente cortesia iniziare una conversazione con "Ciao". Voglio quindi scrivere un wrapper perché funzioni in P
questo modo (sintassi 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.
L'uso cat
o dd
nella Replace...
parte (qualcosa del genere cat <&p &; exec cat >&p
) comporta un buffering non necessario. Quali sono le mie opzioni?
bash
soluzione che non è applicabile in zsh
, ma certamente lo accetterei ☺
ssh
e la sua opzione ProxyCommand
.
cat
generalmente non buffer. Se funziona sul tuo sistema, prova cat -u
.
zsh
soluzione o è unabash
soluzione accettabile?