shell:Makefile从shell脚本中导入变量

需求描述

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/bash

export 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环境变量?

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值