我有一个程序P
,期望接收“你好”并输出“为什么?” 在提供功能之前。其他不知道通常与“ Hello”开始对话的程序使用此功能。因此,我想为此编写一个包装器P
(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.
在部分中使用cat
或会导致不必要的缓冲。我有什么选择?dd
Replace...
cat <&p &; exec cat >&p
我会用失望
—
迈克尔
bash
的解决方案,是不适用的zsh
,但肯定会接受吗☺
是否知道还会有其他程序运行此脚本?它是一个有限列表,还是可以是任何数字?显然,另一个程序需要知道这一点才能调用它。
—
Lizardx 2015年
我典型的用法是with
—
迈克尔
ssh
及其选项ProxyCommand
。
cat
通常不会缓冲。如果您的系统上有,请尝试cat -u
。
zsh
解决方案还是bash
可接受的解决方案?