在sh中是否有等同于bash的<()

时间:2015-12-17 01:43:28

标签: node.js bash

我正在尝试重定向到bash的node.js程序。 该命令包含这样的字符串。

var virtualFile  = '<( cat <<EndOfText\n' + fileContents + 'EndOfText\n)';

但是,当我重定向它时,在运行bash之前,sh会对该文本感到厌恶。

我想知道'&lt;()'是否在sh中具有等价物。感谢

1 个答案:

答案 0 :(得分:1)

如果您正在使用进程替换(<(...))来创建一个命名的伪文件,您可以在命令行上将该文件提供给读取其stdin的实用程序,那么你应该认真考虑将内容(fileContents)放入临时文件中。在大多数现代系统中,这将是合理的性能。它的另一个优点是它易于兼容所有外壳,而不仅仅是那些试图与Posix兼容的外壳。

另一方面,如果您只需要将fileContents提供给实用程序,并且您可以将stdin用于此目的,那么您已经拥有了太多的机器。只需使用here-doc本身('<<EndMarker\n' + fileContents + 'EndMarker\n'

相关问题