我有一个make文件中的以下代码,如果不存在,我知道这会在Home中创建bin文件夹...但是我无法理解$$ HOME / bin是什么意思...
我在Google上搜索,发现$$是获取bash的processid ...但无法理解$$ HOME / bin的意思...有人可以解释吗?
.PHONY: home_bin
home_bin: ## Create home bin if not created
@ if [[ ! -d "$$HOME/bin" ]]; then \
echo "Creating $$HOME/bin"; \
mkdir $$HOME/bin; \
echo "✔︎ $$HOME/bin created"; \
else \
echo "✔︎ $$HOME/bin already created"; \
fi
谢谢。
make
本身执行$
前缀字符的扩展; $$
扩展为单个文字$
以传递到外壳。
考虑一个简单的Makefile:
x=f
all:
xoo=3 && echo $xoo
将输出foo
,因为
make
将$x
扩展为单个字符f
。make
将字符串xoo=3 && echo foo
传递到外壳程序以执行]比较
x=f
all:
xoo=3 && echo $$xoo
输出3
,因为
make
将$$
展开为$
make
将字符串xoo=3 && echo $xoo
传递到外壳程序以执行]