Shell编程---数组学习总结

概述

array作为一种数据结构,在所有高级语言编程中都是有直接提供和实现的,shell 肯定也是会使用到的。

数组的声明

怎样声明一个数组变量?假设数组的变量名为array。

  1. 直接赋值(根据数组的下标进行赋值)
array[0]="a" 
array[1]="b"
array[3]="c"
  1. 结合关键字declare 进行声明
declare -a array
  1. 小括号空格法
array=("a" "b" "c")
  1. 引号空格法
array="a b c d e"
  1. 混合法
array=([0]="a" [1]="b" [2]="c")

数组的长度

在shell中如何获取数组的长度?假设数组的变量名为array。

#获取整个数组的长度
echo ${#array[@]}
echo ${#array[*]}

------------------------------------------------------------------------------

# 获取数组单个元素的长度(i表示数组元素的下标)
echo ${#array[i]}

数组的值

在shell中如何获取数组的值?假设数组的变量名为array。

#获取数组某个下标(元素)的值:
echo ${array[i]}

------------------------------------------------------------------------------

#获取整个数组(即所有元素)的值:
echo ${array[@]}

数组的遍历

在shell中如何遍历一个数组?假设数组的变量名为array。

  1. 标准for循环
for (i=0;i<=${#array[@];i++})
do
	echo ${array[i]}
done
  1. for…in…循环
for value in ${array[@]}
do
	echo ${value}
done

数组的删除

#删除数组中的某个元素;其中i表示数组元素的下标
unset array[i]  

------------------------------------------------------------------------------

#删除整个数组
unset array

数组的切片(数组的提取)

#定义一个数组array
array=("a" "b" "c" "d" "e" "f")

#获取数组的长度
[ yuki@myhost ~  ] echo ${#array[@]}
6
[ yuki@myhost ~  ] echo ${#array[*]}
6

#获取数组下标为1的元素的值
[ yuki@myhost ~  ] echo ${array[1]}
b

#获取数组的所有值
[ yuki@myhost ~  ] echo ${array[@]}
b


#从数组下标为n开始切片到下标为m的地方,包前n下标的值不包后m下标的值
# 语法:echo ${array[@]:n:m}

[ yuki@myhost ~  ] echo ${array[@]:0:3}
a b c
[ yuki@myhost ~  ] echo ${array[@]:0:4}
a b c d

#从数组下标为m开始切片到数组末尾,包括m下标的值
# 语法:echo ${array[@]:m}
[ yuki@myhost ~  ] echo ${array[@]:1}
b c d e f
[ yuki@myhost ~  ] echo ${array[@]:5}
f

猜你喜欢

转载自blog.csdn.net/yuki5233/article/details/84395800