shell:Makefile从shell脚本中导入变量
创始人
2024-05-24 19:01:42
0

目录

    • 需求描述
    • Makefile 读取变量
    • Makefile文件中定义变量
    • Makefile从shell脚本中导入变量
    • 优先级
      • 1、导入shell中的变量
      • 2、传递参数
      • 3、内部变量
      • 4、全局变量

需求描述

Makefile需要从shell脚本中读取变量

Makefile 读取变量

# 打印版本号
.PHONY: echo-version
echo-version:echo ${VERSION};

直接打印发现是空的

$ make echo-version
echo ;

可以读取环境变量

$ export VERSION='0.0.1' && make echo-version
echo 0.0.1;
0.0.1

可以通过命令行传递变量

$ make echo-version VERSION='0.0.1'
echo 0.0.1;
0.0.1

Makefile文件中定义变量

# makefile文件中定义变量
VERSION="0.0.2"# 打印版本号
.PHONY: echo-version
echo-version:echo ${VERSION};
$ make echo-version
echo "0.0.2";
0.0.2

Makefile从shell脚本中导入变量

# 打印版本号
.PHONY: echo-version
echo-version:. ./version.sh && echo $${VERSION};

注意:使用两个$$ 而不是 $

version.sh

#!/bin/bash##################################
# 版本号
##################################export VERSION='0.0.3'
$ make echo-version
. ./version.sh && echo ${VERSION};
0.0.3

优先级

原则:谁最后导入,谁的优先级最高

1、导入shell中的变量

version.sh

#!/bin/bashexport VERSION='0.0.1'

Makefile

# 打印版本号
VERSION='0.0.3'
.PHONY: echo-version
echo-version:. ./version.sh && echo $${VERSION};

执行

$ export VERSION='0.0.4' && make echo-version VERSION='0.0.2'
. ./version.sh && echo ${VERSION};
0.0.1

2、传递参数

Makefile

# 打印版本号
VERSION='0.0.3'
.PHONY: echo-version
echo-version:echo ${VERSION};

执行

$ export VERSION='0.0.4' && make echo-version VERSION='0.0.2'
echo ${VERSION};
0.0.2

3、内部变量

Makefile

# 打印版本号
VERSION='0.0.3'
.PHONY: echo-version
echo-version:echo ${VERSION};

执行

$ export VERSION='0.0.4' && make echo-version
echo '0.0.3';
0.0.3

4、全局变量

Makefile

# 打印版本号
# VERSION='0.0.3'
.PHONY: echo-version
echo-version:echo ${VERSION};

执行

$ export VERSION='0.0.4' && make echo-version
echo 0.0.4;
0.0.4

参考
如何在makefile中获取shell环境变量?

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
一帆风顺二龙腾飞三阳开泰祝福语... 本篇文章极速百科给大家谈谈一帆风顺二龙腾飞三阳开泰祝福语,以及一帆风顺二龙腾飞三阳开泰祝福语结婚对应...
美团联名卡审核成功待激活(美团... 今天百科达人给各位分享美团联名卡审核成功待激活的知识,其中也会对美团联名卡审核未通过进行解释,如果能...