makefile - 在 make 中设置一个 shell 变量,以便稍后在同一行使用
问题描述
如果你在 sh 中这样做:
ABC=123 && echo value is ${ABC}
你明白了
value is 123
如果你把它放在一个makefile
:
main:
echo value is ${ABC}
(除了不要复制粘贴,因为我的标签实际上是四个空格)
然后像这样将它传递到文件中:
$ ABC=123 make main
echo value is 123
value is 123
一切都按预期工作
但我想在makefile中的同一行设置sh变量
main:
ABC=123 && echo value is ${ABC}
我明白了:
$ make main
ABC=123 && echo value is
value is
如何设置 shell 变量?
我正在尝试这样做,因为我正在采购一个文件..这只是我认为行不通的事情的一个最小示例。
解决方案
那是因为变量make
不是由shell扩展的。您可以通过打印 echo without 的第一行来判断它${ABC}
。如果要将其传递给 shell,则需要引用美元符号,例如:
$ cat Makefile
main:
ABC=123 && echo value is $${ABC}
$ make main
ABC=123 && echo value is ${ABC}
value is 123
推荐阅读
- c - 函数需要异常长的时间才能返回
- java - LOGCAT 显示错误,即使在成功构建后我的应用程序也无法打开
- git - Git:如何更新标签描述并推送到 GitHub?
- android - 为什么我的 React Native Android 应用程序在关闭或按下后退按钮时会崩溃?
- python-3.x - NameError:名称“paramiko”未定义
- ios - 多列 UITableView(单元格未对齐)
- xml - 对 XML Schema 进行排序,而不对命名元素的子项重新排序
- google-apps-script - 如何使用临时二维数组交换值
- python - 如何将多行连接成一行并在大数据帧上重复此操作?
- javascript - 如何在 vue @click 事件中传递 Boolean:true?