有谁知道如何在食谱上使用here-document重定向?
test: sh <<EOF echo I Need This echo To Work ls EOF
我找不到任何解决方案尝试通常的反斜杠方法(基本上以一行中的命令结束).
理由:
我有一组多行配方,我想通过另一个命令代理(例如,sh,docker).
onelinerecipe := echo l1 define twolinerecipe := echo l1 echo l2 endef define threelinerecipe := echo l1 echo l2 echo l3 endef # sh as proxy command and proof of concept proxy := sh test1: $(proxy) <<EOF $(onelinerecipe) EOF test2: $(proxy) <<EOF $(twolinerecipe) EOF test3: $(proxy) <<EOF $(threelinerecipe) EOF
我希望避免的解决方案:将多行宏转换为单行.
define threelinerecipe := echo l1; echo l2; echo l3 endef test3: $(proxy) <<< "$(strip $(threelinerecipe))"
这有效(我使用gmake 4.0和bash作为make的shell),但它需要更改我的食谱,我有很多.
Strip从宏中移除换行符,然后所有内容都写在一行中.
我的最终目标是:代理:= docker run …
在Makefile中某处使用行
.ONESHELL:
将所有配方行发送到单个shell调用,您应该发现原始Makefile按预期工作.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。