@是什么>>

问题描述 投票:1回答:1

我在Bash脚本中偶然发现了一些奇怪的Heredoc用法。一个简化的例子是这样的:

do_stuff() {
      notify @<(cat <<- EOF
  {
      "key": "value",
       <more JSON data>
  }
  EOF
               )
  }

@<(cat <<- EOF部分做什么?与常规的Heredoc有何不同?

我在Bash脚本中偶然发现了一些奇怪的Heredoc用法。一个简化的示例是这样的:do_stuff(){notify @

bash io-redirection heredoc process-substitution
1个回答
2
投票

<(...)process substitution。 Bash在某个目录中创建一个fifo,然后在<(...)中运行命令,并将表达式替换为fifo名称。进程替换具有(奇怪的)生存期规则,但是它们通常一直有效到命令或行结束。例如:

© www.soinside.com 2019 - 2024. All rights reserved.