M4 を使用して一部のファイルを展開するシステムに取り組んでいますが、場合によっては展開で問題が発生します。定義/マクロの命名規則 (可能であれば変更したくない) は__<name>__
(つまり、先頭と末尾のアンダースコアが 2 つある) ため、これは正しく展開されます。
define(`__ROOT__', `/home/mydir')
...
__ROOT__/bin
与える
/home/mydir/bin
しかし、
define(`__PREFIX__', `App_Mnemonic')
...
__PREFIX___some_service
与えるべき:
App_Mnemonic_some_service
しかし与える
__PREFIX___some_service
(つまり、展開を逃した)
マクロの末尾のアンダースコアと、その下にあるテキストの有効なアンダースコアの間にスペースがないことが、m4 を混乱させていると思います。これについて私にできることはありますか?たとえば、環境変数のように、マクロをサイレントブレースで区切ることはできますか?