Mam program, P
który oczekuje na otrzymanie „Cześć” i wyjście „Dlaczego?” przed udostępnieniem funkcji. Ta funkcja jest używana przez inne programy, które nie zdają sobie sprawy z tego, że rozpoczęcie rozmowy z „Cześć” jest powszechne. Dlatego chcę napisać opakowanie, P
które działa w ten sposób (składnia 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.
Użycie cat
lub dd
w Replace...
części (coś podobnego cat <&p &; exec cat >&p
) powoduje niepotrzebne buforowanie. Jakie są moje opcje?
bash
rozwiązaniem, które nie ma zastosowania zsh
, ale na pewno bym je zaakceptował ☺
ssh
i jego opcja ProxyCommand
.
cat
generalnie nie buforuje. Jeśli działa w twoim systemie, spróbuj cat -u
.
zsh
rozwiązanie, czy rozwiązanie jest dobash
przyjęcia?