Joh*_*ugo 23 linux bash makefile
在Makefile中插入shell脚本时,我们(?)使用双美元符号($$)来引用变量.为什么会这样?
for number in 1 2 3 4 ; do \
echo $$number ; \
done
Run Code Online (Sandbox Code Playgroud)
anu*_*ava 42
根据gnu制作官方文件:
配方中的变量和函数引用与makefile中其他位置的引用具有相同的语法和语义.它们也有相同的引用规则:如果你想在你的食谱中出现一个美元符号,你必须加倍它('$$').对于像默认shell这样使用美元符号来引入变量的shell,重要的是要清楚地记住要引用的变量是make变量(使用单个美元符号)还是shell变量(使用两个美元符号) ).
简而言之:
l3x*_*l3x 13
$$是当前进程的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 \
echo $$number ; \
done
208465number
208465number
208465number
208465number
Run Code Online (Sandbox Code Playgroud)