Shell脚本编程学习笔记(七)---- 数组
本文已参与[新人创作礼]活动,一起开启掘金创作之路。
数组
array
数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。 与大部分编程语言类似,数组元素的下标由 0 开始。
1.定义关联数组,申明是关联数据(临时)
declare -A 数组名
2-1.给关联数组进行赋值
数组名[索引]=变量值
备注:在使用形如str[0]=1定义数组是,数组的下标值可以不是连续的正整数,元素的顺序按照下标的升序排列,数组的长度由实际包含的元素个数决定,不受下标值的影响。echo ${str2[0]};echo ${str2[5]的值为a d,echo ${str[2]}的值为空。
2-2.特殊定义
- 在for循环中,也可以直接声明并使用数组
for num in 1 2 3 4 5 do echo "num is: ${num}" done - 使用自定义的分隔符分割
str="a,b,c" OLD_IFS="$IFS" IFS="," arr=($str) IFS="$OLD_IFS"`` 此时arr数组的值为a b c或者是:str="m,n";IFS=",";arr=($str),也能按照","对字符串进行分割。与上一条的区别是,上一条更改了IFS的默认值,之后又改了回去,但是第3条没有改回去。IFS`的默认值为空格、teb或换行. - 其他
${数组名[*]} 数组的所有值
${!数组名[*]} 数组的所有索引
- 给关联数组一次赋多个值
数组名=([索引]=变量值 [索引]=变量值 [索引]=变量值 )
3.查看数组
declare -A
4.访问数据元数
${数组名[索引序号]}
例如
//访问数组中的第二个元素
echo ${tt_array2[index2]}
//访问数组中的所有元素
echo ${tt_array2[@]}
//访问数组中所有元素的索引
echo ${!tt_array2[@]}
//统计数组中的长度
echo "数组元素个数为: ${#tt_array2[*]}"
5.遍历数组
通过数组的索引进行遍历
注:将统计的对象作为数组的索引,仅针对关联数据
例如
#!/usr/bin/bash
declare -A array_passwd
#1.对数组进行赋值(需要提前定义,赋值数组)
while read line
do
type$(echo $line|awk -F ':'{print $NF}')
let array_passwd[$type]++
done</etc/passwd
#2.对数组进行遍历
for i in ${!array_passwd[@]}
do
echo "索引是:$i,索引的值是:${array_passwd[$i]}"
done
并发
{
命令
}&
以上只是数组的一些简单的操作,具体还有更复杂的操作,可以简化工作中重复的部分。
感谢大家,点赞,收藏,关注,评论!
浙公网安备 33010602011771号