Ich habe ein Programm P, das erwartet, "Hallo" zu empfangen und "Warum?" bevor Sie eine Funktion bereitstellen. Diese Funktion wird von anderen Programmen verwendet, die nicht wissen, dass es üblich ist, ein Gespräch mit "Hallo" zu beginnen. Ich möchte also einen Wrapper dafür schreiben P, der so funktioniert (zsh-Syntax):
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.
Die Verwendung von catoder ddin dem Replace...Teil (so etwas wie cat <&p &; exec cat >&p) führt zu unnötiger Pufferung. Was sind meine Optionen?
bashLösung, die in nicht anwendbar ist zsh, aber sie sicherlich akzeptieren würde ☺
sshund seine Option ProxyCommand.
catpuffert im Allgemeinen nicht. Wenn dies auf Ihrem System der Fall ist, versuchen Sie es cat -u.
zshLösung oder ist einebashLösung akzeptabel?