Shell编程之条件语句(一)

简介: Shell编程之条件语句(一)

一、条件判断的两种方式


1.1 test

test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。


test 命令期望在命令行中找到一个参数,当 shell 没有为变量赋值时,则将该变量视为空。这意味着在处理脚本时,一旦脚本寻找的参数不存在,则 test 将报告该错误。


test [操作符选项] 表达式




1.2 中括号

[ 操作符选项 表达式 ]


[ -f /opt/abc.txt ]


注意[]空格,否则会失败


测试是否成功使用返回值

boole

true(真)

false(假)

使用场景

返回码

0

非0

Linux系统 shell脚本


1

0

Java C


1.3 文件测试操作符

-e

测试指定的文件或者目录是否存在

-f

测试指定对象是否为文件;指定的文件是否存在

-d

测试指定的对象是否为目录;指定的目录是否存在

-r

测试指定用户是否有读权限

-w

测试当前用户是否有写权限

-x

测试当前用户是否有执行权限

-L

测试文件是否为符号链接(软链接文件)


二、整数值比较


操作符

-eq

等于

==

-gt

大于

\>

-lt

小于

\<

-ge

大于等于


-le

小于等于


-ne

不等于

!=


[ 整数变量1 操作符 整数变量2]


一般是字符表达式,很少用符号表达式,会有问题



三、字符串比较


[ 字符窜1 = 字符窜2 ] 或者 [ 字符窜1 == 字符窜2 ] 判断是否相同


[ 字符窜1 != 字符窜2 ] 判断是否不相同


##################################


[ -z "字符串" ] -z:判断字符串是否为空;或者指定的变量是否为空值


[ -n “字符串” ] -n:检查是否有字符串存在



注:如果测试的字符串是变量,我们一般加上双引号,防止产生歧义


四、逻辑测试


-a         &&         且   前后条件都要成立


-o         ||           或    只需前后条件中一个成立


[ 表达式1 ] && [ 表达式2 ]         等同于         [ 表达式1 -a 表达式2 ]   [[ 表达式1 && 表达式2 ]]


[ 表达式1 ] || [ 表达式2 ]            等同于         [ 表达式1 -o 表达式2 ]   [[ 表达式1 || 表达式2 ]]



五、三元运算符


#Java  c
条件表达式?a:b
当表达式为真时,取a值;当表达式为假时,取b值
#shell
[ 表达式 ] && a || b  等价于if双分支
[ 表达式 ] && a    等价于if单分支
类似if语句
目录
相关文章
|
2月前
|
Unix Linux Shell
【Shell 编程指南 日期命令】Date命令:显示与设置系统时间和日期
【Shell 编程指南 日期命令】Date命令:显示与设置系统时间和日期
57 0
|
2月前
|
Shell C++ 开发者
【Shell 编程指南】Shell运算操作符之$[]详解
【Shell 编程指南】Shell运算操作符之$[]详解
22 0
|
3月前
|
Ubuntu Linux Shell
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
【Linux操作系统】探秘Linux奥秘:shell 编程的解密与实战
73 0
|
6天前
|
监控 关系型数据库 Shell
Shell脚本入门:从基础到实践,轻松掌握Shell编程
Shell脚本入门:从基础到实践,轻松掌握Shell编程
|
8天前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)
|
20天前
|
存储 网络协议 Shell
第十章 Shell编程时常用的系统文件
第十章 Shell编程时常用的系统文件
|
27天前
|
监控 Shell 开发工具
Shell编程
Shell编程
|
27天前
|
Shell
Shell脚本编程基础
Shell脚本编程基础
|
2月前
|
存储 Java Shell
bigdata-04-shell编程基础
bigdata-04-shell编程基础
24 0
|
2月前
|
Shell Linux C++
【Shell 编程设计】 编写自己的清理后台的Shell脚本
【Shell 编程设计】 编写自己的清理后台的Shell脚本
36 1