我的需求是这样的:编译多个模块的时候,把失败的模块添加到列表里,最后输出。这个列表类似这样:failModuleList="a b c d e"
先定义一个空的字符串列表:
failModuleList=""
然后利用字符串的拼接方式把模块字符串添加入列表中:
function make_module_list()
{
for modul in ${moduleList}
do
make -C ${modul} platform=$1 #函数里的 $1 是函数的入参,并非命令行传入的参数
if [ $? -ne 0 ]; then
failModuleList+=${modul}
failModuleList+=" "
fi
done
echo -e "\033[31m\"${failModuleList}\" compile fail\033[0m"
}
列表(List):在Shell中,列表是由空格分隔的字符串序列。所以添加了空格,输出效果如下:
也可以用 for 的方式输出列表内容,如:
function make_module_list()
{
for modul in ${moduleList}
do
make -C ${modul} platform=$1 #函数里的 $1 是函数的入参,并非命令行传入的参数
if [ $? -ne 0 ]; then
failModuleList+=${modul}
failModuleList+=" "
fi
done
#echo -e "\033[31m\"${failModuleList}\" compile fail\033[0m"
for module in ${failModuleList}
do
echo -e "\033[31m\"${module}\" compile fail\033[0m"
done
}
注意:shell 的语法,“=”、“+=” 两边都不能有空格 。