一尘不染

bash / Makefile中的双美元符号是什么意思?

linux

在Makefile中插入shell脚本时,我们可以使用双美元符号($$)来引用变量。为什么会这样?

for number in 1 2 3 4 ; do \
    echo $$number ; \
done

阅读 525

收藏
2020-06-03

共1个答案

一尘不染

按照gnu make官方文档

配方中的变量和函数引用与makefile中其他位置的引用具有相同的语法和语义。它们也具有相同的报价规则:如果您希望在配方中出现美元符号,则必须将其加倍(’$$’)。对于使用美元符号引入变量的外壳(如默认外壳),请务必牢记要引用的变量是make变量(使用单个美元符号)还是shell变量(使用两个美元符号)
)。

简而言之:

  • makefile变量=>使用单个美元符号
  • shell变量=>使用两个美元符号
2020-06-03