栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

shell-条件测试

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

shell-条件测试

条件测试

条件测试: test, [

整数变量表达式文件表达式字符串变量表达式 逻辑运算符举例参考

条件测试: test, [

[ : 是一个命令的名字,传给[ 的参数必须用空格隔开。如果为真,则该命令的退出状态为0。如果测试结果为假,则命令的退出状态为1。

$ VAR=2
$ [ "$VAR" -gt 3 ]
$ echo $?
1

注意:如果$VAR变量没有定义,则被shell展开为空,造成表达式格式错误。
作为一种好的shell编程习惯,应该总是把变量取值放在双引号之中

整数变量表达式
格式含义
[ ARG1 OP ARG2 ]ARG1和ARG2应该时整数或者取值为整数的变量, OP含义见下表
OP含义
-eq比较两个参数是否相等(例如,if [ 2 –eq 5 ])
-ne比较两个参数是否不相等
-lt参数1是否小于参数2
-le参数1是否小于等于参数2
-gt参数1是否大于参数2
-ge参数1是否大于等于参数2

注意:比较的是字符串的值,不是数字

文件表达式
格式含义
[ -f FILE ]文件FILE存在,则为真(例如,if [ -f “filename” ])
[ -d DIR ]DIR目录存在, 则为真
[ -s FILE ]文件存在且非空
[ -r FILE ]文件存在且可读
[ -w FILE ]文件存在且可写
[ -x FILE ]文件存在且可执行
字符串变量表达式
格式含义
[ -n $string ]string 长度非零,则为真
[ -z $string ]string 长度为零,则为真
[ $string1 = $string2 ]两个字符串相同则为真,=两边必须有空格
[ $string1 != $string2 ]两个字符串不同则为真
逻辑运算符

表达式之间还可以做成“与”,“或”和“非”逻辑运算。和C语言类似,具有Short-circuit特性。EXPRn可以是上述任意一种表达式:

格式含义
[ ! EXPR1]!逻辑反
[ EXPR1 -a EXPR2 ]-a 逻辑与和&&等价
[ EXPR1 -o EXPR2 ]-o 逻辑或和||等价
举例

有目录shell的存在,且VAR=abc。符合条件返回真

$ mkdir shell
$ VAR=abc
$ [ -d shell -a "$VAR" = 'abc' ]  
$ echo $?
0

有目录shell的存在,但VAR不等abcde。不符合条件返回假

$ test -d shell && "$VAR" = 'abcde'
$ echo $?
1
参考

Linux C编程一站式学习

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/751846.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号