课程章节: 第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
截图:
共同学习,写下你的评论
评论加载中...
作者其他优质文章