您的位置:首页 > 运维架构 > Shell

bash中字符串和数组的遍历

2016-06-24 16:46 399 查看
让我们看如下的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//./ })

在这里解释一下:上述语句将所有在字符串中出现的"."替换为空格‘ ’,然后将以空格分割的字符串翻译为一个数组(这就是最外层的圆括号的作用)。其中改的//意思是执行全局替换。

在大括号中用的替换'.'字符为' '字符的语法称为参数扩展。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: