Makefile文件中,两个 \$$Xxx$ Xxx的区别

本文涉及的产品
应用实时监控服务-用户体验监控,每月100OCU免费额度
云原生网关 MSE Higress,422元/月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 在 `Makefile` 中,`\$` 用于变量替换,单个 `\$`(如 `\$Xxx`)引用 Makefile 变量,双 `\$`(如 `\$\$Xxx`)传递给 shell 引用环境变量。`\$Xxx` 替换为 Makefile 变量值,`\$\$Xxx` 保留为 shell 变量。

原文地址:Makefile文件中,两个\$的变量变量\$\$Xxx 与一个\$的变量 \$Xxx的区别

Makefile 中的变量引用

Makefile 中,$ 符号用于变量替换,但它的使用方式有一些细微的区别:

单个 $ 符号($Xxx

  • 用途:用于引用 Makefile 中定义的变量。
  • 用法$ 后面可以跟变量名,通常用括号或花括号括起来以明确变量名的边界。
  • 示例

    VAR = value
    all:
        echo $(VAR)
    
    AI 代码解读

    在这个例子中,$(VAR) 会被替换为 value

双 $ 符号(\$\$Xxx)

  • 用途:用于在 Makefile 中传递给 shell 的命令中引用 shell 变量。
  • 用法:\$\$ 会被 make 解析为单个\$,从而在 shell 中使用。
  • 示例

    all:
        echo \$\$PATH
    
    AI 代码解读

    在这个例子中,$$PATH 会被 make 解析为 $PATH,从而在 shell 中输出环境变量 PATH 的值。

具体区别

  • $Xxx:用于 Makefile 变量替换。make 会在执行命令之前将其替换为变量的值。
  • \$\$Xxx:用于传递给 shell 的命令中引用 shell 变量。make 会将 \$\$ 转换为 $,从而在 shell 中使用。

例子

假设你有一个 Makefile 如下:

VAR = Hello

all:
    # 使用 Makefile 变量
    echo $(VAR)
    # 使用 shell 变量
    echo \$\$USER
AI 代码解读
  • echo $(VAR):make 会将 $(VAR) 替换为 Hello,然后执行 echo Hello
  • echo \$\$USER:make 会将 \$\$USER 转换为 $USER,然后 shell 会替换 $USER 为当前用户的用户名。

总结

  • 使用 $ 来引用 Makefile 中的变量。
  • 使用 \$\$ 来引用 shell 中的变量,以确保在传递给 shell 时保留单个 $ 符号。
目录
打赏
0
2
3
0
166
分享
相关文章
解决脚本实现:sed -i 替换变量,变量中含有特殊转义字符的问题
解决脚本实现:sed -i 替换变量,变量中含有特殊转义字符的问题
解决脚本实现:sed -i 替换变量,变量中含有特殊转义字符的问题
|
4月前
将一个变量的字符串复制到另外一个变量中
【10月更文挑战第32天】将一个变量的字符串复制到另外一个变量中。
47 0
|
8月前
|
js export 对外输出常量、变量和函数
js export 对外输出常量、变量和函数
136 5
makefile 变量的替换,嵌套引用,命令行变量
makefile 变量的替换,嵌套引用,命令行变量
186 1
Shell export 定义全局变量(变量的作用范围)
Shell export 定义全局变量(变量的作用范围)
386 0
Makefile变量的引用与赋值
Makefile变量的引用与赋值
164 0
shell脚本变量详解(自定义变量、环境变量、变量赋值、变量运算、变量内容替换)
shell变量 shell变量是指用一个特定的字符串去表示不固定的内容 1.变量的类型 1.1自定义变量 一般情况下不怎么使用环境变量,如果需要在其他文件中引入某个文件的变量则在脚本最开始的位置使用source 或者. 执行下该脚本即可
3138 0
shell脚本变量详解(自定义变量、环境变量、变量赋值、变量运算、变量内容替换)
Shell 变量使用(环境变量、预定义变量、位置变量、自定义变量的区别)
Shell 变量使用(环境变量、预定义变量、位置变量、自定义变量的区别)
185 0
变量替换
变量替换
120 0

云原生

+关注
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等