gpt4 book ai didi

bash - 通过 grep 管道尾部时没有输出

转载 作者:行者123 更新时间:2023-11-29 09:29:19 25 4
gpt4 key购买 nike

<分区>

$filepath 处有一个文件,该文件逐渐增长。我想打印以感叹号开头的每一行:

while read -r line; do 
if [ -n "$(grep ^! <<< "$line")" ]; then
echo "$line"
fi
done < <(tail -F -n +1 "$filepath")

然后,我重新整理了代码,将比较表达式移到流程替换中,使代码更加简洁:

while read -r line; do
echo "$line"
done < <(tail -F -n +1 "$filepath" | grep '^!')

遗憾的是,它没有按预期工作;没有任何内容打印到终端(标准输出)。

我更喜欢在tail 之后写grep ^\!。为什么第二个代码片段不起作用?为什么将命令管道放入进程替换中会使事情变得不同?

PS1。这就是我通过随机执行以下命令之一手动生成逐渐增长的文件的方式:

echo ' something' >> "$filepath"
echo '!something' >> "$filepath"

PS2。在 GNU bash,版本 4.3.48(1)-releasetail (GNU coreutils) 8.25 下测试。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com