• 流程控制语句


    if条件判断

    
    
    语法:  if [条件判断式]
    
              then
                 程序
           
          fi
    
    
             
          if [条件判断式]
    
             then          
                程序
            
          else
    
             then
                程序
     
          fi    
    

    查看根分区使用率

    #!/bin/bash
    a=$( dh -h | grep  /dev/sda3 | awk '{print $5}' | cut -d "%"  -f 1)
    if [ "$a" -ge  80 ]
    
        then
               echo "内存超80%了"       
     
    fi
    

    #!/bin/bash
    
    ntpdate asia.pool.ntp.org &> /dev/null
    #同步系统时间
    
    date=$(date +%y%m%d)
    #把当前时间以一种格式赋予date
    
    size=$(du -sh /var/lib/mysql)
    #统计mysql数据库大小,并赋予size变量
    
    if [ -d  /tmp/dbbak ]
    #判断备份目录是否存在,是否是目录
    
       then   
          
          echo "Date :$date!" >/tmp/dbbak/dbinfo.txt
          #把当前日期写入临时文件中
          
          echo "Date size : $size " >>/tmp/dbbak/dbinfo.txt
          #把数据库大小写入临时文件中
          
          cd /tmp/bdbak
          #进入备份目录
          
          tar -zcf mysql-lib-$date.tar.gz  /var/lib/mysql  dbinfo.txt &? /dev/null
          
          rm -rf /tmp/dbbak/dbinfo.txt
          #删除临时文件
    
    else
    
    mkdir  /tmp/dbbak
    
      echo "Date :$date!" >/tmp/dbbak/dbinfo.txt
          #把当前日期写入临时文件中
          
          echo "Date size : $size " >>/tmp/dbbak/dbinfo.txt
          #把数据库大小写入临时文件中
          
          cd /tmp/bdbak
          #进入备份目录
    
          tar -zcf mysql-lib-$date.tar.gz  /var/lib/mysql  dbinfo.txt &? /dev/null
          
          rm -rf /tmp/dbbak/dbinfo.txt
          #删除临时文件
    
    
    



    for循环

    语法: for $变量  in   值1  值2  值3 ....  
       
              do   
                  程序  #将值1,值2,值3依次赋予$变量
          
              done
    
    
           for (( 初始值; 控制条件;变量变化 ))
    
               do 
                  程序
        
               done
    
    

    #!/bin/bash
    cd   /boot/sh/tar压缩包目录
    
    ls  *.tar.gz >tar.log                  #将包文件名打印到tar.log
    ls  *.tgz >> tar.log &>/dev/null       #将包tgz名称也加入tar.log,
    a=$(cat tar.log|wc -l)                 #通过wc命令统计包个数赋予变量a
    
    for ((i=1;i<=$a;i++))
      do    
         tarname=  cat tar.log|awk 'NR=="$1" {print  $1}'
         tar -zcf $tarname -C /root/sh/tar    
      done
    
    rm -rf tar.log                         #删除tar.log临时文件
    

    #!/bin/bash
    cd   /boot/sh/tar压缩包目录
    
    ls  *.tar.gz >tar.log                  
    ls  *.tgz >> tar.log &>/dev/null
    
    for in $(cat tar.log)
    do 
       
              
         tar -zcf $tarname -C /root/sh/tar    
      done
    
    rm -rf tar.log                         #删除tar.log临时文件
    

    #!/bin/bash
    read -p  "请输入要设置初始用户的名字"  name
    read -p  "请输入要设置初始用户的密码"  pass
    read -p  "请输入要建立多少个这样的用户" num
    
    if [ -n  "$name"  -a   -n "$pass"   -n "$num" ]
    
      then 
          y=$(echo $num|sed 's/[0-9]//g') 
    
       if [  !-n $y ]
    
         then
    
            for((i=1;1<=$num;i++))
               do
    
                  /usr/sbin/useradd $name$i &>/var/null
                  echo $pass| /usr/bin/passwd --stdin $name$i &> /var/null
    
               done 
        fi
    fi
    

    for i in 1 2 3 4
    
      do  
      
        echo $I
      
      done
    
    
    
    
    s=0
    for (( i=0; i<=100; i++ ))
       do
       
            s=$((s+$i))
    
       done
       
    echo $s
    



    case判断

    语法:case  $变量名   in
         
            "值1")
             
               程序1
               ;;
              
              
            "值2")
             
               程序2 
               ;; 
              
              
             *)     #代表若不是值1或值2,则执行程序3
            
               程序3
               ;;
            
    esac
    

    #!/bin/bash
    
    read -p "请输入成绩:" score
    
    case  "$score"  in
         
           100)
            echo "满分"
            ;; 
           
           
           9[0-9])
            echo "优秀"
            ;;
          
          
           [78][0-9])
            echo "良好"
            ;;
          
          
           6[0-9])
            echo"及格"
            ;; 
    
    
          *)
            echo "不及格"         
            ;;
    
    esca  
    



    while循环

    语法:   while [条件判断式]
                do
                     程序 
                done
               
    



    until循环

    语法:  until [条件判断式]
                do
                     程序 
                done
    
    注:until循环与while循环相反,until循环只要条件不成立则继续执行程序            
    

    break语句,continue语句,exit语句

    break 是跳出整个循环,在循环结束后下移至代码。

    continue在循环中不执行continue下面的代码,转而进入下一轮循环

    exit:脚本中碰到exit,脚本执行就结束了;命令中是退出当前shell

    当你的才华配不上你的野心,努力的时候到了!
  • 相关阅读:
    bzoj3028食物 关于(1+x+x^2+x^3+x^4+...)^k的第i项系数就是c(i+k−1,k−1)的证明
    一个好玩的题--倒水
    HDU4372(第一类斯特林数)
    MySQL常用基本语句
    腾讯windows客户端一面
    腾讯PC客户端开发方向一面
    LeetCode数据库175
    Intern Day47
    Intern Day46
    Intern Day46
  • 原文地址:https://www.cnblogs.com/xwdzj/p/14008660.html
Copyright © 2020-2023  润新知