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

相关推荐

  • httpd服务——CentOS7

    httpd-2.4 新特性:      (1)MPM支持运行为DSO机制;以模块形式按需加载      (2)event MPM生产环境可用      (3)异步读写机制      (4)支持每个模块…

    Linux干货 2016-10-12
  • Python内置数据结构——集合set

    集合 定义 set翻译为集合 collection翻译为集合类型,是一个较大的概念 set是一个可变的、无序的、不重复的元素组成的集合 set的元素要求必须可以hash,目前已学的不可hash的类型只有list、set 元素不可以索引 set可以迭代 set的初始化 set_1 =set() #表示定义一个空集合set_1 set_1 =set(iterab…

    Linux干货 2017-10-03
  • 马哥教育网络班21期+第6周课程练习

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; [root@localhost ~]# cp /etc/rc.d/rc.sysinit /tmp/ [root@localho…

    Linux干货 2016-08-15
  • Linux basics–part1

    一、计算机的组成及其功能 依据冯·诺依曼体系结构,计算机可分为五大部分,CPU的运算器和控制器、内存、输入、输出。 CPU运算器:计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,亦称算术逻辑部件(ALU)。运算器由算术逻辑单元(ALU)、累加器、状态寄存器、通用寄存…

    Linux干货 2017-07-10
  • 马哥教育21期网络班—第12周课程+练习—-LAMP练习中

    为第4题中的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点; (1)要求使用证书认证,证书中要求使用的国家(CN)、州(HA)、城市(ZZ)和组织(MageEdu); (2)设置部门为Ops,主机名为www2.stuX.com,邮件为admin@stuX.com; [ root@centos CA]# …

    Linux干货 2016-09-26