我想在脚本中执行一些条目序列。在我的脚本中,我使用rsh并使用它来清理printf缓冲区。
我使用2个脚本。一个脚本是这样的: test1.sh
VAL=""
while [ "${VAL}" != "x" ]
do
read VAL
echo $VAL
done
其他脚本如下: test2.sh
VAL=""
while [ "${VAL}" != "x" ]
do
read VAL
rsh -l user 172.30.7.157 "echo test"
echo $VAL
done
当我执行 printf" 12 \ n34 \ nx |时test1.sh ,结果是:
12
34
x
当我执行 printf" 12 \ n34 \ nx |时test2.sh ,结果是:
12
teste
teste
teste
.
.
.
这让我觉得使用远程连接会清除CIOBUF。
有没有办法避免这个问题?
答案 0 :(得分:1)
这不是缓冲问题; rsh
正在消耗read
的输入。从/dev/null
重定向其标准输入。 (另外,您可以测试read
的退出状态,而不是将VAL
与哨兵值进行比较。
while IFS= read -r val; do
do
rsh -l user 172.30.7.157 "echo test" < /dev/null
echo "$val"
done