在linux中shell数组应用补充题型

1.将/etc/shadow文件中的每一行作为元数赋值给数组

方法一:

第一步:创建shell脚本文件如下

vim art4.sh

第二步:利用for循环以及sed命令进行打印

  

#将/etc/shadow文件的每一行作为元数赋值给数组

LINE=`wc -l < /etc/shadow`

for ((i=1;i<=$LINE;i++))
do
  array[$i-1]=`sed -n "$i p" /etc/shadow`
done

echo ${array[0]}
echo ${array[3]}

第三步:给文件增加执行权限,并运行实现的效果:

增加执行权限:

chmod +x ary4.sh

运行文件

./ary4.sh

结果如下:

 

 方法二:其具体操作一三步与方法一相同(两个代码意思差不多,都是把每一行送给一个数组元素)

第二步代码更改为:

while read line
do 
 array+=(`echo $line`)
done < /etc/shadow

echo ${array[0]}
echo ${array[3]}

2.使用关联数组统计/etc/passwd中用户使用的不同类型shell的数量

第一步:创建shell脚本文件如下

vim ary6.sh

第二步:声明关联数组,并写如下代码

#关联数组必须要声明
declare -A array
cut -d: -f7 /etc/passwd |sort | uniq -c | sort -nr > shell.txt

while read line
do
        index=`echo $line | awk '{print $2}'`
  array[$index]=`echo $line | awk '{print $1}'`

done < shell.txt

rm -rf shell.txt

echo ${array[@]}
echo ${!array[@]}

 第三步:给文件增加执行权限

chmod +x ary6.sh

第四步:运行文件

./ary6.sh

第五步:运行结果如下:

猜你喜欢

转载自blog.csdn.net/m0_68976043/article/details/130850765