• 学习记录17


    bash脚本编程之六 使用脚本选项及组合条件测试

    写一个脚本:

    1、添加10个用户user1user10,密码同用户名,但要求只有用户不存在情况下才能添加

    #!/bin/bash

    #

    for I in {1..10}; do

            if id user$I &> /dev/null;then

              echo "user$I exists."

            else

              useradd user$I

              echo user$I | passwd --stdin user$I &> /dev/null

              echo "add user user$I finished."

            fi  

    done

    扩展:

    接收一个参数:

    add:添加用户 user1..user10

    del:删除用户 user1..user10

    其他退出

    #!/bin/bash

    #           

    if  [ $# -lt 1 ]; then

            echo "Usage: demo ARG"

            exit 7

    fi      

            

    if [ $1 == '--add' ]; then

            for I in {1..10};do

              if id user$I &> /dev/null; then

                echo "user$I exists."

              else

                useradd user$I 

                echo user$I | passwd --stdin user$I &> /dev/null

                echo "add user user$I finished."

              fi

            done

    elif [ $1 == '--del' ]; then

            for I in {1..10}; do

              if id user$I &> /dev/null; then

                userdel -r user$I

                echo "delete user$I finished."

               else

                echo "no user$I"

               fi

            done

    else

            echo "unknow arg"

            exit 8

    fi

     

    模拟选项和参数(逗号隔开)添加用户

     

    #!/bin/bash

    #

    if [ $1 == '--add' ]; then

      for I in `echo $2 | sed 's/,/ /g'`;do

        if id $I &> /dev/null; then

          echo "$I exists."

        else

          useradd $I

          echo $I | passwd --stdin $I &> /dev/null

          echo "add $I finished."

        fi  

      done

    elif [ $1 == '--del' ]; then

      for I in `echo $2 | sed 's/,/ /g'`; do

        if id $I &> /dev/null; then

          userdel -r $I

          echo "delete $I finished."

        else

          echo "$I not exists."

        fi  

      done

    elif [ $1 == '--help' ]; then

      echo "Usage:demo.sh --add USER1,SUER2... | --del USER1,USER2... | --help"

    else

      echo "unkonw options"

    fi

     

    组合测试条件

    -a:与关系

    -o:或关系

    !:非关系

    if [ $# -gt 1 -a $# -le 3 ]

    if [ $# -gt 1 ] && [ $# -le 3 ]

    #!/bin/bash

    #

    if [ $1 == 'q' -o $1 == 'Q' -o $1 == 'Quit' -o $1 == 'quit' ]; then

      echo "quiting..."

      exit 0

    else

      echo "unknow arguement."

      exit 1

    fi

  • 相关阅读:
    paip.禁用IKAnalyzer 的默认词库.仅仅使用自定义词库.
    paip.语义分析分词常见的单音节字词 2_deDuli 单字词 774个
    IFL嵌入式小组技术博客入口导航
    devc++5.0.0.9的调试方法
    getch()、getche()和getchar()之间的区别
    devc++5.0.0.9的调试方法
    声明和定义的区别
    IFL嵌入式小组技术博客入口导航
    C/C++程序到内存分配个人总结
    getch()、getche()和getchar()之间的区别
  • 原文地址:https://www.cnblogs.com/bgd140206127/p/6737850.html
Copyright © 2020-2023  润新知