BSD中的进程替换挂起有时

问题描述

在将Linux bash脚本移植到BSD时,我偶然发现了一个有趣的问题。

在这种情况下,如何解释这种现象以及您将建议什么解决方法

这是一个最小的可复制示例,这就是为什么它本身没有意义的原因

# this works in Linux,but hangs in BSD:
$(a=<(echo 1))

在这里这就是所谓的进程替换(在命令替换中),它的工作方式如下:

  • 文件描述符(linux)或临时FIFO文件(BSD)的名称存储在$a变量中;
  • 在此之后,命令替换$()的子外壳被关闭

好的。这就是它的工作方式(并且在Linux中工作),但是它挂在FreeBSD中,等待为命令替换(/tmp//sh-np.muuX1P创建的FIFO发生某些事情。

问题:

您将如何解释这一点,您将提出什么解决方法

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)