首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Makefile比较字符串问题

Makefile比较字符串问题
EN

Stack Overflow用户
提问于 2020-01-17 18:32:57
回答 1查看 105关注 0票数 0

在我的makefile中,我需要检查一个文件是否以bash shebang开头。

我通过这样做得到了这个值

代码语言:javascript
复制
PROJECT_AUTOINSTALL_FIRST_LINE := $$(head -n 1 ./autoinstall_script.sh)

然后我将它与这个值进行比较:

代码语言:javascript
复制
BASH_SHEBANG = \#!/bin/bash

然后,我检查它们是否相等,方法是

代码语言:javascript
复制
ifneq ($(PROJECT_AUTOINSTALL_FIRST_LINE),$(BASH_SHEBANG))
    @${ERROR_ECHO} "The FIRST line in project autoinstall file MUST be $(BASH_SHEBANG)."
endif

问题是,无论文件是否以shebang开头,条件始终为真。我做了一个调试回声,以便以可视化的方式测试相等性,并得到以下结果:

乍一看,它们似乎是相等的,但代码并不是这样说的。你知道我做错了什么吗?

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-17 18:56:15

什么

代码语言:javascript
复制
PROJECT_AUTOINSTALL_FIRST_LINE := $$(head -n 1 ./autoinstall_script.sh)

只需将文字字符串$(head -n 1 ./autoinstall_script.sh)赋给变量PROJECT_AUTOINSTALL_FIRST_LINE即可。不是你想要的。请尝试执行以下操作:

代码语言:javascript
复制
PROJECT_AUTOINSTALL_FIRST_LINE := $(shell head -n 1 ./autoinstall_script.sh)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59785619

复制
相关文章

相似问题

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