7if判断
    1)单分支:
      如果满足,那么;
      statement1
      statement2
      结束
    例:
  1. #!/bin/bash  
  2. #  
  3. if [ ! –e /tmp/abc ]; then  
  4.      mkdir /tmp/abc  
  5. fi  
 
    2)双分支:
         如果存在;那么
           显示目录已经存在
         否则(可以缺省)
           创建目录;
           说明创建成功;
         结束 
         例:
  1. #!/bin/bash  
  2.  
  3. if [ –e /tmp/abc ]; then  
  4.     echo “abc is exits.”  
  5. else 
  6.     mkdir /tmp/abc  
  7.     echo “Create success.”  
  8. fi  
 
   (a)连接两个条件符号:
      -a  与关系,举例:[ $UID –ge –a $UID –le 499 ];
      -o  表示或关系;
      !   表示非关系;
3)多分支:
      (if)如果满足条件一;
             语句
      (elif)如果满足条件二;
             语句
      (elif)如果满足条件三;
             语句
      (else)否则(可以缺省);
             语句
      (fi)结束 
  1. 例:#!/bin/bash  
  2.     #  
  3.     USERID=`id –u user1 `  
  4.     if [ $USERID –eq 0 ];  
  5.        then echo “Admin”   
  6.     elif [ $USERID –ge 1 –a $USERID –le 499 ];   
  7.        then encho “System”  
  8.     else   
  9.        echo “Common user”  
  10.     fi  
    4if嵌套: 
  1. if 条件1;then  
  2.    if 条件2;then  
  3.       statement  
  4.    fi  
  5.  else 
  6.    statement  
  7.  fi  
 
  例:某文件存在时,就判断文件类型,不存在时,就说明此文件不存在; 
  1. if [ -e FILE ];then  
  2.    if [ -f FILE ];then  
  3.       echo “Common.”  
  4.    elif [ -d FILE ];then  
  5.       echo “Directory.”  
  6.    else   
  7.       echo “Uknown.”  
  8.    fi  
  9.  else 
  10.    echo “Its not exits.”  
  11.  fi  
 
8for循环 
  1. for 变量(用于赋值的,一定不要加$符) in 列表;do 
  2.       statement1  
  3.       statement2  
  4.       …  
  5. done  
 
    1)遍历列表,有穷,比如 18表示为1 2 3 4 5 6 7 8 
  1. 例:SUM=0  
  2.     for I in 1 2 3 4 5 6 7 8;do 
  3.        SUM=$[$SUM+$I]  
  4.     done  
  5.        echo $SUM  
 
    2)列表表示法   0100表示为{1..100}`seq 1 100` 
  1.      例:用for循环实现从1到1000之和  
  2.         declare –i SUM=0  
  3.         for I in {1…1000};do 
  4.            SUM=$[$SUM+$I]  
  5.         done  
  6.            echo $SUM  
  7.      例: ping 192.168.0.1到0.20主机是否联通  
  8.         for I in `seq 1 20`;do 
  9. ping 192.168.0.$I  
  10.         done  
 
9while循环:在条件满足时进入循环,直到条件不满足时退出; 
  1. while 条件;do 
  2.       循环体  
  3. done  
  4.  例:1到100所有整数之和:  
  5.      declare –i SUM=0  
  6.      declare –I COUNT=1  
  7.      while [ $COUNT –le 100 ];do 
  8.         SUM=$[$SUM+$COUNT]  
  9.         let COUNT++  
  10.      done  
  11.  例:100以内所有偶数之和  
  12.      declare -i SUM=0  
  13.      declare -i COUNT=2  
  14.      while [ $COUNT –le 100 ];do 
  15.      SUM=$[$SUM+$COUNT]  
  16.      let COUNT=$[$COUNT+2]  
  17.      done  
