Bash 变量和输出

  • 本文关键字:输出 变量 Bash bash
  • 更新时间 :
  • 英文 :

grep -A 26 "some text" somefile.txt |
awk '/other text/ { gsub(/M/, " "); print $4 }' | while read line
do
   //operations resulting in a true of false answer
done

在 while 中声明和使用的变量仅存在于通过管道创建的子壳体中,如何从外部跟踪它们?我需要稍后在脚本中使用返回的 true 或 false

使用进程替换:

while read line
do
   # operations resulting in a true of false answer
done < <(grep -A 26 "some text" somefile.txt | 
         awk '/other text/ { gsub(/M/, " "); print $4 }' )

如果您使用的是 bash 4.2 或更高版本,请设置 lastpipe 选项。这会强制管道中的最后一个命令(在本例中为 while 循环)在当前 shell 而不是子 shell 中运行,因此在循环中对变量所做的任何修改在完成后仍然可见。

相关内容

  • 没有找到相关文章

最新更新