让我们看如下的bash script
A="china fengxi zhongguo"
echo "echo varialbe A directly:" $A
echo ""
echo "loop string"
for i in $A;
do
echo $i
done
A=("china" "fengxi" "zhongguo")
echo "echo array directly:" $A
echo ""
echo "loop array"
for i in ${A[@]};
do
echo $i
done
输入出为:
echo varialbe A directly: china fengxi zhongguo
loop string
china
fengxi
zhongguo
echo array directly: china
loop array
china
fengxi
zhongguo
求字符串的长度:${#A}
求数组元素的个数:${#A[@]}
分割字符串到数组:
例如,我一个字符串a=192.168.0.1,我想要将其以"."为分隔符,将其分割为一个数组,该数组为(192, 168, 0, 1)。有好多中方法可以实现,这里说一种比较少见,却是很简单的方法:
arr=(${a//./ })
在这里解释一下:上述语句将所有在字符串中出现的"."替换为空格‘ ’,然后将以空格分割的字符串翻译为一个数组(这就是最外层的圆括号的作用)。其中改的//意思是执行全局替换。
在大括号中用的替换'.'字符为' '字符的语法称为参数扩展。