首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将bash命令的结果赋值给make中的变量

将bash命令的结果赋值给make中的变量
EN

Stack Overflow用户
提问于 2022-01-21 19:10:00
回答 1查看 46关注 0票数 0

我正在尝试让这个shell脚本在make中工作

代码语言:javascript
复制
$ VERSION=$(echo 'ThisBuild / version := "1.20"' | grep -e 'This.*version' | grep -Eo '[0-9]+\.[0-9]+')
$ echo $VERSION
1.20

make

代码语言:javascript
复制
$ make -v
GNU Make 4.2.1
Built for x86_64-pc-linux-gnu

Makefile

代码语言:javascript
复制
version:

    VERSION=$(echo 'ThisBuild / version := "1.20"' | grep -e 'This.*version' | grep -Eo '[0-9]+\.[0-9]+') && \
    echo "VERSION: ${VERSION}"

不管用:

代码语言:javascript
复制
$ make version
VERSION= && \
echo "VERSION: "
VERSION: 

这能办到吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-21 19:13:18

如果您想将$传递给shell,则必须将其从make中解脱出来,方法是加倍它:$$

代码语言:javascript
复制
version:
        VERSION=$$(echo 'ThisBuild / version := "1.20"' | grep -e 'This.*version' | grep -Eo '[0-9]+\.[0-9]+') && \
        echo "VERSION: $${VERSION}"

否则,make会认为您在引用make变量并展开它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70806497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档