我试图使用过程中替换的标准输出在while循环是这样的:BASH嵌套进程替换
#!/bin/bash
FILE_1=f1.txt
FILE_2=f2.txt
while read LINE; do
echo "$LINE"
done < <(paste <(tail -f "$FILE_1") <(tail -f "$FILE_2"))
什么它应该做的是合并FILE_1和FILE_2的最后几行,每当新数据被添加到文件中。显然,我想做的不仅仅是在while循环中打印这行,但这是一个很好的例子。
不幸的是,当我运行这个脚本时,它只是坐在终端上,什么也不做。
运行只是这一行:
paste <(tail -f "$FILE_1") <(tail -f "$FILE_2")
作品完美,我可以看到终端上的输出,因为我在数据添加到文件中。
是否需要使用某些特殊语法才能将stdout传输到另一个进程?
我试着做
paste <(tail -f "$FILE_1") <(tail -f "$FILE_2") | while read LINE; do...
,但它仍然只是坐在终端。
@Kashyap不,我要做的进程替换了重定向。我不确定什么<<(...)甚至。 – user3473949
@Kashyap:我找不到任何有关使用<<运算符的信息。你能将我链接到联机帮助页的相关部分吗? – user3473949
@ kashyap在这里混合了文档,但这里完全是一条红鲱鱼。删除此评论主题将是一个很好的前进方向。 – tripleee