首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Makefile子subshell if条件

Makefile子subshell if条件
EN

Unix & Linux用户
提问于 2022-05-09 17:08:17
回答 1查看 3K关注 0票数 0

因此,我有以下代码:

代码语言:javascript
复制
.PHONY: test
test:
ifeq ($(grep -Fxq "substring" ./file && echo 1 || echo 0), 1)
    //do something
else
    //do other thing
endif

如果我在一个文件中找到了一个子字符串,那么我的想法就是去做一些事情,但是我的条件从来不起作用。我可以独立地运行子subshell命令,当找到子字符串时,它可以正常工作,返回1。现在,我知道我可以简单地在make文件中放一个bash表达式,但是我想使用make文件本身的条件。

有什么可能会出错吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2022-05-09 23:32:41

grep中没有make函数。但是可以使用函数shell调用外部二进制文件:

代码语言:javascript
复制
.PHONY: test
test:
ifeq ($(shell grep -Fxq "substring" ./file.txt && echo 1 || echo 0), 1)
    echo Yes
else
    echo No
endif

另外,您应该记住- make不使用bash (或ksh、zsh、任何其他sh)来处理菜谱(或shell函数)。shell解释器是最原始的一个:sh。或者更具体地说,make读取自己的SHELL变量(通常是/bin/sh)。

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

https://unix.stackexchange.com/questions/701955

复制
相关文章

相似问题

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