makefile - 将makefile自动变量值传递给从make调用的bash函数
问题描述
假设我在我的 中定义了以下函数.bashrc
:
foo (){
touch $1
}
我想在 makefile 中调用这个函数,如下所示:
%.png : %.tex
bash -i -c foo $<
但这抱怨缺少操作数。(错误是“ touch: missing file operand
”,所以它正在调用touch
......)。我已经看到了一些类似问题的解决方案,但它们并不适用,因为我需要将自动变量$<
(或者更确切地说,它的值)作为参数传递给 shell 脚本。
我知道我可以解决这个问题(例如,将函数批发复制到 makefile 中),但我很想知道如何在 makefile 中解决我的问题。
解决方案
您的问题可能是因为您没有足够的报价。shell-c
选项将其脚本作为单个参数。
考虑:
$ bash -c echo hi
<prints nothing>
相对:
$ bash -c 'echo hi'
hi
推荐阅读
- javascript - 从列表中显示多个文本实例?
- angular - Angular 6 如何将 PrimeNG 全局过滤器移到
? - javascript - React 中的受控选择未设置 defaultValue
- c# - 托管在服务器 IIS 上的 .Net Core 2.x 应用程序“未指定身份验证方案”
- asynchronous - Clojure async - 通道中的项目顺序
- binary - 在 Zebra GK420d 上使用 ZPL2 中的 ~DY 命令以最快速度打印时,我应该以什么格式发送数据?
- sql-server - 消息 208,级别 16,状态 1,第 62 行无效的对象表名称
- c# - .NET Core 实体框架
- ruby-on-rails - 我的模型中带有下划线的这个属性如何转换为破折号分隔的单词?
- cross-browser - 在 Edge 13 上进行测试