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 Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
2月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
21天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
1月前
|
Shell
Shell编程(下)
Shell编程(下)
89 1
|
1月前
|
Shell Linux Windows
Shell编程(上)
Shell编程(上)
40 1
|
1月前
|
Shell Linux 开发工具
|
1月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
66 12
|
2月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
2月前
|
存储 Unix Shell
shell脚本编程基础
【9月更文挑战第4天】
45 12
|
2月前
|
Shell Linux
Shell 编程 编写hello word
Shell 编写hello word
51 5