我完成了一个脚本,其工作方式如下
bash users.sh -u "user" [-f | -d | -g]
#!/bin/bash
user="" ;
directory="" ;
while getopts u:fgd options; do
case "$options" in
u)
if grep -q "^$OPTARG" /etc/passwd ; then
user="$OPTARG";
echo "user existe";
else
echo "user no existe"
fi
;;
g)
if [ -n "$user" ] ; then
echo "los grupos del usuario son: ";
groups "$user" ;
else
echo "user missing"
fi
;;
d)
if [ -n "$user" ] ; then
directory=$(grep $user /etc/passwd | cut -d : -f 6);
directory+=/*/;
echo "numero de carpetas";
ls -d $directory | wc -l
else
echo "user missing"
fi
;;
f)
if [ -n "$user" ] ; then
directory=$(grep $user /etc/passwd | cut -d : -f 6);
echo "numero de archivos";
ls -p $directory | grep -v / | wc -l
else
echo "user missing"
fi
;;
*) echo "opcion invalida $options" ;;
esac
done
重点是,我当前的脚本“必须”包括一个用户作为争论对象。但是如果缺少username参数,我会希望
bash users.sh -u [-f | -d | -g]
它将为系统的每个用户而不是特定用户显示指定的选项