GNU Makefile 和 bash - 转义
在目标的配方中,我想生成一个处理命令行参数的 bash 脚本...但是转义的 Makefile 逃过了我的
目标: deps echo "./a.out \"$@\"" > wrapper.a.out
然而,$@ 在 GNU Makefile 中有特殊含义,它会把事情搞乱。
尝试了 $@、$$@ ...似乎没有任何效果。
那么,这样做的正确方法是什么?
In the recipe for a target, I want to generate a bash script which processes command line arguments ... however the Makefile escaping escapes me
target: deps
echo "./a.out \"$@\"" > wrapper.a.out
However, $@ has a special meaning in a GNU Makefile which messes things up.
Tried $@, $$@ ... nothing appears to work.
So, what is the right way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您需要将
$
加倍才能使其通过make
。然后在echo
命令中使用单引号,这样生成的用于运行echo
的 shell 就不会扩展$@
本身。You need to double the
$
to get it pastmake
. then use single quotes in theecho
command so the shell spawned to run theecho
doesn't expand$@
itself.