在第一次循环后,在while循环中运行`rg`会中断

花生酸

我的脚本很简单:

while read -r key; do
  rg --glob='!some_dir' --fixed-strings --quiet "$key" || echo "$key"
done < <(grep 'some_pattern' some/file | cut -d'"' -f2)

我希望使用此bash脚本来打印未使用的键。但是,此循环在每次运行的第一次迭代后都会中断。为什么以及如何解决?谢谢:D

伊尼安

这看起来像是经典案例,当命令while..read循环运行也从标准输入开始时。你期望的输出grep将由while循环迭代的方式来读了,但由于某些原因,你的命令rg来自同一个阅读。

关闭为

rg --glob='!some_dir' --fixed-strings --quiet "$key" < /dev/null || echo "$key"

或使用其他文件描述符

while read -r -u 3 key; do
  rg --glob='!some_dir' --fixed-strings --quiet "$key" || echo "$key"
done 3< <(grep 'some_pattern' some/file | cut -d'"' -f2)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

While 循环在第一次迭代后中断

在while循环中只运行一次,而不会中断循环

为什么在第一次迭代后此循环中断?

第一次循环代码后,“闹钟”中断

第一次迭代后中断循环

在 For 循环中运行 Scrapy 在第一次运行后挂起

嵌套 while 循环以及如何在第一次运行后访问内部循环

While 循环在第一次迭代后停止

While循环要求输入两次,而不是第一次中断

为什么在第一次循环后不执行while循环?

在forEach循环中跳过第一次迭代

Windows7 Batch,第一次For循环后如何中断

嵌套 Do While 内循环仅在外循环的第一次迭代时运行

在控制台循环中运行时,setTimeout在for循环中第一次打印意外的垃圾值

For循环在第一次迭代后停止

循环在第一次迭代后停止吗?

第一次循环后无法发送邮件

For 循环在第一次迭代后结束

第一次运行后,AppleScript重复循环变慢

使用 selenium 运行循环会在第一次迭代后引发错误

第一次迭代后嵌套 for 循环未在 python 中运行

如何强制程序始终运行while循环的第一次迭代?

第一次单击后,vb 应用程序中的按钮在循环中每 x 次按自身

“ For”循环第一次迭代

一次执行后中断while循环?红宝石

跳过循环中的第一步进行第一次迭代

满足条件后,在while循环中再运行一次

cin 在 while 循环中只运行一次

“运行时错误 92:未初始化 For 循环”第一次成功运行后出错