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)
上一篇 2015-05-25 20:53
下一篇 2015-05-27 10:02

相关推荐

  • 第六周学习总结

    写在前面 在互联网+的时代,网络显得越发重要,如果现在你一顿不吃饭可能还没事但是一个小时没网络,估计你都要疯了。那么网络到底是个啥呢?看不见又摸不着。拿着一台电脑怎么和网络建立连接呢?那么下面要讲解的内容或许可以给你解决个大概。 闲聊网络 如果让你修一栋房子你会一层一层的往上修,并且规划好一层用来开商铺,二层用来开超市,上面一层用来干嘛等等,其实网络也是一样…

    2018-01-08
  • 高可用集群基本概念与heartbeat文本配置接口

    一、高可用集群基本概念:     什么是高可用集群:          所谓高可用集群,就是在出现故障时,可以把业务自动转移到其他主机上并让服务正常运行的集群构架     高可用集群的构架层…

    Linux干货 2016-01-13
  • N21—-第一周课程练习题

    1、描述计算机的组成及其功能。 我们现在通常理解为计算机是由硬件系统+软件系统组成的,根据冯·诺依曼体系结构。计算机主要由五大部件组成:      运算器(Datapath): 计算机中执行各种算术和逻辑运算操作的部件      控制器(Control):是整个计算机的中枢神经,…

    Linux干货 2016-07-12
  • M20 – 1- 第三周博客(3):Linux上文本处理三剑客grep

    Grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 1、作用 Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用 权限是…

    Linux干货 2016-08-08
  • 关于touch/>/>>创建同名文件的总结

    一、简介 1、touch     即创建文件或修改文件时间     语法:touch [options] file-list 2、>     创建文件,可直接把内容生成到指定文件,会覆盖源文件中的内容;也可以直接生成一个空白文件。     语法:> file…

    2017-02-18
  • 从Code Review 谈如何做技术

    (这篇文章缘由我的微博,我想多说一些,有些杂乱,想到哪写到哪) 这两天,在微博上表达了一下Code Review的重要性。因为翻看了阿里内部的Review Board上的记录,从上面发现Code Review做得好的是一些比较偏技术的团队,而偏业务的技术团队基本上没有看到Code Review的记录。当然,这并不能说没有记录他们就没有做Code Review…

    Linux干货 2016-08-15