Shell脚本数组应用(查增改删)

以你之姓@ 2024-04-23 02:00 113阅读 0赞

记录:438

场景:Shell脚本数组应用,数组定义、数组查询、数组增加、数组修改、数组删除。

版本:CentOS Linux release 7.9.2009。

1.**Shell脚本数组**

(1)Shell脚本中使用小括号()来表示数组、元素之间使用空格分隔。赋值号“=”的两边不能有空格,即数组名“city_name”和赋值号“=”以及数组元素的“()”三者之间必须紧挨着不能有空格。

例如:city_name=(E1 E2 E3 … En)

(2)Shell脚本中获取元素使用中括号[],在中括号[a]带下标指定元素位置,下标a是整数且从0开始,即arrry[0]表示第一个元素。

2.数组查询

2.1脚本

脚本名称:b2023060101.sh

脚本内容:

  1. #!/bin/bash
  2. echo '1.定义数组'
  3. cityArray=("宁波" "上海" "苏州" "杭州")
  4. echo '2.获取数组长度'
  5. lenth=${#cityArray[@]}
  6. echo "数组cityArray的长度: ${lenth}"
  7. lenth=${#cityArray[*]}
  8. echo "数组cityArray的长度: ${lenth}"
  9. echo '3.从数组中获取指定位置元素'
  10. city01=${cityArray[0]}
  11. city02=${cityArray[1]}
  12. echo "数组cityArray的: city01=${city01}, city02=${city02}"
  13. echo '4.使用*或@输出所有元素'
  14. city_all_01=${cityArray[*]}
  15. city_all_02=${cityArray[@]}
  16. echo "所有元素city_all_01: ${city_all_01}"
  17. echo "所有元素city_all_02: ${city_all_02}"
  18. echo '5.使用for循环遍历数组'
  19. for ((i=0; i<lenth; i++))
  20. do
  21. echo "第$((i+1))个城市名称: ${cityArray[i]}"
  22. done
  23. echo '6.使用for in和@循环遍历数组'
  24. for item in ${cityArray[@]}
  25. do
  26. echo "城市名称: ${item}"
  27. done
  28. echo '7.使用for in和*循环遍历数组'
  29. for item in ${cityArray[*]}
  30. do
  31. echo "城市名称: ${item}"
  32. done
  33. echo '8.使用while循环遍历数组'
  34. index=0
  35. while ((index < lenth))
  36. do
  37. echo "第$((index+1))个城市名称: ${cityArray[index]}"
  38. ((index++))
  39. done

2.2执行与输出

执行命令:bash b2023060101.sh

执行结果:

  1. 1.定义数组
  2. 2.获取数组长度
  3. 数组cityArray的长度: 4
  4. 数组cityArray的长度: 4
  5. 3.从数组中获取指定位置元素
  6. 数组cityArray的: city01=宁波, city02=上海
  7. 4.使用*或@输出所有元素
  8. 所有元素city_all_01: 宁波 上海 苏州 杭州
  9. 所有元素city_all_02: 宁波 上海 苏州 杭州
  10. 5.使用for循环遍历数组
  11. 1个城市名称: 宁波
  12. 2个城市名称: 上海
  13. 3个城市名称: 苏州
  14. 4个城市名称: 杭州
  15. 6.使用for in和@循环遍历数组
  16. 城市名称: 宁波
  17. 城市名称: 上海
  18. 城市名称: 苏州
  19. 城市名称: 杭州
  20. 7.使用for in和*循环遍历数组
  21. 城市名称: 宁波
  22. 城市名称: 上海
  23. 城市名称: 苏州
  24. 城市名称: 杭州
  25. 8.使用while循环遍历数组
  26. 1个城市名称: 宁波
  27. 2个城市名称: 上海
  28. 3个城市名称: 苏州
  29. 4个城市名称: 杭州

3.数组增加

3.1脚本

脚本名称:b2023060102.sh

脚本内容:

  1. #!/bin/bash
  2. echo '1.定义数组'
  3. cityArray=("宁波" "上海" "苏州" "杭州")
  4. echo '2.获取数组长度'
  5. lenth=${#cityArray[@]}
  6. echo "数组cityArray的长度: ${lenth}"
  7. echo '3.增加两个元素'
  8. cityArray[4]="南京"
  9. cityArray[5]="无锡"
  10. lenth=${#cityArray[@]}
  11. echo "增加后,数组cityArray的长度: ${lenth}"
  12. echo '4.使用*输出所有元素'
  13. city_all_01=${cityArray[*]}
  14. echo "所有元素city_all_01: ${city_all_01}"
  15. echo '5.合并两个数组'
  16. cityArray01=("苏州" "无锡" "常州")
  17. cityArray02=("杭州" "宁波" "绍兴")
  18. cityArray03=(${cityArray01[*]} ${cityArray02[*]})
  19. echo "输出数组cityArray01: ${cityArray01[@]}"
  20. echo "输出数组cityArray02: ${cityArray02[*]}"
  21. echo "输出合并后数组cityArray03: ${cityArray03[*]}"

3.2执行与输出

执行命令:bash b2023060102.sh

执行结果:

  1. [root@hadoop211 tutorial]# bash b2023060102.sh
  2. 1.定义数组
  3. 2.获取数组长度
  4. 数组cityArray的长度: 4
  5. 3.增加两个元素
  6. 增加后,数组cityArray的长度: 6
  7. 4.使用*输出所有元素
  8. 所有元素city_all_01: 宁波 上海 苏州 杭州 南京 无锡
  9. 5.合并两个数组
  10. 输出数组cityArray01: 苏州 无锡 常州
  11. 输出数组cityArray02: 杭州 宁波 绍兴
  12. 输出合并后数组cityArray03: 苏州 无锡 常州 杭州 宁波 绍兴

4.数组修改

4.1脚本

脚本名称:b2023060103.sh

脚本内容:

  1. #!/bin/bash
  2. echo '1.定义数组'
  3. cityArray=("苏州" "无锡" "常州")
  4. echo '2.使用*输出所有元素'
  5. echo "输出数组cityArray所有元素: ${cityArray[*]}"
  6. echo '3.修改数组元素后,使用*输出所有元素'
  7. cityArray[1]="杭州"
  8. cityArray[2]="上海"
  9. echo "修改后,输出数组cityArray所有元素: ${cityArray[*]}"

4.2执行与输出

执行命令:bash b2023060103.sh

执行结果:

  1. [root@hadoop211 tutorial]# bash b2023060103.sh
  2. 1.定义数组
  3. 2.使用*输出所有元素
  4. 输出数组cityArray所有元素: 苏州 无锡 常州
  5. 3.修改数组元素后,使用*输出所有元素
  6. 修改后,输出数组cityArray所有元素: 苏州 杭州 上海

5.数组删除

5.1脚本

脚本名称:b2023060104.sh

脚本内容:

  1. #!/bin/bash
  2. echo '1.定义数组'
  3. cityArray=("苏州" "无锡" "常州" "杭州" "上海")
  4. echo '2.使用*输出所有元素'
  5. echo "输出数组cityArray所有元素: ${cityArray[*]}"
  6. echo '3.删除一个数组元素后,使用*输出所有元素'
  7. unset cityArray[3]="杭州"
  8. echo "执行删除操作后,输出数组cityArray所有元素: ${cityArray[*]}"
  9. echo '4.删除数组所有元素,使用*输出所有元素'
  10. unset cityArray
  11. lenth=${#cityArray[@]}
  12. echo "执行删除操作后,数组cityArray的长度: ${lenth}"
  13. echo "执行删除操作后,输出数组cityArray所有元素: ${cityArray[*]}"

5.2执行与输出

执行命令:bash b2023060104.sh

执行结果:

  1. [root@hadoop211 tutorial]# bash b2023060104.sh
  2. 1.定义数组
  3. 2.使用*输出所有元素
  4. 输出数组cityArray所有元素: 苏州 无锡 常州 杭州 上海
  5. 3.删除一个数组元素后,使用*输出所有元素
  6. 执行删除操作后,输出数组cityArray所有元素: 苏州 无锡 常州 上海
  7. 4.删除数组所有元素,使用*输出所有元素
  8. 执行删除操作后,数组cityArray的长度: 0
  9. 执行删除操作后,输出数组cityArray所有元素:

以上,感谢。

2023年6月1日

发表评论

表情:
评论列表 (有 0 条评论,113人围观)

还没有评论,来说两句吧...

相关阅读