shell 字符串数组简单使用
shell中的数组只有一维数组,而且数组的类型不多,由于经常要改Android编译环境以及实现Android的一些简单脚本,用到的字符串数组比较多,学习是为了要使用,对于我们来说,数组的使用就是如何定义、如何查找数据、如何遍历等
#!/bin/sh
name_array=(Zhangshan Lisi Wangwu) #数组的定义和初始化
name_array[3]="chenqw" #数组元素添加
echo "name_array length is ${#name_array[@]}" #数组长度
index=0
for i in ${name_array[@]} #数组遍历
do
echo ${name_array[$index]}
let index++
done
name_array[1]="Cherry" #数组元素修改
echo "name_array length is ${#name_array[@]}"
index=0
for i in ${name_array[@]}
do
echo ${name_array[$index]}
let index++
done
# 第二种遍历方法
#for((i=0;i<${#name_array[@]};i++))
#do
# echo ${name_array[$i]}
#done
unset name_array[1] #数组元素删除,注意删除的是数组元素的内容,而且数组长度也减一,此时数组长度为3,其中包含空的第二个元素
echo "name_array length is ${#name_array[*]}"
index=0
for i in ${name_array[*]}
do
echo ${name_array[$index]}
let index++
done
name_array[4]="Lisi" #数组元素追加,这时候数组的长度是比上面的3加一变成四,但是由于中间还有一个空元素,所以遍历的时候没法输出这个字符串
echo "name_array length is ${#name_array[*]}"
index=0
for i in ${name_array[*]}
do
echo ${name_array[$index]}
let index++
done
echo ${name_array[4]} #单独输出最后个字符串
整个运行输出结果:
chenqw@ubuntu092:~$ sh test.sh
name_array length is 4
Zhangshan
Lisi
Wangwu
chenqw
name_array length is 4
Zhangshan
Cherry
Wangwu
chenqw
name_array length is 3 //删除name_array[1]="Cherry" 后输出的结果
Zhangshan
Wangwu
name_array length is 4 //添加 name_array[4]="Lisi" 输出的结果,此时Lisi是无法输出的,因为长度只有4,导致第五个元素Lisi无法遍历到
Zhangshan
Wangwu
chenqw
Lisi //echo ${name_array[4]} 输出的结果