练习:写一个脚本adminuser33.sh,其用法格式为:
adminuser33.sh --add -del -h|--help -v|--verbose
其中,-h选项只能单独使用,用于显示帮助信息;--add选项时,新增用户;如果同时使用了-v选项,则新增用户后显示新增用户;--del选项时,删除用户。
#!/bin/bash
#
DEBUG=0
ADD=0
DEL=0
for I in `seq 1 $#` ; do
if [ $# -gt 0 ]; then
case $1 in 有一个匹配就结束整个CASE
-v|--verbose)
DEBUG=1
shift ;;
-h|--help)
echo "Usage: `basename $0` --add USER_LIST --del USER_LIST -v|--verbose -h|--help"
exit 0
;;
--add)
ADD=1
ADDUSERS=$2
shift 2
;;
--del)
DEL=1
DELUSERS=$2
shift 2
;;
*)
echo "Usage: `basename $0` --add USER_LIST --del USER_LIST -v|--verbose -h|--help"
exit 7
esac
fi
done
if [ $ADD -eq 1 ] ; then
for AUSER in `echo $ADDUSERS | sed 's@,@ @g' ` ; do
if id $AUSER &> /dev/null ; then
[ $DEBUG -eq 1 ] && echo "$AUSER exists."
else
useradd $AUSER
[ $DEBUG -eq 1 ] && echo "Add user $AUSER finished."
fi
done
fi
if [ $DEL -eq 1 ] ; then
for DUSER in `echo $DELUSERS | sed 's@,@ @g' ` ; do
if id $DUSER &> /dev/null ; then
userdel -r $DUSER
[ $DEBUG -eq 1 ] && echo "delete $DUSER finished."
else
[ $DEBUG -eq 1 ] && echo "$DUSER not exists."
fi
done
fi
echo " $DEBUG add:$ADD del:$DEL"
[root@localhost ~]# ./adminuser33.sh -v --add tom2,tom3 --del tom2
Add user tom2 finished.
Add user tom3 finished.
delete tom2 finished.
1 add:1 del:1
练习:写一个脚本showlogged.sh,其用法格式为:
showlogged.sh -v -c-h|--help
其中,-h选项只能单独使用,用于显示帮助信息;-c选项时,显示当前系统上登录的所有用户数;如果同时使用了-v选项,则既显示同时登录的用户数,又显示登录的用户的相关信息;如
1 #!/bin/bash
2 #
3
4
5 declare SHOWNUM=0
6 declare SHOWUSERS=0
7 for I in `seq 1 $#` ; do
8 if [ $# -gt 0 ]; then
9 case $1 in
10 -c)
11 SHOWNUM=1
12 shift
13 ;;
14 -v|--verbose)
15 let SHOWUSERS=1
16 SHOWNUM=1
17 shift
18 ;;
19 -h|--help)
20 echo "showlogged.sh -v -c -h|--help."
21 exit 0
22 ;;
23 *)
24 echo "showlogged.sh -v -c -h|--help."
25 exit 7
26 ;;
27 esac
28 fi
29 done
30 if [ $SHOWNUM -eq 1 ]; then
31 echo "Logged usrs: `who | wc -l`"
32 who
33 if [ $SHOWUSERS -eq 1 ] ; then
34 echo "All users: `cat /etc/passwd | cut -d: -f1 |wc -l`"
35 fi
36 fi
[root@localhost ~]# ./showloged.sh -v
Logged usrs: 3
root pts/0 2016-10-24 07:55 (*.*.135.13)
root pts/1 2016-10-24 13:34 (*.*.135.13)
root pts/2 2016-10-24 15:30 (*.*.135.13)
All users: 62
[root@localhost ~]# ./showloged.sh -c
Logged usrs: 3
root pts/0 2016-10-24 07:55 (*.*.135.13)
root pts/1 2016-10-24 13:34 (*.*.135.13)
root pts/2 2016-10-24 15:30 (*.*.135.13)
---end---