[9-13]Shell系列5――条件测试和运算符
2015-09-22 00:01
519 查看
本文旨在复习Shell脚本编程中的条件测试和5种基本运算符
知识储备
Bash支持众多运算符,算数、关系、布尔、字符串、文件测试运算符
而这些运算符中打印结果为0或1的,即结果为布尔型的运算都可以作为条件测试Expression
原生Bash不支持简单的数学运算,只能通过别的方式得到 参考Shell系列6―取算数运算数值
什么是条件测试?
● 条件测试,即对于给定的某种条件或某几种条件判断真假,并给出返回值
● 若测试条件为真,则返回一个0值;如果测试条件为假,将返回一个非0整数值。
● 依据返回值,shell脚本可有选择地执行某些片段,最常见的是If的条件表达式、while的循环条件等
● 测试命令可文件测试、整数测试、字符串测试等,本质是对不同运算符运算结果真假判断,即Expression
● 测试命令1.2.3基本效果相同,但是[[ ]]是关键字,其他是built内建命令
● 命令 和 关键字的差别有多大呢?
如果是命令,它把参数作为比较表达式或文件测试,并且根据比较结果,返回一个退出码。那样比如 ">" "<" 就被 shell 解释为重定向符号了。关键字却不这样。关键字把整个表达式看作一个单独的元素,并且返回一个退出码。[[]]结构比[]更灵活,是一个扩展的test命令。
算数运算符
注意点: <1>注意:Bash原生不支持算术运算的,需要使用别的办法来获取算数运算值 参考shell系列6 <2>输出结果可以是数值,也可以是0/1这样的布尔型,因此也可以作为条件测试的 Expression <3>如果是做条件测试,那么需要以这样的形式来写[ Experssion ] 左右两侧有空格!
关系运算符
关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
输出结果是布尔型,因此可以作为条件测试的 Expression
布尔运算符
布尔运算符运算结果本来就是布尔型,显然可以作为条件测试的 Expression
字符串运算符
字符串运算符能比较string、是否为空等,结果也是布尔型,也可做条件测试 Expression
补充字符串其实也是可以比较大小,本质是对应ASCII数值大小的比较,用法如下
文件测试运算符
文件测试运算符用于检测 Unix 文件的各种属性。结果为布尔型,也可做条件测试 Expression
本文出自 “蓝色仓库” 博客,请务必保留此出处http://bluebox.blog.51cto.com/8852456/1696936
知识储备
Bash支持众多运算符,算数、关系、布尔、字符串、文件测试运算符
而这些运算符中打印结果为0或1的,即结果为布尔型的运算都可以作为条件测试Expression
原生Bash不支持简单的数学运算,只能通过别的方式得到 参考Shell系列6―取算数运算数值
什么是条件测试?
● 条件测试,即对于给定的某种条件或某几种条件判断真假,并给出返回值
● 若测试条件为真,则返回一个0值;如果测试条件为假,将返回一个非0整数值。
● 依据返回值,shell脚本可有选择地执行某些片段,最常见的是If的条件表达式、while的循环条件等
● 测试命令可文件测试、整数测试、字符串测试等,本质是对不同运算符运算结果真假判断,即Expression
● 测试命令1.2.3基本效果相同,但是[[ ]]是关键字,其他是built内建命令
● 命令 和 关键字的差别有多大呢?
如果是命令,它把参数作为比较表达式或文件测试,并且根据比较结果,返回一个退出码。那样比如 ">" "<" 就被 shell 解释为重定向符号了。关键字却不这样。关键字把整个表达式看作一个单独的元素,并且返回一个退出码。[[]]结构比[]更灵活,是一个扩展的test命令。
算数运算符
注意点: <1>注意:Bash原生不支持算术运算的,需要使用别的办法来获取算数运算值 参考shell系列6 <2>输出结果可以是数值,也可以是0/1这样的布尔型,因此也可以作为条件测试的 Expression <3>如果是做条件测试,那么需要以这样的形式来写[ Experssion ] 左右两侧有空格!
关系运算符
关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
输出结果是布尔型,因此可以作为条件测试的 Expression
布尔运算符
布尔运算符运算结果本来就是布尔型,显然可以作为条件测试的 Expression
字符串运算符
字符串运算符能比较string、是否为空等,结果也是布尔型,也可做条件测试 Expression
补充字符串其实也是可以比较大小,本质是对应ASCII数值大小的比较,用法如下
1 2 3 4 5 6 7 8 9 10 | #!/bin/bash # "A" > "B":是否大于; -->这里直接用的字符串A # "A" < "B":是否小于; -->还可以使用$Var_Name[变量中存放字符串] # 字符串比较大小 应该使用[[ Expression ]] if [[ "A" > "B" ]];then echo "yes" else echo "no" fi |
文件测试运算符
文件测试运算符用于检测 Unix 文件的各种属性。结果为布尔型,也可做条件测试 Expression
本文出自 “蓝色仓库” 博客,请务必保留此出处http://bluebox.blog.51cto.com/8852456/1696936
相关文章推荐
- 使用shell统计字符串出现的次数,并从大到小进行排序显示
- Linux下QT中执行shell命令
- 单行bash、shell、perl命令
- BASH_SUBSHELL 变量不生效的情况
- Shell 调试
- shell中条件判断if中的-a到-z的意思
- bash编程:Shell练习题
- Shell常用
- shell test命令用法
- 使用Jenkins+Calabash+Cocoapods搭建iOS持续集成环境
- [9-13]Shell系列4――循环结构for、while、until及跳出循环
- 9-13 shell编程练习
- shell的详细介绍和编程(下)
- [9-13]Shell系列3――分支结构if与case语句
- Bash中的字符串变量扩展
- [bash]正则表达式、BRE模式
- 【一天一个shell命令】好管家-历史信息-history
- [9-13]Shell系列2――变量基础
- sed awk shell传参问题
- shell的详细介绍和编程(中)