bash/Makefile 中的双美元符号是什么意思?
- 2024-10-24 08:50:00
- admin 原创
- 87
问题描述:
在 Makefile 中插入 shell 脚本时,我们必须使用双美元符号 ($$) 来引用变量。为什么这样?
for number in 1 2 3 4 ; do \n echo $$number ; \ndone
解决方案 1:
按照gnu make 官方文档:
配方中的变量和函数引用与 makefile 中其他地方的引用具有相同的语法和语义。它们还具有相同的引用规则:如果您希望在配方中出现美元符号,则必须将其加倍(“$$”)。对于使用美元符号引入变量的 shell(如默认 shell),务必清楚要引用的变量是 make 变量(使用单个美元符号)还是 shell 变量(使用两个美元符号)。
简而言之:
makefile 变量 => 使用单个美元符号
shell 变量 => 使用两个美元符号
解决方案 2:
$$
是您当前进程的PID (进程 ID)。
$ ps -ef|grep $$
user 208465 200620 0 10:30 pts/4 00:00:00 bash
$ for number in 1 2 3 4 ; do \n echo $$number ; \ndone
208465number
208465number
208465number
208465number
解决方案 3:
不直接适用于此示例 - 除非显示的代码是通过以下方式执行$(shell ...)
而不是通过规则执行:
启用二次扩展后,当双美元符号出现在前提条件列表中时,make 可能还会在第二个处理阶段解释它本身。(第一阶段:读取文件,设置变量;第二阶段:查找并调用依赖目标,执行规则)
当具有目标名称的变量仅在文件后续部分可用时,这用于允许动态指定依赖目标。
请参阅https://www.gnu.org/software/make/manual/html_node/Secondary-Expansion.html。
相关推荐
热门文章
项目管理软件有哪些?
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理必备:盘点2024年13款好用的项目管理软件
热门标签
云禅道AD