Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >shell 中的if逻辑判断

shell 中的if逻辑判断

作者头像
老七Linux
发布于 2018-05-09 08:52:35
发布于 2018-05-09 08:52:35
2.2K00
代码可运行
举报
运行总次数:0
代码可运行

if判断语句,在shell脚本中几乎是每个脚本都会涵盖判断系列的内容,这时候if就会上场。

if 的基础格式:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
格式1if 条件 ; then 语句; fi

格式2if 条件; then 语句; else 语句; fi

格式3if; then … ;elif …; then …; else; fi

----------------------------------

可以使用 && || 结合多个条件

if [ $a -gt 5 ] && [ $a -lt 10 ]; then

if [ $b -gt 5 ] || [ $b -lt 3 ]; then
一、算术比较运算符:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
num1 -eq num2 等于   [ 3 -eq $mynum ]
num1 -ne num2 不等于   [ 3 -ne $mynum ]
num1 -lt num2 小于    [ 3 -lt $mynum ]
num1 -le num2 小于或等于  [ 3 -le $mynum ]
num1 -gt num2 大于    [ 3 -gt $mynum ]
num1 -ge num2 大于或等于 [ 3 -ge $mynum ]
二、文件的判断:
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
-e filename 如果 filename存在,则为真 [ -e /var/log/syslog ]

-d filename 如果 filename为目录,则为真 [ -d /tmp/mydir ]

-f filename 如果 filename为常规文件,则为真 [ -f /usr/bin/grep ]

-L filename 如果 filename为符号链接,则为真 [ -L /usr/bin/grep ]

-r filename 如果 filename可读,则为真 [ -r /var/log/syslog ]

-w filename 如果 filename可写,则为真 [ -w /var/mytmp.txt ]

-x filename 如果 filename可执行,则为真 [ -L /usr/bin/grep ]
三、if 判断的一些特殊用法
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if [ -z "$a" ]  这个表示当变量a的值为空时会怎么样(养成好习惯,一定要对判断的值添加 “双引号”;如果是"文件"可以省略)

if [ -n "$a" ] 表示当变量a的值不为空

if grep -q '123' 1.txt; then   表示如果1.txt中含有'123'的行时会怎么样

if [ ! -e file ]; then 表示文件不存在时会怎么样

if (($a<1)); then …等同于 if [ $a -lt 1 ]; then… 

[ ] 中不能使用<,>,==,!=,>=,<=这样的符号


