众所周知Makefile中的函数strip函数是去除字符串空格函数,但是本人使用Makefile去验证这个函数的时候发现其实和很多人所想的并不一致,由于本人写程序的方式都是以双引号括起来的内容为字符串所以在一开始的时候发现并不像大家所说的那样的结果,可能本人说的也不正确但是希望大家能够指正初进我的进步谢谢。
本人习惯的命名字符串是用双引号扩起来的
data =" a b c "
data1= a b c
dataprint:
@echo $(strip $(data))
@echo $(strip $(data1))
打印的结果是:
可以明显的看见没有使用双引号括起来的之前没有空格但是用双引号括起来的将多个双引号变成1个单引号。
说以本人猜想这个函数其实就是将字符串中的多个空格转换为单个空格,而后者中没有被双引号括起来的其实shell根本就没有把他们识别为字符串,而是根据输入是否有分隔符号(空格?分号?)分别把他们当成了字符并打印的时候以但空格去分隔所以data1更像是一个数组分别存储了a,b,c然后以空格作为间隔符。
如果本人说的不对希望大家不吝指正,本事使用的是32bit的Ubuntu 12.04.2 LTS