来点不同风格的练习题

回复 收藏
1.接收一个参数, add,添加用户user1..user10    del:删除用户user1..user10;其他 则退出(至少写出两种不同的写法)

第一种:30行代码
  1. #!/bin/bash
  2. #
  3. if [ $# -lt 1 ] ; then
  4.    echo "Usage: adminusers ARG"
  5.    exit 7
  6. fi
  7. if [ $1 == '--add' ] ; then
  8.   for I in {1..10} ; do
  9.     if id user$I &> /dev/null ; then
  10.       echo "user$I exists."
  11.    else
  12.       useradd user$I
  13.       echo "user$I" | passwd --stdin user$I &> /dev/null
  14.       echo "user$I is creta"
  15.      fi
  16.     done
  17. elif [ $1 == '--del' ] ; then
  18.    for I in {1..10} ; do
  19.       if id user$I &> /dev/null ; then
  20.         userdel -r user$I
  21.         echo "user$I is delete"
  22.    else
  23.         echo "user$I no found"
  24.       fi
  25.    done
  26. else
  27.    echo "unknown ARG"
  28.    exit 8
  29. fi



第二种:19行代码
  1. #!/bin/bash
  2. #
  3. for I in {1..10};do
  4. case $1 in
  5. "add")
  6.       id user$I &>/dev/null
  7.      if [ $? -eq 0 ];then
  8.        echo "user$I exist"
  9.      else
  10.        useradd user$I&& echo user$I|passwd --stdin user$I &>/dev/null
  11.        echo "creat user$I done"
  12.      fi
  13.          ;;
  14. "del")
  15.        id user$I &>/dev/null&&userdel -r user$I;echo "delete user$I do    ne"|| echo "user$I not exist"
  16.          ;;
  17. esac
  18. done







2016-03-13 11:22 举报
已邀请:
0

言尽

赞同来自:

本帖最后由 言尽 于 2016-3-14 09:53 编辑

多谢分享,根据未来可能的需求,我自行做了修改,用法为*.sh --add/--del  username 1 10


  1. #!/bin/bash
  2. if [ $# -lt 4 ] ; then
  3.    echo "Usage: adminusers ARG"
  4.    exit 7
  5. fi

  6. if [ $1 == '--add' ] ; then
  7.   for I in `seq $3 $4` ; do
  8.     if id $2$I &> /dev/null ; then
  9.       echo "$2$I exists."
  10.    else
  11.       useradd $2$I
  12.       echo "$2$I" | passwd --stdin user$I &> /dev/null
  13.       echo "$2$I is creta"
  14.      fi
  15.     done
  16. elif [ $1 == '--del' ] ; then
  17.    for I in `seq $3 $4` ; do
  18.       if id $2$I &> /dev/null ; then
  19.         userdel -r $2$I
  20.         echo "$2$I is delete"
  21.    else
  22.         echo "$2$I no found"
  23.       fi
  24.    done
  25. else
  26.    echo "unknown ARG"
  27.    exit 8
  28. fi



0

言尽

赞同来自:

另外问下exit 7 8是什么意思
0

阿铭 管理员

赞同来自:

这题似曾相识。
0

清茶一杯

赞同来自:

阿铭 发表于 2016-3-14 17:31
这题似曾相识。

两个来自不同培训机构的同学给出的答案
0

清茶一杯

赞同来自:

言尽 发表于 2016-3-14 09:54
另外问下exit 7 8是什么意思

退出代码,难道不是自定义的吗, exit 128都行
0

言尽

赞同来自:

清茶一杯 发表于 2016-3-14 21:20
退出代码,难道不是自定义的吗, exit 128都行

没听到过,我还以为每个数字有特殊的意义呢

回复帖子,请先登录注册

退出全屏模式 全屏模式 回复
评分
可选评分理由: