我正在寻找一种方法来将文本连续传输到像write
这样的过程中。我不想要一次缓冲和管道。到目前为止,这是我的bash脚本:
#!/bin/bash
for i in `seq 1 10`; do
echo $i | write user
done
问题是write
被打开和关闭i
次。有人知道如何在循环时保持它活着吗?
答案 0 :(得分:5)
当然,只需将管道移到环路外:
#!/bin/bash
for i in `seq 1 10`; do
echo "$i"
done | write user
当您使用bash标记时,我建议使用大括号展开for i in {1..10}
而不是调用seq
。如果数字是可变的,您可以使用for (( i = a; i < b; ++i ))
。