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

相关推荐

  • lvm的基本使用

    lvm的创建、扩展、迁移以及逻辑卷快照的使用

    2017-12-08
  • N22期-第四周博客作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost jimmy]# cp -r /etc/skel/ /home/tuser1 [root@localhost jimmy]#&nbsp…

    Linux干货 2016-08-30
  • 文本处理三剑客之 Sed

         Sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自…

    2017-08-26
  • 8.5文本处理工具及正则表达式

    一、各种文本工具     文件查看     命令:cat,tac,rev         cat optiong file       &n…

    Linux干货 2016-08-10
  • 在CentOS5,6上破解和加密口令

    在CentOS5,6上:    破解和加密口令:     破解口令方法一: 破解口令方法二:    重启虚拟机进入救援模式: 备注:生产中不用虚拟机时不要挂载光盘;防止光盘引导破解密码 加密口令: 编辑配置文件: /etc/grub.conf

    2017-05-16
  • LINUX-echo命令

    echo命令:回显         语法:echo [-neE][字符串]     说明:echo会将输入的字符串送往标准输出。输出的字符串间         以空白字符隔开,并在最后加上换行号。   &nbs…

    Linux干货 2017-05-22