bash中的算术运算
        +, -, *, /, %, **

        实现算术运算:
            (1) let var=算术表达式
            (2) var=$[算术表达式]
            (3) var=$((算术表达式))
            (4) var=$(expr arg1 arg2 arg3 ...)

            乘法符号有些场景中需要转义;

            bash有内建的随机数生成器:$RANDOM

        增强型赋值:

            +=, -=, *=, /=, %=,++,--


条件测试:
        判断某需求是否满足,需要由测试机制来实现;

        Note: 专用的测试表达式需要由测试命令辅助完成测试过程;

        测试命令:
            test EXPRESSION
            [ EXPRESSION ]
            ` EXPRESSION `

            Note: EXPRESSION前后必须有空白字符;

        bash的测试类型:
         数值测试:

                -gt: 是否大于;
                -ge: 是否大于等于;
                -eq: 是否等于;
                -ne: 是否不等于;
                -lt: 是否小于;
                -le: 是否小于等于;
         字符串测试:
                ==:是否等于;
                >: 是否大于;
                <: 是否小于;
                !=: 是否不等于;
                =~: 左侧字符串是否能够被右侧的PATTERN所匹配;
                    Note: 此表达式一般用于[[  ]]中;
                -z "STRING":测试字符串是否为空,空则为真,不空则为假;
                -n "STRING":测试字符串是否不空,不空则为真,空则为假;

                Note:用于字符串比较时的用到的操作数都应该使用引号;

      文件测试:
            存在性测试
                -a FILE
                -e FILE: 文件存在性测试,存在为真,否则为假;
            存在性及类别测试
                -b FILE:是否存在且为块设备文件;
                -c FILE:是否存在且为字符设备文件;
                -d FILE:是否存在且为目录文件;
                -f FILE:是否存在且为普通文件;
                -h FILE 或 -L FILE:存在且为符号链接文件;
                -p FILE:是否存在且为命名管道文件;
                -S FILE:是否存在且为套接字文件;
            文件权限测试:
                -r FILE:是否存在且可读
                -w FILE: 是否存在且可写
                -x FILE: 是否存在且可执行
            文件特殊权限测试:
                -g FILE:是否存在且拥有sgid权限;
                -u FILE:是否存在且拥有suid权限;
                -k FILE:是否存在且拥有sticky权限;
            文件大小测试
                -s FILE: 是否存且非空;
            文件是否打开:
                -t fd: fd表示文件描述符是否已经打开且与某终端相关


                -N FILE:文件自动上一次被读取之后是否被修改过;
                -O FILE:当前有效用户是否为文件属主;
                -G FILE:当前有效用户是否为文件属组;

            双目测试:
                FILE1 -ef FILE2: FILE1与FILE2是否指向同一个设备上的相同inode

                FILE1 -nt FILE2: FILE1是否新于FILE2;
                FILE1 -ot FILE2: FILE1是否旧于FILE2;

    bash自定义退出状态码
        exit [n]:自定义退出状态码;
            注意:脚本中一旦遇到exit命令,脚本会立即终止;终止退出状态取决于exit命令后面的数字;

        注意:如果未给脚本指定退出状态码,整个脚本的退出状态码取决于脚本中执行的最后一条命令的状态码;