[shell基础]——整数比较;字符串比较;文件测试;逻辑测试符
整数比较
方法一:[ ] 或 [[ ]]
(1) 此方法需要使用整数比较运算符。[标注:equal 等于 greater 大于 less-then 小于]

(2) 使用时一定要注意前后一定要有的空格:[ num1 -eq num2 ] [[ num1 -eq num2 ]]
方法二:(( ))
(1) 此方法使用的是类似数学运算比较的运算符:== >= <= !=
# a=2;b=3
# [ $a -eq $b ];echo $?
1
# [ $a -lt $b ];echo $?
0
# (($a==$b));echo $?
1
# (($a<=$b));echo $?
0
# (($a!=$b));echo $?
0
# ((10-2==8));echo $?
0
# ((10-2!=8));echo $?
1
字符串比较
方法一:[ ] 或 [[ ]]
(1) 使用的比较运算符是:= !=
(2) 如果要使用通配符,要用[[ ]]
(3) 写的时候一定要注意等号两边都要有空格
# string0="";string1="abc"
===判断字符串是否为空===
# [ -z $string0 ];echo $?
0
# [ -z $string1 ];echo $?
1 # [ $string1 = "abc" ];echo $?
0
# [ $string1 != "abc" ];echo $?
1 # [[ $string1 = ??? ]];echo $?
0
# [[ $string1 = a* ]];echo $?
0
方法二:test
文件测试
文件类型判断:
-e 测试目录或文件是否存在(exist)
-f 测试该文件名是否存在且为文件(file)
-d 测试该文件名是否存在且为目录(directory)
-L 测试该文件名是否存在且为链接文件(Link)
-b 测试该文件名是否存在且为块设备(block)
-c 测试该文件名是否存在且为字符设备
-p 测试该文件名是否存在且为管道文件
文件权限判断:
-s 测试文件是否存在且内容非空(应当注意有1个空格也是非空)
-r 测试当前用户是否有可读权限
-w 测试当前用户是否有可写权限
-x 测试当前用户是否有可执行权限
-u 测试文件名是否存在并且具有SUID属性
-g 测试文件名是否存在并且具有SGID属性
-k 测试文件名是否存在并且具有Sticky属性
逻辑操作符
-a 逻辑与:操作符两边均为真,结果为真,否则为假。
-o 逻辑或:操作符两边一边为真,结果为真,否则为假。
! 逻辑否:条件为假,结果为真.
测试判断常配合if/else语句使用,看看写法:
if [ -w file1 -a -w file2 ]
if [ $? -eq 0 ]
then
echo "file1 file2 have write permisson"
else
echo "file1 file2 have not w permisson"
fi if [ -d /tmp/dir1 ]
then
echo "the dir1 is existed"
else
echo "the dir1 is not existed"
mkdir /tmp/dir1
fi
[shell基础]——整数比较;字符串比较;文件测试;逻辑测试符的更多相关文章
- shell中数字、字符串、文件比较测试
1.逻辑运算符:与&& 或|| 非! &&:双目操作符:与运算中:如果第一个数为假,结果一定为假 ==> 短路操作符 ||:双目操作符:或运算 ...
- Shell基础(四):字符串截取及切割、字符串初值的处理、基使用Shell数组、expect预期交互、使用正则表达式
一.字符串截取及切割 目标: 使用Shell完成各种Linux运维任务时,一旦涉及到判断.条件测试等相关操作时,往往需要对相关的命令输出进行过滤,提取出符合要求的字符串. 本案例要求熟悉字符串的常见处 ...
- shell命令之根据字符串查询文件对应行记录
显示xxx字符串对应的行数,并向前打印3行,向后打印2行,查找对应文件为filename.txt 命令:grep -n 'xxx' -A3 -B2 --color=auto filename.txt ...
- shell之算数运算符、逻辑运算符、关系运算符、布尔运算符、文件测试运算符
注意事项: (1)bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用: (2)完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Es ...
- 004-Shell 基本运算符、算术运算符、关系运算符、布尔运算符、辑运算符、字符串运算符、文件测试运算符
一.概述 Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 二.算术运算符 原生bash不支持简单的数学运算,但是可以通过其他命 ...
- shell基础教程
shell基础教程 一.shell基础知识 1.shell是什么? Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言. Shell ...
- (转)shell脚本之文件测试操作符及整数比较符
shell脚本之文件测试操作符及整数比较符 原文:http://www.cnblogs.com/Steward-Xu/p/6722592.html 一.文件测试操作符: 在书写测试表达式是,可以使用一 ...
- shell运算符之 关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符
shell运算符有很多,关系运算符,算数运算符,布尔运算符,字符串运算符和文件测试运算符 1,算术运算符 原声bash 不支持简单的算术运算,可以使用expr 工具 两点注意: 表达式和运算符之间要有 ...
- shell脚本之文件测试操作符及整数比较符
一.文件测试操作符: 在书写测试表达式是,可以使用一下的文件测试操作符. 更多的参数可以help test或者man bash 二.字符串测试操作符: 字符串测试操作符的作用:比较两个字符串是否相同. ...
随机推荐
- select修改原生样式组件
<div class="select"> <select class="" name=""> <option ...
- std::cout彩色输出
Mac OS效果 Windows 效果 想写这个东西其实是因为最近要写个命令行的工具,但是有个问题是什么呢?就是传统的那个黑漆漆的窗口看起来很蛋疼.并且完全看不到重点,于是就想起 来这么一个东西.相对 ...
- [视频]MAC OS 技巧之如何更新及重装MAC系统
mac os是当今最好用的桌面操作系统,但再好的系统也有新版本发布的一天,或者被极客的你尝试各种设置而配置混乱了,这时我们就要进行系统更新或者重装了. 系统更新 Mac OS有新版本推出时,会自动在A ...
- Vue.js学习 Item5 -- 计算属性computed与$watch
在模板中绑定表达式是非常便利的,但是它们实际上只用于简单的操作.模板是为了描述视图的结构.在模板中放入太多的逻辑会让模板过重且难以维护.这就是为什么 Vue.js 将绑定表达式限制为一个表达式.如果需 ...
- Web Service无法加载协定为“ServiceReference1.xxxxxx”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分
Web Service 无法加载协定为“ServiceReference1.xxxxxx”的终结点配置部分,因为找到了该协定的多个终结点配置.请按名称指示首选的终结点配置部分 原因是在web.co ...
- SDUST 软件工程2016-作业4-A 百钱买鸡问题
解决百钱买鸡问题原本并不困难,关键的是这道题对其进行了升级,测试数据太大,传统的解法,像三重循环,二重循环都会导致超时. 这道题正确的解法应该是结合数学方程进行化简,将其转化为1层循环: x+y+z= ...
- C#代码利用MongoDB中Group聚合函数查询
例子: public static void getUserRFM(DateTime beginTime, DateTime endTime) { MongoDat ...
- JAVA中ArrayList用法
JAVA中ArrayList用法 2011-07-20 15:02:03| 分类: 计算机专业 | 标签:java arraylist用法 |举报|字号 订阅 Java学习过程中做题时 ...
- LinearRegression
利用python实现简单的线性回归对房屋面积进行预测 # -*-coding:utf-8 -*- ''' Created on 2016年12月15日 @author: lpworkdstudy '' ...
- 20.python的文件处理
我们日常在处理文件的时候一般都遵循这样的逻辑:打开文件,操作文件,保存关闭文件. 但在python中,又分为以下几步:创建文件对象,对文件对象进行操作(读入,写入之类的),关闭文件. 由于文件操作在p ...