系统是 macOS 。
vscode 里写 Makefile 脚本:
include .env
clean:
@rm -Rf ./data/mysql
@rm -Rf $(MYSQL_DUMPS_DIR)/*
@rm -Rf ./web
@rm -Rf ./log
@rm -Rf ./etc/ssl/*
.env 文件:
MYSQL_DUMPS_DIR=data/backup #数据库备份文件目录
结果,执行 make clean 后控制台提示:
rm: /Applications/Utilities/Adobe Creative Cloud Experience/CCXProcess.app/Contents/Resources/panels/com.adobe.ccx.start-2.2.1/Contents/js/locales/eo.bundle.js: Permission denied
我才知道完蛋了。。。赶紧 Ctrl+C ,软件没了大半。。。
正在运行的 vscode 跟浏览器都给我删完了,真神奇。。。
我又写了个 printf 测试
aaa:
@printf $(MYSQL_DUMPS_DIR)/*
执行结果一点问题没有:
dt27@DT27-RMBP oa % make aaa
./data/backup%
我不理解。。。 .env 里的变量删掉执行结果:
dt27@DT27-RMBP oa % make aaa
/Applications%
最后发现是 MYSQL_DUMPS_DIR=data/backup #数据库备份文件目录 备注前的空格惹的祸。。。
printf "$(MYSQL_DUMPS_DIR)/*"
#前不带空格
dt27@DT27-RMBP oa % make aaa
data/backup/*% ```
#前带空格
dt27@DT27-RMBP oa % make aaa
data/backup /*%
