bash - 如何使用 <<< 运算符读取整行?

标签 bash

我需要验证一些程序输出。我知道输出正好包含三行,我想将它们存储在不同的变量中以便于访问。我尝试了以下几种变体,但均未成功。

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/

相关文章:

linux - 如果 bash 别名不能接受参数,为什么这些别名可以工作?

linux - ssh 注销后后台 shell 脚本无法访问目录,即使使用 nohup

Bash 重定向运算符 sed 命令

相当于-x的bash环境变量?

linux - 将命令的输出作为位置参数传递给 Linux shell 脚本中的脚本文件

linux - 让 bash 脚本在 'interactive mode' 提示符下输入数字

json - 如何使用 Bash 删除 json 文件中的最后一个逗号?

linux - 对于文件中的每一行同步执行命令并保存到另一个文件的换行符

linux - Grepping 并仅在发现内容时发送电子邮件

php - 无法从 PHP 向 TMUX session 发送命令