目录
1. 将/etc/shadow文件的每一行作为元数赋值给数组
2. 使用关联数组统计文件/etc/passwd中用户使用的不同类型shell的数量
1. 将/etc/shadow文件的每一行作为元数赋值给数组
###############################################
# Author: lee
# Version:
# Create_Time: 2023/04/02
# Mail: lee@westos.org
# Info:
#
################################################
#!/bin/bash
j=0
for i in `cat /etc/shadow`
do
array[$j]=$i
let j++
done
read -p "input you want line:" line
echo ${array[$line]}
-----------------------------------结果如下----------------------------------------------
[root@master node1]# sh lx1.sh
input you want line:1
bin:*:18353:0:99999:7:::
2. 使用关联数组统计文件/etc/passwd中用户使用的不同类型shell的数量
###############################################
# Author: lee
# Version:
# Create_Time: 2023/04/02
# Mail: lee@westos.org
# Info:
#
################################################
#!/bin/bash
declare -A array
for i in `cut -d : -f7 /etc/passwd`
do
let array[$i]=array[$i]+1
done
for sub in ${!array[@]}
do
echo $sub:${array[$sub]}
done
--------------------------------------结果如下-------------------------------------------
[root@master node1]# sh lx2.sh
/sbin/nologin:15
/bin/sync:1
/bin/bash:3
/sbin/shutdown:1
/sbin/halt:1
3. 使用关联数组按扩展名统计指定目录中文件的数量
###############################################
# Author: lee
# Version:
# Create_Time: 2023/04/02
# Mail: lee@westos.org
# Info:
#
################################################
#!/bin/bash
declare -A array
for i in `ls | awk -F. '{print $NF}'`
do
let array[$i]=array[$i]+1
done
for sub in ${!array[@]}
do
echo "$sub:${array[$sub]}"
done
-------------------------------结果如下-------------------------------------------------
[root@master node1]# ls
clsn lx2.sh mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz ok_failed.sh test3.sh
lx1.sh lx3.sh nginx-1.10.0.tar.gz test2.sh zy1.sh
[root@master node1]# sh lx3.sh
gz:2
sh:7
clsn:1