我在做特定机器的部署。这些都是用于开发的机器。这种情况可能会导致一些问题,因为部署所需的环境变量可能与用于开发的环境变量不同!
当工程师正在开发时,有一个.zshrc文件是有用的,这些内容包括:
export TFR_RELEASE="my-instance-for-development"
export TFR_DEV="my-instance-for-development"但是,部署的实例是不同的!
这个项目已经有了一个makefile来帮助简化事情。其中一个make命令是make clean
clean:
rm -rf .shadow-cljs
rm -rf node_modules
rm -rf target
rm -rf public/js为了让开发人员知道正在使用的是哪个实例,我决定添加最后两行:
clean:
rm -rf .shadow-cljs
rm -rf node_modules
rm -rf target
rm -rf public/js
echo "TFR_DEV" "$(TFR_DEV)"
echo "TFR_RELEASE" "$(TFR_RELEASE)"执行$ make clean后,终端返回:
➜ make clean
rm -rf .shadow-cljs
rm -rf node_modules
rm -rf target
rm -rf public/js
echo "TFR_DEV" "my-instance-for-development"
TFR_DEV my-instance-for-development
echo "TFR_RELEASE" "my-instance-for-development"
TFR_RELEASE my-instance-for-development"如果在显示相关信息时觉得有点重复的话.因为变量的值是在终端的“提示”和终端的“答案”上计算的。
有没有更好的方法“打印”它?
我的方法并不觉得很优雅。
发布于 2022-11-17 00:51:19
如果您在收据命令前面加上@,它们将不会出现。只有结果。
clean:
rm -rf .shadow-cljs
rm -rf node_modules
rm -rf target
rm -rf public/js
@echo "TFR_DEV" "$(TFR_DEV)"
@echo "TFR_RELEASE" "$(TFR_RELEASE)"发布于 2022-11-17 02:15:04
如果值位于环境中,则可以使用shell变量而不是Make变量:
clean:
echo "$$TFR_DEV"
echo "$$TFR_RELEASE"打印
$ make clean
echo "$TFR_DEV"
my-instance-for-development
echo "$TFR_RELEASE"
my-instance-for-developmenthttps://stackoverflow.com/questions/74468843
复制相似问题