0
是否可以在Makefile中使用匿名FIFO?如何在Makefile中使用anonymous fifo?
我尝试了以下方式:
%.html: %.txt
pandoc -o [email protected] <(sed 's%•%*%' $<)
,但我从/bin/sh
出现语法错误。
- 如何在Makefile中使用anonymous fifo?
- 是否有一个更好的解决方案使用简单的正则表达式(甚至简单的查找和替换)过滤器的潘多糖?
我不知道有足够的了解makefile文件,但'<()'是一种进程替换语法,并且不是由POSIX指定的,并且不是由所有的shell实现的。 – Fred
在shell脚本中,可以创建一个FIFO('mkfifo'),将其与文件描述符(使用'exec')关联,然后删除该文件。 FIFO将与文件描述符保持关联,即使文件系统中的引用消失,您也可以使用它。我不知道你是否可以通过makefile来做到这一点。 – Fred
Makefile通常使用'/ bin/sh',它不理解进程替换。但'pandoc'在其命令行上不需要文件名。如果没有指定文件名,它会从stdin获取输入,所以您应该可以使用普通管道:'sed's%•%*%'“$ <”| pandoc -o“$ @”' – ottomeister