2

我想知道变量 CHAPTER 是否包含空格。我尝试使用 findstring 没有成功:

CHAPTER=default
new:
ifeq (" ",$(findstring " ",$(CHAPTER)))
    $(error Variable contains space)
else
    echo "variable ok"
endif

这段代码说“变量正常”,而我期望相反。

我究竟做错了什么 ?

我应该怎么做 ?

4

1 回答 1

4

words只需使用函数测试变量值是否为单个单词:

ifneq (1,$(words [$(CHAPTER)]))
# Things are bad...
endif

注意方括号,它也有助于检测前导/尾随空格。

UPD。

另一种选择是定义一个变量,其值中包含一个空格,并搜索目标变量的出现次数。

space :=
space +=

ifneq (,$(findstring,$(space),$(CHAPTER)))
# Things are bad...
endif
于 2012-04-19T15:13:48.740 回答