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

相关推荐

  • keepalived单主模型和nginx双主模型

    主程序:keepalived 主配置文件:/etc/keepalived/keepalived.conf 单主模型ipvs: global_defs { notification_email { root@localhost } notification_email_from keepalived@localhost smtp_server 127.0.0.…

    Linux干货 2017-08-08
  • bash脚本进阶(续)

     1、打印99乘法表 [root@ _212_ ~/bin/for_script]# cat 99_changfa.sh  #!/bin/bash line=1 for i in `seq 1 9`;     …

    Linux干货 2016-08-21
  • Linux 之LVM

    一 LVM 简介:     LVM是 Logical Volume Manager(逻辑卷管理)的简写,LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。LVM的工作原理其…

    Linux干货 2016-03-01
  • VMware虚拟机设置网络(包含简单安装)

    1.下载VMware虚拟机 2.创建一个虚拟机,选择下载好的linux系统,我这里选择的是CentOS版本,之后一直按着步骤设置一般都选择默认就好                               &…

    2017-09-02
  • N24_小天 学习宣言

    每周安排时间看视频,每天安排时间学习并跟进课程,认真记笔记,认真写博客。多动手操作,坚持不断。学习思维,提升自己解决问题的思路。多动手,多实践。

    Linux干货 2016-10-27
  • 函数定义、使用

        1、函数介绍         函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程。           &nb…

    Linux干货 2016-08-22