for dir in " b/. c/. obj/. src/. "; do
if [ $dir != "src/." ] && [ $dir != "obj/." ]; then
make -C $dir;
fi;
done
这里的错误是/bin/sh: 2: [: b/.: unexpected operator
,为什么我得到这个错误。b/。是makefile所在目录的子目录。
for dir in b/. c/. obj/. src/.; do
if [ "$$dir" != "src/." ] && [ "$$dir" != "obj/." ]; then
make -C $$dir;
fi;
done
变化:
将
$dir
转义为$$dir
,以便make
不会认为您正在使用$d
变量把
$$dir
加引号从
for
参数中删除引号,这样它们就不会被解释为单个引号增加了一些空格