#!/bin/bash
users=`wc -l /etc/passwd | cut -d‘ ‘ -f1`
declare -i bashcount=0
declare -i nologincount=0
for i in `seq 1 $users`;do
usershell=`head -$i /etc/passwd | tail -1 | cut -d: -f7 | cut -d‘/‘ -f3`
if [ "$usershell" == "bash" ] ;then
let bashcount+=1
bash_array[$(($bashcount-1))]=`head -$i /etc/passwd | tail -1 | cut -d: -f1`
elif [ "$usershell" == "nologin" ];then
let nologincount+=1
nologin_array[$(($nologincount-1))]=`head -$i /etc/passwd | tail -1 | cut -d: -f1`
else
echo "other shell" &>/dev/null
fi
done
for x in ${bash_array[@]};do
bashusers=$bashusers,$x
done
echo "bash have $bashcount "users",they are:"$bashusers
for y in ${nologin_array[@]};do
nologinusers=$nologinusers,$y
done
echo "/sbin/nologin "have "$nologincount "users",they are:"$nologinusers
shell脚本输出/etc/passwd中shell类型对应的用户名及其个数
原文:https://blog.51cto.com/11342825/2425128