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