一、if、case、for语句用法

    1.for语句用法

        for 变量 in 列表;do

        语句1

        语句2

        …

        done

     注:if语句必须有退出条件

  2.单分支if语句:

        if 条件;then

        语句1

        语句2

        fi

  3.双分支if语句:

        if 条件;then
        语句1
        语句2
        …
        else
        语句1
        语句2
        …
        fi

  4.bash条件判断之多分支if语句:

    语法格式:
    if 条件1;then
        语句1
        语句2
        …
    elif 条件2;then
        语句1
        语句2
      …
    elif 条件3;then
        语句1
        语句2
        …
    else
        语句1
        语句2
        …
    fi

二、bash 变量类型

  1.本地变量:只对当前shell进程有效,对其子shell及其他shell都无效

  2.局部变量:local VAR_NAME=Value 只对代码段有效,不包含当前shell所有位置

  3.环境变量:export VAR_NAME=Value,对当前shell及其子shell有效

  4.位置变量:$1..4:对应参数位置引用

  5.特殊变量:

        $?:用于保存刚刚执行命令的执行状态返回值

        $@,$*:所有位置参数;

        $#:位置参数的个数;

        shift:实现位置参数轮替

三、bash变量相关命令

  1.查看环境变量:printenv、export、

  2.查看变量:set

  3.声明变量:declare

  4.变量引用:${VAR_NAME},大多数时候{}可以省略

四、bash脚本之条件测试

  1.整数测试

        大于:-gt

        小于:-lt

        等于:-eq

        大等:-ge(大于等于,下同)

        小等:-le

        不等:-ne

  2.字符测试

        大于:>

        小于:<

        等于:==

        =~:判断左边字符是否与右边模式匹配  [[ "Shell" =~ ell$ ]]

        -z $STRING:为空则为真,不空则为假

        -n $STRING:为空则为假,不空则为真

  3.组合条件测试

        -a:与

        -o:或

       !:非

  4.命令组合测试

        &&:与;想要运行第二个条件,第一个条件必须为真

        ||:或;想要运行第二个条件,第一个条件必须为假

        !:非

五、bash测试之文件测试

    -f:测试其是否为普通文件,

    -d:测试其是否为目录文件

    -e:测试文件是否存在;存在为真,不存在为假

    -r:测试文件对当前用户是否可读

    -w:测试文件对当前用户是否可写

    -x:测试文件对当前用户是否可执行

    -s:测试文件大小是否不空,不空这真,空则假

    -l:测试文件是否为符号链接文件

        例:如果/tmp/test10不存在,就创建之;

        if [ !-e /tmp/test10 ];then
        mkdir /tmp/test10
        fi

六、练习

  1:写一个脚本,实现如下功能:如果用户存在,就说明其存在

        #!/bin/bash
        #
        UserName=user1
        if id $UserName &> /dev/null;then
             echo "$UserName exists."
        fi

  2:写一个脚本,实现如下功能:如果设备/dev/sda3已经挂载,就显示其挂载点

        #!/bin/bash
        #
        Device=/dev/sda1
        if grep "$Device" /etc/mtab &> /dev/null;then
              grep "$Device" /etc/mtab | cut -d' ' -f2
        fi