bash之运算、测试、if语句及for循环语句

 

一、逻辑运算

        布尔运算:真、假

        与运算:

                真 && 真 = 真

                真 && 假 = 假

                假 && 真 = 假

                假 && 假 = 假

        或运算:

                真 || 真 = 真

                真 || 假 = 真

                假 || 真 = 真

                假 || 假 = 假

        非运算:

                非真 = 假

                非假 = 真

二、状态返回值

        echo $?

        成功:则返回0

        失败:则返回1-255,失败不等于假

        自定义:exit [n]

三、算数运算

        1、定义整形变量

            let VAR_NAME=INTEGER_VALUE

            declare -i VAR_NAME=INTEGER_VALUE

            如果没有定义整形变量,字符型数字会被bash执行隐士类型转换参与算数运算

        2、运算方式

            let VAR_NAME=ARITHMATIC_EXPRESSION

            VAR_NAME=$[ ARITHMATIC_EXPRESSION ]

            VAR_NAME=$(( EXPRESSION ))

            VAR_NAME=$( expr EXPRESSION )

        3、算数运算符

            +、-、*、/、%、**、+=、-+、、*=、/=、%=、++

四、比较运算测试

        1、整形比较测试

            -gt:大于

            -lt:小于

            -ge:大于等于

            -le:小于等于

            -eq:等于

            -ne:不等于

        2、字符串比较测试,根据ASCLL码大小比较字符串

            双目运算符:

                >:    

                <:

                >=:

                <=:

                ==:

                !=:

                =~:模式匹配,[[ "$VAR" =~ PATTERN ]]

            单目运算符:

                -n String:是否不空,不空则为真,空则为假

                -z String:是否为空,空则为真,不空则为假

        3、文件比较测试

                -a/-e FILE:存在则为真,否则则为假

                -f FILE:存在且为普通文件则为真,否则为假

                -d FILE:存在且为目录文件则为真,否则为假

                -s FILE:存在且为非空文件则为真,否则为假

                -r FILE:存在且为可读文件则为真,否则为假

                -w FILE:存在且为可写文件则为真,否则为假

                -x FILE:存在且为可执行文件则为真,否则为假

                -L/-h:存在且为符号链接文件则为真,否则为假

                -b FILE:存在且为块设备则为真,否则为假

                -c FILE:存在且为字符设备则为真,否则为假

                -S FILE:存在且为Socket套接字文件则为真,否则为假

                FILE1 -nt FILE2:FILE1的mtime新于FILE2则为真,否则为假

                FILE1 -ot FILE2:FILE1的mtime旧于FILE2则为真,否则为假

五、测试方式

        1、test EXPR

        2、[ EXPR ]

        3、[[ EXPR ]]

        测试比较通常只在同一种类型间进行

六、for循环语句

        说明:遍历有限的元素列表,语句在同一行用;分隔

        语法:

            for VAR_NAME in LIST 

            do

                    循环体

            done

        LIST:列表,中间包括一个或多个元素

        退出条件:遍历结束

七、if条件语句


            单分支if语句:


                if 测试条件;then

                    选择分支

                fi


            双分支if语句:


                if 测试条件;then

                    选择分支1

                else

                    选择分支2

                fi

       

             多分支if语句:


                if 测试条件1;then

                    选择分支1

                elif 测试条件2;then

                    选择分支2

                elif 测试条件2;then

                    选择分支3

                …

                elif 测试条件n;then

                    选择分支n

                else

                    选择分支{n+1}

                fi

        

原创文章,作者:princepar,如若转载,请注明出处:http://www.178linux.com/4780

(1)
princeparprincepar
上一篇 2015-05-25
下一篇 2015-05-27

相关推荐

  • 常见RAID级别原理, Linux中软RAID实现方式详解

    RAID简介     RAID(Redundant Arry of Independent Disks)独立冗余阵列,旧称(Redundant Arry of Inexpensive Disks)廉价冗余阵列,其主要目的是将多个硬盘组成在一起来达到提高I/O、读写、冗余性。 RAID分为硬件RAID和软件RAID &n…

    Linux干货 2016-03-09
  • 关于磁盘管理的例子

    今天来说一个关于磁盘管理的例子,通过这个例子也顺便了解一下此例子涉及到的一些相关命令、文件。 练习:创建一个2G的文件系统,块大小为2048byte, 预留1%可用空间,文件系统ext4,卷标为TEST,要求此分区开机后自动挂载至/test目录,且默认有acl挂载选项 思路:1.在/etc/fstab中定义开机自动挂载信息    &nbs…

    Linux干货 2017-08-19
  • LVS NAT模型演示

    LVS NAT模型演示 这里我们刻意将两个RS的web页面文件,提供为不同的内容(实际应用中,每个RS页面的内容要完全相同) 基本配置 [root@web1 ~]# route add default gw 192.168.110.130  –> web1服务器…

    2016-10-29
  • 挂载

    挂载的相关介绍

    Linux干货 2017-12-10
  • 第一天上课

                      2016.10.11 第一天上课 上课环境安排 电脑IP安排 学生IP地址安排     上课软件安装    虚拟机安装 操作系统发展史    第一代计算机:电子管计算机&nb…

    Linux干货 2016-10-18