【发布时间】:2017-11-14 02:24:26
【问题描述】:
bash 新手。我想要一个“while read line”循环从命令获取输入 - 在这种情况下,grep。我希望读取读取 grep 返回的每一行并将其作为字符串插入到“行”变量中。如果 grep 没有返回结果,我仍然希望它进入循环,这样我就可以 printf 一些东西然后继续。它会起作用吗?这是代码段:
while read -r line: do
...(irrelevent)...
done<$(grep $id ${arrpre[$j]}.course)
${arrpre[$j]}.course 是文件的名称。求救!
【问题讨论】:
-
您是要从
grep的输出中读取,还是从名为grep 输出的文件 中读取?这段代码在做后者。 -
...如果您希望循环遍历输出本身,则可以是
done < <(grep ...)或done <<<"$(grep ...)" -
... 或
grep ... | while ...。 -
@JohnBollinger,...尽管这会受到BashFAQ #24 中描述的陷阱的影响。
-
是的,@CharlesDuffy,在这方面,循环体确实不是无关的。