Shell中的算术比较、字符串比较与文件测试等
- 4436
- Linux
- 4
- super_dodo
- 2013/12/21
程序中的流程控制是由比较和测试语句来处理的。
逻辑运算符
[ condition ] && action; //如果condition为真,则执行action [ condition ] || action; //如果condition为假,则执行action
算术比较
[ $var -eq 0 ] //当$var等于0时,返回真 [ $var -ne 0 ] //当$var不等于0时,返回真 [ $var1 -ne 0 -a $var2 -gt 2 ] //使用逻辑与 -a [ $var1 -ne 0 -o $var2 -gt 2 ] //使用逻辑或 -o //-gt 大于 //-lt 小于 //-ge 大于或等于 //-le 小于或等于
文件系统相关测试
[ -f $file_var ] //如果给定的变量包含正常的文件路径或文件名,则返回真 [ -x $file_var ] //如果给定的变量包含的文件可执行,则返回真 [ -d $file_var ] //如果给定的变量包含的是目录,则返回真 [ -e $file_var ] //如果给定的变量包含的文件存在,则返回真 [ -c $file_var ] //如果给定的变量包含的是一个字符设备文件的路径,则返回真 [ -b $file_var ] //如果给定的变量包含的是一个块设备文件路径,则返回真 [ -w $file_var ] //如果给定的变量包含的文件可写,则返回真 [ -r $file_var ] //如果给定的变量包含的文件可读。则返回真 [ -L $file_var ] //如果给定的变量包含的是一个符号链接,则返回真
字符串比较
//使用字符串比较时,最好使用双中括号,因为有时候采用单中括号会产生错误,所以最好错开他们
[[ $str1 = $str2 ]] //当str1等于str2时,返回真。也就是说,str1和str2包含的文本是一模一样的。
[[ $str1 == $str2 ]] //这个检查字符串是否相等的另外一种写法
[[ $srt1 != $str2 ]] //如果两个字符串不相同,则返回真
[[ $str1 > $str2 ]] //如果str1的字母序比str2大,则返回真
[[ $str1 < $str2 ]] //如果str1的字母序比str2小,则返回真
[[ -z $str1 ]] //如果str1包含的是空字符串,则返回真
[[ -n $str1 ]] //如果str1包含的是非空字符串,则返回真
//注意:在=前后各有一个空格。如果不加空格则变成了赋值语句,而非比较语句
//使用逻辑运算符 && 和 || 能够很容易的将多个条件组合起来
[/php]
没有失败就无所谓成功,没有遭遇过挫折和失败的人生是不丰富的人生,就像白开水,纯净却没有味道。 ——俞敏洪
相关阅读
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
热门文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
最新文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例