Shell 脚本编程(二) —— 条件判断 (test命令) + 多路分支语句(if 、case)
创始人
2024-01-29 07:57:22

test 命令可以用于判断文件类型以及值的比较,test 判断条件为真,返回 0;条件为假,返回 1。


        目录

一、条件判断

(1) 整数判断

(2) 字符串判断

(3) 文件判断

二、if 语句

1、语法结构

2、实际运用

三、case语句


一、条件判断

(1) 整数判断

整数判断用到的运算符如下:

运算符含义
-eq等于(equal)
-gt大于(greater than)
-lt小于(less than)
-ge大于等于(greater equal)
-le小于等于(less equal)
-ne不等于(not equal)
# 如果一行有多个命令,命令行通过 ‘;’ 来判断一个命令是否结束
# $? 表示上一条命令的执行结果命令行使用 ; 来分隔不同的命令# test 1 -eq 1 的执行结果为真,返回 0,因此 $? 拿到的值就是 0
[gzx@VM-16-2-centos ~]$ test 1 -eq 1;echo $?        
0
[gzx@VM-16-2-centos ~]$ test 1 -eq -1;echo $?
1
[gzx@VM-16-2-centos ~]$ test 1 -gt -1;echo $?
0

(2) 字符串判断

字符串判断用到的运算符如下:

运算符含义
==等于
!=不等于
-n检查字符串长度是否大于0
-z检查字符串长度是否等于0
#注意:字符串和运算符之间必须要有空格隔开
[gzx@VM-16-2-centos ~]$ test $USER == 'root';echo $?
0
[gzx@VM-16-2-centos ~]$ test $USER == 'roat';echo $?
1

(3) 文件判断

test命令除了可以做值的比较外,还可以检测文件类型

选项含义
-d name    测试name 是否为一个目录
-e name    测试一个文件是否存在
-f name测试name 是否为普通文件
-L name    测试name 是否为符号链接
-r name    测试name 文件是否存在且为可读
-w name    测试name 文件是否存在且为可写
-x name    测试name 文件是否存在且为可执行
-s name    测试name 文件是否存在且其长度不为0
f1 -nt f2  测试文件f1 是否比文件f2 更新
f1 -ot f2  测试文件f1 是否比文件f2 更旧
[gzx@VM-16-2-centos ~]$ test -f file.txt;echo $?
0
[gzx@VM-16-2-centos ~]$ test -d file.txt ;echo $?
1

二、if 语句

1、语法结构

if    表达式1then  执行语句1
else  执行语句2
fi

2、实际运用

可以使用方括号代替 test 命令,但是首尾至少要有一个空格

# 命令行输入
[gzx@VM-16-2-centos ~]$ ./variable.sh file.txt################# 写法一 #################
# variable.sh
if test -d $1then  echo "File $1 exists"  
elseecho "File $1 not exists" 
fi
################# 写法二 #################
if [ -d $1 ] then  echo "File $1 exists"  
elseecho "File $1 not exists" 
fi

 

三、case语句

case 字符串变量 in模式1)执行语句1;;模式2)执行语句2;;            #双分号结束(类似于C的break)*)                    # * 表示其他模式(类似于C的default)执行语句3;;    
esac

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
平遥古城在哪 平遥古城基本现状 城垣恢宏,雉堞连云市井街巷,店肆林立四合院落,青砖瓦屋这里是平遥古城历经千年沧桑而古朴宛然,风姿依旧...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
平遥古城在哪 平遥古城基本现状 城垣恢宏,雉堞连云市井街巷,店肆林立四合院落,青砖瓦屋这里是平遥古城历经千年沧桑而古朴宛然,风姿依旧...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...