zoukankan      html  css  js  c++  java
  • 学习记录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

  • 相关阅读:
    MOSS2007图片库的幻灯片视图在IE8标准渲染模式下的bug及其修正
    分享一个WM上绘制饼图、柱形图、折线图的控件类
    C# 中启动进程的三种方法
    SSCLI 包含了微软的CLI ,C#,JScript....的源码,学习.Net的不看怎么行
    (2)继承关系中的多态性编译时与运行时
    .NET.性能:装箱与拆箱、string stringBuilder、struct class、Add AddRangle等影响性能分析
    .NET.GC学习总结
    .NET.GC 浅谈.net托管程序中的资源释放问题 (转帖)
    (1)通过IL来看构造函数
    conda的使用
  • 原文地址:https://www.cnblogs.com/bgd140206127/p/6737850.html
Copyright © 2011-2022 走看看