zoukankan      html  css  js  c++  java
  • Shell脚本学习

    继续Shell的学习。上两篇是关于基本数据类型,基本语法以及运算符相关,这一篇是流程控制相关(if, for, while)

    流程控制

    if else

    流程控制不可为空,如果else没有语句执行,就不要写else

    if:

    if condition
    
    then
    
        command1
    
        command2
    
        ...
    
        commandN
    
    fi

    if else:

    if condition
    
    then
    
        command1
    
        command2
    
        ...
    
        conditionN
    
    else
    
        command
    
    fi

    if else-if else:

    if condition1
    
    then
    
        command1
    
    elif condition2
    
    then
    
        command2
    
    else
    
        commandN
    
    fi

    if else语句经常和test命令结合使用

    num1=$[2*3]
    
    num2=$[1+5]
    
    if test $[num1] -eq $[num2]
    
    then
    
        echo '两个数字相等'
    
    else
    
        echo '两个数字不等'
    
    fi

    for循环

    for循环常用格式

    for var in item1 item2 ... itemN
    do
        command1
        command2
        ...
        commandN
    done

    还可以写成一行的形式

    for var in item1 item2 ... itemN; do command1; command2... done

    in列表可以包含替换、字符串和文件名

    for loop in 1 2 3 4 5 # 顺序输出列表中所有数字
    do
        echo "The value is: $loop"
    done
    for str in 'This is a string' # 顺序输出字符串中所有字符
    do
        echo $str
    done

    while

    condition通常为测试条件。格式如下

    while condition
    do
        command
    done

    let命令:执行一个或多个表达式,变量计算中不需要加$表示变量

    #!/bin/bash
    int=1
    while(( $int<=5))
    do
        echo $int
        let "int++"
    done

    读取键盘输入

    echo '按下 <CTRL-D> 退出'
    echo -n '输入你最喜欢的网站名:'
    while read FILM
    do
        echo "是的!$FILM是一个好网站"
    done

    无限循环

    while:
    do
        command
    done

    或者

    while true
    do
        command
    done

    或者

    for (( ; ; ))

    until循环

    until循环执行一系列命令直至条件为true为止

    一般while循环优于until循环

    until condition
    do
        command
    done

    一个实例

    #!/bin/bash
    
    a=0
    
    until [ ! $a -lt 10 ]
    do
        echo $a
        a=`expr $a + 1`
    done

    case

    多选择语句,匹配一个值一个模式

    每个模式名用右括号结束

    一旦模式匹配到其中一个,执行完匹配到的模式的所有命令后不再继续执行其他模式

    如果没有匹配到任何模式,使用星号*捕获这个值,再执行后面的命令

    casein
    模式1)
        command1
        command2
        ...
        commandN
        ;;
    模式2)
        command1
        command2
        ...
        commandN
        ;;
    *)
    command1
    command2
    ...
    commandN
    ;;
    esac # 就是case反过来写

    跳出循环

    break

    continue

    跟其他语言的break continue用法相同

  • 相关阅读:
    Sql之表的连接总结
    sql之独立子查询和相关子查询总结
    canvas 绘点图
    gulp插件
    jquery插件开发模板
    js中substring和substr的用法比较
    phpStudy 2016 更新下载,新版支持php7.0
    phpStudy for Linux (lnmp+lamp一键安装包)
    用 Function.apply() 的参数数组化来提高 JavaScript程序性能
    Js apply() call()使用详解
  • 原文地址:https://www.cnblogs.com/wuhuohanke/p/10153531.html
Copyright © 2011-2022 走看看