POSIX shell相当于<()

San*_*yth 8 bash posix zsh sh process-substitution

<(commands ...)在bash/zsh中将输出行为作为文件.是否存在POSIX等价物?

Cha*_*ffy 11

mkfifo foo.fifo

## if your "commands" is multiple commands
# { commands ...; } >foo.fifo &

# otherwise, if it's just one
commands ... >foo.fifo &

something_else foo.fifo
Run Code Online (Sandbox Code Playgroud)

是最接近的等价物

something_else <( commands ... )
Run Code Online (Sandbox Code Playgroud)

  • @mtraceur,这就是`<(...)`在`/ dev/fd`不可用的平台上的幕后**; 它使用`pipe(2)`匿名描述符对. (2认同)
  • 没有 POSIX 方法可以做到这一点,因为 POSIX 没有定义 `mktemp`。人们要么需要仅使用 POSIX shell 行为来重新实现“mktemp”,要么必须想出某种技巧。 (2认同)