1、将密码文件的每一行作为元数赋值给数组
第一种
#!/bin/bash
declare -a array1
j=0
for i in `cat /etc/shadow`
do
echo $i
array1[$j]="$i"
let j++
done
echo ${!array1[*]}
第二种
array1=(`cat /etc/shadow`)
2、使用关联数组统计密码文件中用户使用的不同类型shell的数量
array1=(`awk 'BEGIN{FS=":"; OFS=":"}{print $1,$7}' /etc/passwd `)
declare -A array2
for i in ${array1[*]}
do
str=`echo $i | cut -d':' -f1 `
array2[$str]=`echo $i | cut -d':' -f2 `
done
echo ${!array2[*]}
echo ${array2[*]}
3、使用关联数组按扩展名统计指定目录中文件的数量
read -p "请输入要查看的目录:" path
[ -z $path ]&& echo "输入错误:输入为空" && exit 1
cd $path
for i in `ls`
do
if [ -d $i ]; then
echo $i >>/tmp/ceshi.txt
fi
done
declare -A array
a=0
while read line
do
let array[$a]++
done </tmp/ceshi.txt
b=0
for b in ${!array[*]}
do
echo "目录文件共有: ${array[$b]}"
done
rm -rf /tmp/ceshi.txt