# if grep -wq 'zhdy' /etc/passwd; then echo "zhdy already exist"; fi
zhdy already exist
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/09/13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Linux 之 shell 比较运算符
算术运算符  + - * / % 表示加减乘除和取余运算 += -= *= /= 同 C 语言中的含义
阳光岛主
2019/02/19
1.7K0
Linux Shell 基本语法
该命令的功能是将给出的文件或目录拷贝到另一文件或目录中,功能十分强大。
似水的流年
2018/01/14
2K0
shell文件比较运算符
+ - * / % 表示加减乘除和取余运算 += -= *= /= 同 C 语言中的含义
yaohong
2019/09/11
1.3K0
shell 编程记录
1 文件比较运算符 -e filename 如果 filename存在,则为真 [ -e /var/log/syslog ] -d filename 如果 filename为目录,则为真 [ -d /tmp/mydir ] -f filename 如果 filename为常规文件,则为真 [ -f /usr/bin/grep ] -L filename 如果 filename为符号链接,则为真 [ -L /usr/bin/grep ] -r filename 如果 filename可读,则为真 [ -r /var/log/syslog ] -w filename 如果 filename可写,则为真 [ -w /var/mytmp.txt ] -x filename 如果 filename可执行,则为真 [ -L /usr/bin/grep ] filename1-nt filename2 如果 filename1比 filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ] filename1-ot filename2 如果 filename1比 filename2旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
2019/05/25
6360
原 shell脚本中的逻辑判断,文件目录属
shell脚本中的逻辑判断: 逻辑判断表达式:if [ $a -gt $b ]; if [ $a -lt 5 ]; if [ $b -eq 10 ]等 -gt (>); -lt(<); -ge(>=)
叶瑾
2018/06/08
1.6K0
shell脚本中各种括号的区别以及用法
最近学到了shell脚本编程,觉得脚本中的不同括号有不同的用处,以及有些括号的格式也有特殊要求,下面我就总结一下各种括号的用法。
用户4877748
2020/07/22
3.9K0
shell逻辑判断、文件属性判断、if特殊用法、case判断
if 条件1;then commond1;elif 条件2;then commond2;else commond3;fi
阿dai学长
2019/04/03
2K0
linux学习第六十四篇:Shell脚本中的逻辑判断,文件目录属性判断, if特殊用法,case判断
Shell脚本中的逻辑判断 格式1:if 条件 ; then 语句; fi 格式2:if 条件; then 语句; else 语句; fi 格式3:if …; then … ;elif …; then …; else …; fi 逻辑判断表达式:if [ a−gta -gt b ]; if [ a−lt5];if[a -lt 5 ]; if [ b -eq 10 ]等 -gt (>); -lt(<); -ge(>=); -le(<=); -eq(==); -ne(!=) 注
用户1215343
2018/03/29
1.4K0
Linux中if-else条件判断语句
其中elif和else不是必须的,如果只需判断一次,那么if...fi即可。值得注意的是if后面中括号[]中的语句[的后面和]的前面必须要有空格。
生信编程日常
2020/04/01
3.5K0
Linux云计算运维之Shell
printf ‘输出类型输出格式’ 输出内容 输出类型 : %ns :输出字符串。n是数字指代输出几个字符 %ni :输出整数。n是数字指代输出几个数字 %m.nf : 输出浮点数。m和n是数字,指代输出的整数位数和小数位数。如%8.2f 代表共输出8位数,其中2位是小数,6位是整数。 输出格式 : \a : 输出警告声音 \b : 输出退格键,也就是Backspace键 \f : 清楚屏幕 \n : 换行
海仔
2020/06/08
5.9K0
Shell编程基础篇-下
惨绿少年
2017/12/27
1.7K0
Shell编程基础篇-下
20.5 shell脚本中的逻辑判断
shell脚本中的逻辑判断 格式1:if 条件 ; then 语句; fi 格式2:if 条件; then 语句; else 语句; fi 格式3:if …; then … ;elif …; then …; else …; fi 逻辑判断表达式:if [ a -gt b ]; if [ a -lt 5 ]; if [ b -eq 10 ]等 -gt (>); -lt(<); -ge(>=); -le(<=);-eq(==); -ne(!=) 注意到处都是空格 可以使用 && || 结合多个条件 if [ $
运维小白
2022/01/06
2.2K0
Shell流程控制
Shell基础入门 linux系统是如何操作计算机硬件CPU,内存,磁盘,显示器等?使用linux的内核操作计算机的硬件Shell介绍... Shell计算命令 Shell计算命令:expr命令
乐心湖
2021/01/18
2.6K0
Shell流程控制
Shell笔记2:数值运算条件测试if选择结构
1.数值运算 整数运算 a.基本运算类别 四则运算加减乘除:num1 +-*/ num2 取余数运算:num1 % num2 b.expr运算工具 格式 expr num1 运算符 num2 注意空格 乘法运算要采用\* 转义,避免被作为Shell通配符 示例 expr 43 + 21 expr $X \* $Y c.$[]算式替换 使用$[]或者$(())表达式 格式$[num1 运算符 num2] 乘法无需转义,引用变量可以省略$,计算结果可以替换表达式本身,用echo输出 echo $[X+21] echo $((X-21)),$((X*21)) d.变量的自增自减等操作 使用$[]替换或者let命令完成,结合echo查看结果 echo $[i+=1] echo $[i-=8] let i++; echo $i let i-=7;echo $i
陪你听风
2021/03/31
4820
shell基础学习总结
(一)shell介绍 (二)shell语法 (三)变量 (四)输入输出 (五)分支语句
全栈程序员站长
2022/09/22
4250
shell基础学习总结
Shell脚本编程
脚本中一旦遇到exit命令,脚本会立即终止,终止退出状态取决于exit命令后面的数字
星陨1357
2023/03/14
2.3K0
Shell脚本编程
Shell编程-逻辑判断
作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
运维小路
2024/11/01
1210
Shell编程-逻辑判断
Shell 编程语法基础
在Shell脚本中,定义变量直接赋值即可,使用变量时需要在变量名前加美元符号$,注意定义变量时变量名和等号之间不能有空格。 变量名的命名必须遵循以下规则:
嵌入式视觉
2022/09/05
2.4K0
Shell 编程语法基础
shell学习五常用命令echo printf test
Shell 的 echo 指令与 PHP 的 echo 指令类似,都是用于字符串的输出。命令格式:
用户2603479
2018/08/15
4750
Linux的Shell编程语法集锦
【GiantPandaCV导语】相信在linux服务器环境下完成算法开发和部署的同学,都有使用shell来实现部分自动化功能的经历,本文就来给大家分享我总结的一些shell语法知识,希望对大家有帮助。
BBuf
2021/08/19
1.7K0
相关推荐
Linux 之 shell 比较运算符
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验