美文网首页
shell流程控制

shell流程控制

作者: 城堡下的晚祷 | 来源:发表于2019-03-27 21:31 被阅读0次
    1.if语句

    语法格式:

    if [ 条件判断式 ]
    then
        command1
    elif [ 条件判断式 ] 
    then 
        command2
    else
        commandN
    fi
    

    注意事项:
    (1)[ 条件判断式 ],中括号和条件判断式之间必须有空格
    (2)if后要有空格

    案例:
    创建iftest.sh如下:

    #!/bin/bash
    if [ $1 -gt $2]
    then
        echo "参数1大于参数2"
    elif [ $1 -eq $2]
    then
        echo "参数1等于参数2"
    else
        echo "参数1小于参数2"
    fi
    

    调用结果如下:

    [root@localhost shelldata]# ./iftest.sh 3 8
    参数1小于参数2
    [root@localhost shelldata]# ./iftest.sh 6 2
    参数1大于参数2
    [root@localhost shelldata]# ./iftest.sh 5 5
    参数1等于参数2
    
    2.case 语句

    语法:

    case $变量名 in 
      "值1") 
        如果变量的值等于值1,则执行程序1 
        ;; 
      "值2") 
        如果变量的值等于值2,则执行程序2 
        ;; 
     ... ...
      *) 
        如果变量的值都不是以上的值,则执行此程序 
        ;; 
    esac
    

    注意事项:

    • case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。
    • 双分号“;;”表示命令序列结束,相当于java中的break。
    • 最后的“*)”表示默认模式,相当于java中的default。

    创建casetest.sh 如下:

    #!/bin/bash
    case $1 in
    1)
        echo "参数1的值为1"
    ;;
    2)
        echo "参数1的值为2"
    ;;
    3)
        echo "参数1的值为3"
    ;;
    *)
        echo "参数1的值不为1,2,3"
    ;;
    esac
    

    调用结果:

    [root@localhost shelldata]# ./casetest.sh 1
    参数1的值为1
    [root@localhost shelldata]# ./casetest.sh 2
    参数1的值为2
    [root@localhost shelldata]# ./casetest.sh 3
    参数1的值为3
    [root@localhost shelldata]# ./casetest.sh 4
    参数1的值不为1,2,3
    
    3.for 循环

    (1)普通for循环

    for (( 初始值;循环控制条件;变量变化 )) 
      do 
        程序 
      done
    

    案例:
    计算1+2+3+...+100

    创建for1.sh脚本

    #!/bin/bash
    sum=0
    for((i=1;i<=100;i++ ))
    do
        sum=$[$sum+$i]
    done
    echo $sum
    

    调用结果:

    [root@localhost shelldata]# ./for1 
    5050
    

    (2)类增强for循环

    for 变量 in 值1 值2 值3… 
      do 
        程序 
    done
    

    案例:

    [root@localhost shelldata]# cat for2.sh 
    #!/bin/bash
    for i in $*
    do
     echo "$i"
    done
    
    [root@localhost shelldata]# ./for2.sh 1 2 3 4 5 6
    1
    2
    3
    4
    5
    6
    
    4.while循环

    基本语法:

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

    案例:

    [root@localhost shelldata]# cat whiletest.sh 
    #!/bin/bash
    sum=0
    i=1
    while [ $i -le 100 ]
    do
        sum=$[$sum+$i]
        i=$[$i+1]
    done
    
    echo $sum
    
    
    [root@localhost shelldata]# ./whiletest.sh 
    5050
    
    

    相关文章

      网友评论

          本文标题:shell流程控制

          本文链接:https://www.haomeiwen.com/subject/ufnzvqtx.html