bash程序中的连续管道

bit*_*fox 2 bash

我正在寻找一种方法来将文本连续地传递到像这样的过程中write.我希望一次缓冲和管道这一切.到目前为止,这是我的bash脚本:

#!/bin/bash
for i in `seq 1 10`; do
    echo $i | write user
done
Run Code Online (Sandbox Code Playgroud)

问题是write打开和关闭i时间.有人知道如何在循环时保持活着吗?

Tom*_*ech 5

当然,只需将管道移到环路外:

#!/bin/bash
for i in `seq 1 10`; do
    echo "$i"
done | write user
Run Code Online (Sandbox Code Playgroud)

正如你用标记的那样,我建议使用大括号扩展for i in {1..10}而不是调用seq.如果数字是可变的,你可以使用类似的东西for (( i = a; i < b; ++i )).