为了账号安全,请及时绑定邮箱和手机立即绑定

【九月打卡】第6天 一课玩转自动化运维全流程,轻松应对自动化运维岗

课程章节: 2章 shell编程基础:2-6 Shell中的数组(课程链接:https://coding.imooc.com/lesson/549.html#mid=501802

主讲老师: 沈奇才

课程内容:shell编程实战与Linux运维基础--初始shell编程

课程收获:

1、数据组的定义:arr=(元素1 元素2...),元素之间用空格分开如arr1=(xxxx yyyy zzzz  "hello ,  world"   1234   20.0)

echo "数组arr1的长度:${arr1[@]}"

echo "数组arr1的长度:${arr1[*]}"---中括号里面用@或者*号来表示整改数组里面的内容,如果要获取第1个元素则是${arr1[1]

2、获取数组的长度,在变量前面加#号:${#arr1[*]}

如:

arr1=(xxxx yyyy zzzz  "hello ,  world"   1234   20.0)

echo "数组arr1的长度@:${#arr1[@]}"

echo "数组arr1的长度*:${#arr1[*]}"

打印结果:6代表有6个元素

数组arr1的长度@:6

数组arr1的长度*:6

如果中括号里面是数字,则代表对应第几个字符的长度,注意[0]代表第一个元素(或者什么都不写:${arr1}等价${arr1[0]})、[1]代表第二个元素,以此类推

[zhang@localhost shell_with]$ echo "数组arr1的长度:${#arr1[1]}"

数组arr1的长度:4

[zhang@localhost shell_with]$ echo "数组arr1的长度:${#arr1[2]}"

数组arr1的长度:4

[zhang@localhost shell_with]$ echo "数组arr1的长度:${#arr1[4]}"

数组arr1的长度:4

[zhang@localhost shell_with]$ echo "数组arr1的长度:${#arr1[3]}"

数组arr1的长度:14

[zhang@localhost shell_with]$ echo "数组arr1的长度:${#arr1[5]}"

数组arr1的长度:4

[zhang@localhost shell_with]$ echo "数组arr1的长度:${#arr1[6]}"

数组arr1的长度:0

3、计算某个值expr:expr 1 + 2   (注意数字和运算符直接的空格)输出结果:3

乘法*,要注意,表示乘法的符号时需要加转义:expr 1 \* 2

利用expr可以取到数组里面的最后一个元素:即数组长度减1的下标,首先得定义2个变量

end_len=${#arr1[@]} ##存放数组arr长度

end_index=`expr $end_len - 1` ##存放数组arr长度-1

则最后一个元素是:${arr1[$end_index]}

另一种数据的定义,单个定义:arr1[0]=abc

arr1[1]=123

arr[2]="hello world"

echo "arr1数组:${arr1[@]}"

4、seq的用法(有3个参数:首数 增量 尾数)输出序列化的一串整数

seq 10

结果是:

[zhang@localhost shell_with]$ seq 10

1

2

3

4

5

6

7

8

9

10

seq 0 8

结果是:

[zhang@localhost shell_with]$ seq 0 8

0

1

2

3

4

5

6

7

8

------

5、for循环格式:

for ..

do

循环体

done

6、数组的2种遍历方式:

1)

arr2[0]=abc

arr2[3]=123

arr2[2]="hello world"

arr2[1]=xyz

arr2[4]=3.1415926

count=1

for i in "${arr2[@]}"

do

echo "第${count}个元素是:${i}"

count=`expr ${count} + 1`

done

2)

arr3[0]=abcd

arr3[3]=1234

arr3[2]="hello,www, world"

arr3[1]=xyzxxx

arr3[4]=3.141592677

echo "arr2数组:${arr3[@]}"

end_len=${#arr3[@]}

end_index=`expr $end_len - 1`

for i in `seq 0 $end_index`

do

pos=`expr $i + 1`

echo "第$pos个元素是:${arr3[$i]}"

done

截图:

https://img1.sycdn.imooc.com//631c46520001598e17050892.jpghttps://img1.sycdn.imooc.com//631c46760001bd6216830891.jpg

https://img1.sycdn.imooc.com//631c462b0001580818080869.jpg

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消