1、将/etc/shadow文件的每一行作为元素赋值给数组
#!/bin/bash
# 统计行数,作为循环次数
num=`wc -l < /etc/shadow`
for ((i=0;i<=num;i++))
do
# 根据i的变化取前i行内容再然后截取最后一行加入数组中
array[$i]=$(head -$i /etc/shadow | tail -1)
done
# 依次输出数组中的内容
for i in ${array[*]}
do
echo $i
done
2、使用关联数组统计文件/etc/passwd中用户使用的不同类型shell的数量
[root@template ~]# cat arr2.sh
#!/bin/bash
declare -A type_shell
while read line
do
type=`echo $line | awk -F: '{print $7}'`
let type_shell[$type]++
done < /etc/passwd
for i in ${!type_shell[@]}
do
echo "$i ...${type_shell[$i]}"
done
[root@template ~]# ./arr2.sh
/sbin/nologin ...14
/bin/sync ...1
/bin/bash ...2
/sbin/shutdown ...1
/sbin/halt ...1
3、使用关联数组按扩展名统计指定目录中文件的数量
#!/bin/bash
declare -A Array
# 取目录下文件FileName,相当于取后缀名
ls $1 | sed 's/ /\n/g' >> $1/FileName.txt
while read FileName
do
ArrayIndex=${FileName##*.}
let Array[$ArrayIndex]++
done < $1/FileName.txt
for i in ${!Array[@]}
do
echo "$i :::::: ${Array[$i]}"
done
rm -f $1/FileName.txt
标签:bin,...,Shell,练习,FileName,shell,done,数组,type
From: https://www.cnblogs.com/sre-chan/p/17280704.html