我正在使用这种简单的程序,我将cmds读取传递给另一个协同处理shell并读取stdout并显示它,需要读取-t(超时),否则循环会卡在读取中,等待其他进程将输出发送到stdout,但是问题是读取-t不符合POSIX并且在AIX或Solaris上不起作用,是否有其他方法可以使其工作以便它适用于所有符合POSIX的平台?这个解决方案http://compgroups.net/comp.unix.shell/read-timeout/498289适用于从终端读取而不是来自协同进程,不确定如何适应这种情况?
#!/bin/ksh
ksh |&
while read INPUT
do
echo $INPUT
print -p "$INPUT"
while read -t 1 -p OUT
do
case $OUT in
$)
break ;;
*)
echo "${OUT}" ;;
esac
done
done