Linux:Shell数组

目录

  绪论:

1、数组

1.1 创建数组的方法

1.2 打印数组

1.3 查看数组的长度(即查看数组中的元素有几个)

1.4 获取数组下标对应的元素值

1.5 数组的遍历

 1.6 数组的切片

1.7 数组的替换

1.8 数组的应用

1.9 冒泡排序


  绪论:

什么是数组?

由数字组成的组;组中可以是int类型,也可以是string字符类型

数组中的数据类型可以由用户自定义 

即可以为相同类型,页、也可以是不同类型的元素的集合

数组的作用?

可以一次性定义多个变量

1、数组

1.1 创建数组的方法

方法1:数组名=(~ ~ ~ ~ ~)  注意:每个元素之间要用空格隔开

eg:ky30=(lt zxy lt1 zxy1 lt2 zxy2 123 456)
解释
ky30:定义数组名
()里面定义数组的元素,多个元素之间空格隔开
echo ${ky30|[*]}打印数组名

方法2:数组名=([0]=1 [1]=2 [2]=3 [3]=4 [4]=5)  注:[ ] 中表示下标位置;数组中,默认下标从0开始
 

eg:ky30=([0]=1 [1]=2 [2]=3)
echo ${ky30[*]}
上面的[0],[1],[2]表示数组的下表索引,在数组中的位置,默认第一个为0
echo ${ky30 [3]}  表示打印ky30的zxy1

方法3:

数组名[0]=a

数组名[1]=b

数组名[2]=c

1.2 打印数组

echo ${数组名[*]}     或     echo ${数组名[@]}

1.3 查看数组的长度(即查看数组中的元素有几个)

echo ${#数组名[*]}

1.4 获取数组下标对应的元素值

echo ${数组名[下标]}

1.5 数组的遍历

vim shuzu.sh
arr=(1 2 3 4 5)
for i in ${arr[*]}
do
echo $i
done

 1.6 数组的切片

索引下标的步长是从当前索引下标的位置包含自己位置往后走几位

lt=(1 2 3 4 5)
echo ${lt[*]}
echo ${lt[*]:0:2}

0表示第一位,2表示从0开始的第一位开始书1,2两个

1.7 数组的替换

替换数组中的元素:

echo ${数组名[*]/old/new}  ----  表示将数组中的元素old 变成new ,注意这种方法是临时改变,只会生效一次

永久替换:

数组名=(${数组名[*]/old/new})

删除数组以及删除数组中的指定元素:

unset 数组名    ------     删除整个数组

unset 数组名[下标]     ------    通过下标索引位置删除指定元素

追加元素:假设前面有0 1 2 3 4 索引下标了

第一种方式:

数组名[索引下标]=更改后的元素

lt[]5=6

如果lt[0]=6那就把第一个元素给替换了,索引位置为空可以是追加,如果索引有值就是替换

第二种方式:

数组名[${#数组名[*]}]=替换后的元素

lt[${lt[*]}]=9

第三种方法:

数组名+=(元素 元素)

lt +=(8 9)

1.8 数组的应用

数组和函数之间

vim shuzu.sh
ky30() {
abc=($(echo $@))
echo "新数组的值为:${abc[*]}"
}
abc1=(`seq 1 10`)
ky30 ${abc1[*]}

数组作为参数,传参给函数

1.9 冒泡排序

类似于气泡上涌,在数组中从小到大或者从大到小来进行排序,就是把一个大小顺序排序混乱的数组按照从小到大或从大到小进行排序

思路:abc=(20 10 60 40 50 30)两个相邻的数来比,大的往右走,晓得往左走,需要双循环,外循环确认次数,内循环比大小换位置,实现和循环次数的轮次而减少

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

曦雨天梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值