我需要验证一些程序输出。我知道输出正好包含三行,我想将它们存储在不同的变量中以便于访问。我尝试了以下几种变体,但均未成功。
IFS=$'\n' read line1 line2 line3 <<< $(grep pattern file.log)
IFS='' read line1 line2 line3 <<< $(grep pattern file.log)
是否可以合并 read
和 <<<
做我想做的事?怎么办?
如果不可能,解释是什么?您有什么建议?
谢谢。
最佳答案
{
read line1
read line2
read line3
} < <(grep pattern file.log)
我觉得在 herestring ( $()
) 之后放置一个命令替换 ( <<<
)
是一种不必要的扭曲,就像试图欺骗一样read
一次阅读不止一行。这是多个 read
的情况复合命令中的 s 是一个自然的解决方案。
关于bash - 如何使用 <<< 运算符读取整行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17577805/