在Makefile中每一个shell语句相当于开启了一个bash进程,去执行这个语句,所以要使用判断和循环的时候,得保证他们执行的空间在一个bash进程当中,所以就应该添加 ";\ " ,表明相应的 语句是在同一个shell进程中使用的,是一个原子操作,"then” 只需要加一个 \ 换行就行(具体为什么,这样做我也不太清楚,我猜测,是因为,shell语法中的规定)
以if的用法作为讲解
test:
if [ -d WordEnv
] ;\
then \
echo "hello" ;\
fi
上面那种写法和下面的写法是相同的
if [ -d WorkEnv
] ;\
then echo "hello world" ;\
fi