Shell脚本之数组教程

2021-07-29 23:30:50

基本数据

  1. 数组语法
    数组名称=(元素1 元素2 元素3)
  2. 数组读出
    ${数组名称[索引]}
  3. 数组赋值
    方法一:一次赋一个值
array0[0]='tom'

方法二:一次赋多个值

  array2=(tom jack alice)
  array3=(`cat /etc/password`)
  1. 查看数组
declare -a
  1. 访问数组元素
echo ${array[0]}     # 访问数组中的第一个元素
echo ${array[@]}     # 访问数组中所有元素,等同于echo ${array[*]}
echo ${#array[@]}    # 统计数组元素的个数
echo ${!array[@]}    # 获取数组元素的索引
echo ${array[@]:1}   # 从数组下标1开始
echo ${array[@]:1:2} # 从数组下标1开始,访问两个元素

关联数组

  1. 定义关联数组
declare -A array1
declare -A array2
  1. 关联数组赋值
    方法一:一次赋一个值
    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
  1. 查看数组
    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
当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »