Shell脚本之数组教程
基本数据
- 数组语法
数组名称=(元素1 元素2 元素3) - 数组读出
${数组名称[索引]} - 数组赋值
方法一:一次赋一个值
array0[0]='tom'
方法二:一次赋多个值
array2=(tom jack alice)
array3=(`cat /etc/password`)
- 查看数组
declare -a
- 访问数组元素
echo ${array[0]} # 访问数组中的第一个元素
echo ${array[@]} # 访问数组中所有元素,等同于echo ${array[*]}
echo ${#array[@]} # 统计数组元素的个数
echo ${!array[@]} # 获取数组元素的索引
echo ${array[@]:1} # 从数组下标1开始
echo ${array[@]:1:2} # 从数组下标1开始,访问两个元素
关联数组
- 定义关联数组
declare -A array1
declare -A array2
- 关联数组赋值
方法一:一次赋一个值
array[index1]=pear
array[index2]=apple
array[index3]=orange
方法二:一次赋多个值
array=([index1]=tom [index2]=jack [index3]=alice [index4]=‘zozo’)
示例:
#!/bin/bash
# 声明一个关联数组
declare -A array1
declare -A array2
array1[name]='basim'
array1[age]=18
echo ${array1[name]} # basim
array2=([name]='zozo' [age]=20)
echo ${array2[name]} # zozo
- 查看数组
declare -A
案例分享—学员信息系统
#!/bin/bash
for ((i=0;i<3;i++))
do
read -p "输入第$((i+1))个人名:" name[$i]
read -p "输入第$[$i + 1]个年龄:" age[$i]
read -p "输入第`expr $i + 1`个性别:" gender[$i]
done
clear
echo -e "\t\t\t\t学员查询系统"
while:
do
cp=0
echo -e '\t\t\t\t学员查询系统'
read -p "输入要查询的姓名:" xm
[ $xm == 'Q' ]&&exit
for((i=0;i<3;i++))
do
if [ "$xm" == "${name[$i]}" ];then
echo "${name[$i]} ${age[$i]} ${gender[$i]}"
cp=1
fi
done
[ $cp -eq 0 ]&&echo "not found student"
done