shell脚本中按照输入的不同参数实现不同功能,例如输入–help时,显示帮助信息;输入–add user_list时,在系统中添加user_list中的账号;输入–del user_list时,在系统中删除user_list中的账号,输入–v|–visa 时,显示脚本运行时的详细信息。
#!/bin/bash # debug=0 add=0 del=0 for i in `seq 1 $#`;do #有多少个输入参数循环多少次 if [ $# -gt 0 ];then #当输入参数个数大于0时执行 case $1 in --help) echo "usage:`basename $0` --add user-list --del user-list --v|--visa --help" exit 0 #帮助信息时,直接退出脚本 ;; --v|--visa) debug=1 shift #把此参数删除掉 ;; --add) add=1 adduser=$2 #user_list赋值给adduser,后面创建用户时用到 shift 2 #把--add user_list这两个参数删除 ;; --del) del=1 deluser=$2 #user_list赋值给deluser,后面删除用户时用到 shift 2 #把--del user_list这两个参数删除 ;; *) #输入的参数不识别是显示帮助信息并退出脚本 echo "usage:`basename $0` --add user-list --del user-list --v|--visa --help" exit 8 ;; esac echo $debug $add $del fi done if [ $add -eq 1 ];then #添加用户 for usera in `echo $adduser | sed -r 's/,/ /g'`;do if id $usera &> /dev/null ;then echo "$usera is exits!" else useradd $usera [ $debug -eq 1 ] && echo "$usera is added!" fi done fi if [ $del -eq 1 ];then #删除用户 for userd in `echo $deluser |sed -r 's/,/ /g'`;do if id $userd &> /etc/null ;then userdel -r $userd [ $debug -eq 1 ] && echo "$userd is del." fi done fi