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

记录: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

脚本内容:

#!/bin/bash

echo '1.定义数组'
cityArray=("宁波" "上海" "苏州" "杭州")

echo '2.获取数组长度'
lenth=${#cityArray[@]}
echo "数组cityArray的长度: ${lenth}"
lenth=${#cityArray[*]}
echo "数组cityArray的长度: ${lenth}"

echo '3.从数组中获取指定位置元素'
city01=${cityArray[0]}
city02=${cityArray[1]}
echo "数组cityArray的: city01=${city01}, city02=${city02}"

echo '4.使用*或@输出所有元素'
city_all_01=${cityArray[*]}
city_all_02=${cityArray[@]}
echo "所有元素city_all_01: ${city_all_01}"
echo "所有元素city_all_02: ${city_all_02}"

echo '5.使用for循环遍历数组'
for ((i=0; i<lenth; i++))
do 
  echo "第$((i+1))个城市名称: ${cityArray[i]}"
done

echo '6.使用for in和@循环遍历数组'
for item in ${cityArray[@]}
do 
  echo "城市名称: ${item}"
done

echo '7.使用for in和*循环遍历数组'
for item in ${cityArray[*]}
do 
  echo "城市名称: ${item}"
done

echo '8.使用while循环遍历数组'
index=0
while ((index < lenth))
do
  echo "第$((index+1))个城市名称: ${cityArray[index]}"
  ((index++))
done

2.2执行与输出

执行命令:bash b2023060101.sh

执行结果:

1.定义数组
2.获取数组长度
数组cityArray的长度: 4
数组cityArray的长度: 4
3.从数组中获取指定位置元素
数组cityArray的: city01=宁波, city02=上海
4.使用*或@输出所有元素
所有元素city_all_01: 宁波 上海 苏州 杭州
所有元素city_all_02: 宁波 上海 苏州 杭州
5.使用for循环遍历数组
第1个城市名称: 宁波
第2个城市名称: 上海
第3个城市名称: 苏州
第4个城市名称: 杭州
6.使用for in和@循环遍历数组
城市名称: 宁波
城市名称: 上海
城市名称: 苏州
城市名称: 杭州
7.使用for in和*循环遍历数组
城市名称: 宁波
城市名称: 上海
城市名称: 苏州
城市名称: 杭州
8.使用while循环遍历数组
第1个城市名称: 宁波
第2个城市名称: 上海
第3个城市名称: 苏州
第4个城市名称: 杭州

3.数组增加

3.1脚本

脚本名称:b2023060102.sh

脚本内容:

#!/bin/bash

echo '1.定义数组'
cityArray=("宁波" "上海" "苏州" "杭州")

echo '2.获取数组长度'
lenth=${#cityArray[@]}
echo "数组cityArray的长度: ${lenth}"

echo '3.增加两个元素'
cityArray[4]="南京"
cityArray[5]="无锡"
lenth=${#cityArray[@]}
echo "增加后,数组cityArray的长度: ${lenth}"

echo '4.使用*输出所有元素'
city_all_01=${cityArray[*]}
echo "所有元素city_all_01: ${city_all_01}"

echo '5.合并两个数组'
cityArray01=("苏州" "无锡" "常州")
cityArray02=("杭州" "宁波" "绍兴")
cityArray03=(${cityArray01[*]} ${cityArray02[*]})
echo "输出数组cityArray01: ${cityArray01[@]}"
echo "输出数组cityArray02: ${cityArray02[*]}"
echo "输出合并后数组cityArray03: ${cityArray03[*]}"

3.2执行与输出

执行命令:bash b2023060102.sh

执行结果:

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

4.数组修改

4.1脚本

脚本名称:b2023060103.sh

脚本内容:

#!/bin/bash

echo '1.定义数组'
cityArray=("苏州" "无锡" "常州")

echo '2.使用*输出所有元素'
echo "输出数组cityArray所有元素: ${cityArray[*]}"

echo '3.修改数组元素后,使用*输出所有元素'
cityArray[1]="杭州"
cityArray[2]="上海"
echo "修改后,输出数组cityArray所有元素: ${cityArray[*]}"

4.2执行与输出

执行命令:bash b2023060103.sh

执行结果:

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

5.数组删除

5.1脚本

脚本名称:b2023060104.sh

脚本内容:

#!/bin/bash

echo '1.定义数组'
cityArray=("苏州" "无锡" "常州" "杭州" "上海")

echo '2.使用*输出所有元素'
echo "输出数组cityArray所有元素: ${cityArray[*]}"

echo '3.删除一个数组元素后,使用*输出所有元素'
unset cityArray[3]="杭州"
echo "执行删除操作后,输出数组cityArray所有元素: ${cityArray[*]}"

echo '4.删除数组所有元素,使用*输出所有元素'
unset cityArray
lenth=${#cityArray[@]}
echo "执行删除操作后,数组cityArray的长度: ${lenth}"
echo "执行删除操作后,输出数组cityArray所有元素: ${cityArray[*]}"

5.2执行与输出

执行命令:bash b2023060104.sh

执行结果:

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

以上,感谢。

2023年6月1日

猜你喜欢

转载自blog.csdn.net/zhangbeizhen18/article/details/130997105