内置排序功能

时间:2019-02-21 16:22:33

标签: makefile gnu-make

gnu make https://www.gnu.org/software/make/manual/make.html#toc-Functions-for-Transforming-Text具有排序功能。排序功能的说明指出了排序功能

  

以词汇顺序对列表中的单词进行排序,删除重复的单词。输出是由单个空格分隔的单词列表。

我创建了这样的测试Makefile

TEST="this is a test test test test test"

all:

     @echo $(sort $(TEST))

我的输出是这是一个测试测试

重复项没有从字符串中完全删除! 我是否错误地解释了排序功能?还是gnu make的错误?

1 个答案:

答案 0 :(得分:1)

双引号绝对没有特殊之处。因此TEST变量包含单词"Thisisatesttesttest和{{1 }},然后对其进行排序,并删除重复项,分别为test""Thisaistest,因此shell得到(1){{1 }},将双引号解释为字符串标记并输出test"(而不是echo "This a is test test"看到This a is test test的位置)。


(1)调试像这样的问题的一个有用技巧是将This is a test test变量设置为a,这样您就可以看到shell得到了什么。例如,您将SHELL与Makefile一起使用

/bin/echo