一、数组
普通数组:只能用整数作为数组索引
关联数组:可以用字符串作为数组索引
1、普通数组
(1)添加数组
一次赋一个值
格式:数组名[索引下标]=值
array[0]=value0
array[1]=value1
一次赋多个值
格式:数组名=(值1 值2 值3...)
array=(value1 value2 value3...) 值之间是用空格隔开
(2)查看关联数组
格式:declare -a
(3)读取数组
格式:${数组名[索引下标]}
echo ${array[0]} 获取数组中的第一个值
echo ${array[*]}/echo ${array[*]} 获取数组中的所有值
echo ${#array[*]}或者echo ${#array[*]} 获取数组中所有元素的个数
echo ${!array[@]} 获取数组中元素的索引下标
echo ${array[@]:1:2} 访问指定的元素,1代表从下标为1的元素开始获取,2代表获取后面几个元素
2、关联数组
(1)添加数组
1)一次赋一个值
格式:数组名[索引/下标]=变量值
array[a]=one
2)一次赋多个值
格式:数组名=([下标1/索引1]=值1 [下标2/索引2]=值2 [下标3/索引3]=值3...)
array=([a]=one [b]=two [c]=three)
(2)查看关联数组
格式:declare -A
(3)获取关联数组值
格式:echo ${数组名[下标/索引]}
echo ${array[0]} 获取数组中的第一个值
echo ${array[*]}/echo ${array[*]} 获取数组中的所有值
echo ${#array[*]}或者echo ${#array[@]} 获取数组中所有元素的个数
echo ${!array[@]} 获取数组中元素的索引下标
echo ${array[@]:1:2} 访问指定的元素,1代表从下标为1的元素开始获取,2代表获取后面几个元素
案例:统计web服务的不同连接状态的个数
分析:查看网站连接状态的命令:ss -ant | grep :80 或者nestat -napt | grep :80
统计不同连接状态时,循环统计,相同状态出现一次就+1
二、dirname和basename
1、说明:取出一个目录下的目录和文件
A=/home/xwxxh/桌面/shell/luck.tx
#dirname $A //取出目录
#/home/xwxxh/桌面/shell
#basename $A //取出文件
#luck.txt
2、变量内容的删除和替换
一个‘%’代表从右去掉一个/key/
一个‘%%’代表从右往左最大去掉/key/
一个‘#’代表从左往右去掉一个/key/
一个‘##’代表从左往右最大去掉/key/
案例:url=www.taobao.com.cn
#echo ${#url} //获取变量的长度
#17
#echo ${url%.*} //从右往左去掉第一个.后面的所有内容
#www.taobao.com
#echo ${url%%.*} //从右往左去掉最后一个.后面的所有内容
#www
一个‘/’代表从左往右替换第一个
一个‘//’代表从左往右所有都替换
案例:url=www.taobaobao.com
#echo ${url/a/A}
#www.tAobaobao.com
#echo ${url//a/A}
#www.tAobAobAo.com