0

m4 宏可以使用 shell 将输出重定向到变量$(...)吗?变量$MANPAGE_DOCBOOK_XSL为空:(。

if test "x${XMLCATALOG}" != "x" -a "x$have_xmlcatalog_file" = "xyes"; then
    DOCBOOK_XSL_URI="http://docbook.sourceforge.net/release/xsl/current"
    DOCBOOK_XSL_PATH="manpages/docbook.xsl"
    MANPAGE_DOCBOOK_XSL=$(${XMLCATALOG} ${XML_CATALOG_FILE} ${DOCBOOK_XSL_URI}/${DOCBOOK_XSL_PATH} | sed -n 's|^file:/\+|/|p;q')
fi

https://github.com/pevik/ima-evm-utils/blob/master/m4/manpage-docbook-xsl.m4#L22

查看 Wayland 中的类似代码,他们只是检查命令是否有效(是否可以找到目录),而不是检查值。

https://github.com/wayland-project/wayland/blob/master/configure.ac#L167

4

1 回答 1

0

最后我发现它是错误的sed部分(m4 本身没有魔法)。我发送了一个修复软件的补丁:

https://patchwork.kernel.org/patch/11712861/

-       MANPAGE_DOCBOOK_XSL=$(${XMLCATALOG} ... | sed -n 's|^file:/\+|/|p;q')
+       MANPAGE_DOCBOOK_XSL=$(${XMLCATALOG} ... | sed 's|^file:/\+|/|')

我想我应该将这个问题删除为无效。

于 2020-08-13T19:48:37.630 回答