bash / Makefile中双美元符号的含义是什么?

当在Makefile中插入shell脚本时,我们有(?)使用双美元符号($$)来引用variables。 为什么?

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

Solutions Collecting From Web of "bash / Makefile中双美元符号的含义是什么?"

根据gnu官方文档 :

配方中的变量和函数引用与makefile中其他地方的引用具有相同的语法和语义。 他们也有相同的引用规则:如果你想要一个美元符号出现在你的食谱,你必须加倍('$$')。 对于像缺省shell这样的shell,使用美元符号来引入变量,重要的是要清楚你想要引用的变量是一个make变量(使用一个美元符号)还是一个shell变量(使用两个美元符号)。

所以简而言之:

  • makefile变量=>使用一个美元符号
  • shell变量=>使用两个美元符号