赞
踩
介绍:expr是evaluate expressions的缩写,翻译为求值表达式,expr是一个功能强大的命令,除了可以实现整数运算,还可以结合一些选项进行字符串处理,例如计算字符串的长度、字符串的比较、字符串匹配、字符串提取等,这个后续会讲解。
expr语法
expr 算术运算符表达式
例如 expr 1 + 1
演示:
注意:数字和符号之前要有空格
获取计算结果赋值给变量的语法
result=`expr 算术运算符表达式`
常用的算术运算符
注意:
示例:
英文单词类的比较运算符,要使用方括号[]的方式比较,只能比较整数,或者纯整数形式的字符串
注意:方括号两侧要有空格
示例:这里比较简单,只演示一个
非单词类的运算符,要使用两个小括号(())的方式比较,只能比较整数,或者纯整数形式的字符串
示例:这里比较简单,只演示一个
注意:(())的方式不能使用单 = 进行判断相等,只能使用双等于 ==
使用[]或者[[]]的方式,可以比较字符串,还可以比较纯字符串的整数和小数
注意:[[]]的方式比较字符串没有<= ,可以通过 [ $a < $b && $a==$b ]
通常都是在if条件句中来配合使用
示例
推荐使用双方括号[[]]的方式来进行比较运算,双方括号可以比较整数、小数、字符串,并且可以转义
介绍
注意
示例
介绍
注意:
&&和|| 必须在[[]]或者(())中才生效
!运算符可以在[] ,[[]]中使用,不能在(())中
示例
介绍:常用于检查linux文件的各种属性
例如:文件是否存在、是否可读可写可执行,是否是目录,是否是普通文件等等
文件类型介绍
-:普通文件
d:目录
l:链接文件
b:块设备文件
c:字符设备文件
p:管道文件
块设备文件:比如计算机硬盘/dev/sda
字符设备文件:比如计算机的usb文件/dev/usb
属性检测参数如下:
其他检测符:
-L:检测文件是否存在并且是一个链接符号
-S:检测文件是否socket
这里我们只介绍常用的几个
-d、-f、-r、-w、-x、-s、-e
示例,有两个文件demo8.sh,demo9.sh
#!/bin/bash file1="/opt/study/demo8.sh" file1="/opt/study/demo9.sh" if [[ -d $file1 ]] then echo "${file1}是目录" else echo "${file1}不是目录" fi if [[ -r $file1 ]] then echo "${file1}可读" else echo "${file1}不可读" fi if [[ -w $file1 ]] then echo "${file1}可写" else echo "${file1}不可写" fi if [[ -x $file1 ]] then echo "${file1}可执行" else echo "${file1}不可执行" fi if [[ -f $file1 ]] then echo "${file1}是普通文件" else echo "${file1}不是普通文件" fi if [[ -e $file1 ]] then echo "${file1}存在" else echo "${file1}不存在" fi if [[ -s $file1 ]] then echo "${file1}为空" else echo "${file1}不为空" fi if [[ $file1 -nt $file2 ]] then echo "${file1}比${file2}新" else echo "${file1}不比${file2}新" fi if [[ $file1 -ot $file2 ]] then echo "${file1}比${file2}旧" else echo "${file1}不比${file2}旧" fi
运行结果:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。