0
Makefileで匿名のFIFOを使用することはできますか?Makefileで匿名のFIFOを使用するには?
私はそれを次のように試してみました:
%.html: %.txt
pandoc -o [email protected] <(sed 's%•%*%' $<)
を私は/bin/sh
から構文エラーを取得します。
- メイクファイルで匿名のFIFOを使用するにはどうすればよいですか?
- pandocの単純な正規表現(または単純な検索と置き換え)フィルタを使用するより良いソリューションはありますか?この
make
私はメイクファイルについて十分に知りません、 '<()'はプロセス置換構文であり、POSIXでは指定されておらず、すべてのシェルでは実装されていません。 – Fred
シェルスクリプトでは、FIFO( 'mkfifo')を作成し、これを' exec'を使ってファイル記述子に関連づけてから、ファイルを削除することができます。 FIFOはファイル記述子に関連付けられたままであり、ファイルシステム内の参照がなくても使用できます。私はあなたがmakefileからそれを行うことができるかどうかわかりません。 – Fred
Makefileは一般的に '/ bin/sh'を使いますが、プロセスの置き換えを理解していません。しかし 'pandoc'はコマンドラインでファイル名を必要としません。ファイル名が指定されていなければstdinからの入力を受けますので、代わりにプレーンパイプを使うことができます: 'sed 's%•%*%'" $ <"| pandoc -o "$ @" ' – ottomeister