10case语句,用来替换多分支if语句; 
  1. case $变量 in  
  2. 取值1)  
  3.          语句  
  4.          ;;  
  5. 取值2)  
  6.          语句  
  7.          ;;  
  8. 取值3)  
  9.          语句  
  10.          ;;  
  11. *)  
  12.          语句  
  13.           ;;  
  14. esac  
    例:
  1. #!/bin/bash  
  2. #  
  3. read -p "A char:" CHAR 
  4. case $CHAR in  
  5. [a-z]  
  6.     echo "Char."   
  7.     ;;  
  8. [0-9]  
  9.     echo "Digit." 
  10.     ;;  
  11. ?)  
  12.     echo "Others." 
  13. esac 
11until循环while循环是取反的关系;
  1. until 条件;do  
  2.    循环体  
  3. done  
 例:100以内所有正整数的和; 
  1. #!/bin/bash  
  2. #  
  3. declare –i SUM=0  
  4. declare –i I=0  
  5. until [ $I -gt 100 ];do 
  6.     let SUM=$[$SUM+$I]  
  7.     let I++  
  8. done  
  9.     echo $SUM  
12exit 用于指定结束脚本;
    exit N
    N为状态返回值;0,1-255
    (如果没有明确指定脚本状态返回值,脚本最后一条命令的执行状态即是脚本返回值);
     例: 
  1. #!/bin/bash
  2. #
  3. read -p "A disk:" DISK 
  4. read -p "Will destroy all data on $DISK, continue?" CHOICE
  5. if [ "$CHOICE" = 'y' ];then
  6. dd if=/dev/zero of=$DISK bs=512 count=1 &> /dev/null
  7. else
  8. echo "Quit."
  9. exit
  10. fi  
13、break 停止循环,与exit的区别是exit是退出脚本;

例:

  1. #!/bin/bash 
  2. declare -i I=0 
  3. while true;do 
  4.     sleep 2 
  5.     let I++ 
  6.     [ $I -eq 5 ] && break 
  7. done 
  8. echo $I 
14、continue 退出当前这一次循环,而提前进入下一次循环;

例:1100之内的偶数之和;

  1. #!/bin/bash 
  2. let SUM=0 
  3. let I=1 
  4. while [ $I -le 100 ];do 
  5.     if [ $[$I%2] -eq 1 ];then 
  6.        let I++ 
  7.        continue 
  8.     fi 
  9.     SUM=$[$SUM+$I] 
  10.     let I++ 
  11. done 
  12. echo $SUM
15、脚本的函数 是独立的功能模块,主要是为了实现代码重用;

bash中定义函数的方法:

  1. 方式一: 
  2.         function FUNC_NAME { 
  3.         body 
  4.         } 
  5. 方式二: 
  6.         FUNC_NAME() { 
  7.         body 
  8.         } 
  9. 例: 
  10.         #!/bin/bash 
  11.         # 
  12.         showecho() { 
  13.         echo “How are you!” 
  14.         } 
  15.         for I in {1..10};do 
  16.         showecho 
  17.         done 
1)函数的返回值:
        是函数调用时所执行的函数体中的最后一条语句的状态返回值;
    2)自定义函数返回值:
          return #
    例:
  1. #!/bin/bash  
  2. #  
  3. JUSER () {  
  4.       if id -u root &> /dev/null;then  
  5.            return 0  
  6.       else 
  7.            return 1  
  8.       fi  
  9. }  
  10.  
  11. JUSER &> /dev/null  
  12. echo $? 
 
3)函数还能接受参数:
     例:./a.sh a b
             $1 $2 
  1. #!/bin/bash  
  2. #  
  3. SUM(){  
  4.      local SUMARY=0  
  5.      SUMARY=$[$1+$2]  
  6.      echo $SUMARY  
  7. }  
  8.  
  9. SUM 5 6 
  1. #!/bin/bash  
  2. #  
  3. SUM () {  
  4.      local SUMARY=0  
  5.      SUMARY=$[$1+$2]  
  6.      echo $SUMARY  
  7. }  
  8.  
  9. for I in {1..100};do 
  10.      SUM $I 1000  
  11. done 
小结:
    通过以上的脚本编程学习,我想大家应该对脚本编程有了一个初步的了解,希望在以后的学习中能与大家更多的分享脚本编程的知识。