这里说的字符串列表类似:modulelist="json logger web",而要求的字符串列表的长度为这个 modulelist 里有多少个子串,这里应该是 3 个子串。但没找到直接获取这个数值的方法,而这里的方法是先转成列表,然后再获取列表大小。如:
#!/bin/sh
modulelist="Json Ubase Logger Infra Web"
templist=(${modulelist})
echo "module_len = ${#templist[@]}"
for module in ${modulelist}
do
echo "${module}"
done
列表获取长度为:${#var[@]} 或 ${#var[*]},这两种不知道有什么区别。
那 var="Json Ubase Logger Infra Web" 和 var=(Json Ubase Logger Infra Web) 有什么区别呢?
测试发现它们在循环时方式不一样,如上面像字符串循环时用:for module in ${modulelist},而如果是列表的话则用:for module in ${templist[*]}
#!/bin/sh
modulelist="Json Ubase Logger Infra Web"
templist=(${modulelist})
echo "module_len = ${#templist[@]}"
for module in ${modulelist}
do
echo "${module}"
done
echo "membe of list"
for module in ${templist[*]}
do
echo "${module}"
done