shell脚本中按照输入的不同参数实现不同功能

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

adddel1

adddel2

此条目发表在linux分类目录,贴了, , , 标签。将固定链接加入收藏夹。