linux 字符串数组定义,【Linux Shell脚本编程】数组的定义与使用

在Shell中一个变量只能有一个值,但是通过定义数组变量可以赋予多个值,数组定义方式和变量基本一样。数组在工作中多用于做统计,思路就是把需要统计的字段放到索引中。Shell中的数组分为了普通数组和关联数字,普通数组的下标索引只能是数字,而关联数字可以自定义字符串。

一、数组的定义

1、普通数组

一次赋予多个值(元素)给数组的方式

afcd584d67b8c0f083ba50d626981dc8.png

IP=("192.168.100.10" "192.168.100.20" shell python) #定义一个包含4个值的数组,用空格分隔每个元素值

echo $IP #默认显示数组中第一个元素值

echo ${IP[1]} #数组中第一个元素值的索引为0,这里1代表显示第二个元素192.168.100.20,以此类推

echo ${IP[@]} #显示数组中的每个元素值

echo ${!IP[@]} #显示数组中的出每个索引下标

echo ${IP[*]} #也是显示数组中的所有元素

echo ${#IP} #显示第一个元素的字符个数

echo ${#IP[@]} #显示数组元素值的个数

还可以一次赋一个值给数组,方括号内就是索引下标:

array1[0]=python

array1[1]=php

array1[2]=shell

2、关联数组

关联数组的索引可以自定义为字符串,不再必须是整数,但是必须提前声明关联数组,否则Shell会把这个变量作为普通数组处理

dclare -A info #声明是关联数组,否则shell只认识普通数组

info=([name]=tom [age]=18 [sex]=male) #和普通数组定义方式有区别

echo ${info[name]}

二、数组使用示例

1、用数组统计不同shell的数量:

declare -A shells

while read line

do

type=`echo $line |awk -F: '{print $NF}'`

let shells[$type]++

done

for i in ${!shells[@]} #遍历索引

do

echo "$i: ${shells[$i]}"

done

2、统计TCP状态,比如看看有多少用户在请求我们的80端口:

declare -A status

type=`ss -an |grep :80 | awk '{print $2}'`

for i in $type

do

let status[$i]++

done

for j in ${!status[@]}

do

echo "$j: ${status[$j]}"

done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值