shell脚本程序学习之 条件测试语句

Shell 脚本攻略--条件语句(条件测试、if、case) 文章目录前言一、条件测试1.测试命令-test2.文件测试3.整数值比较4.字符串比较5.逻辑测试二、if语句1.单分支语句2.双分支语句2.3 多分支语句三、case分支语句1.结构2.应用示例 前言 我们前面已经学习了编写比较简单的shell脚本:各语句按照顺序依次来执行,从而实现“批量处理”的自动化过程 然而,这样比较“单一”的顺序结构写多了,你会不会觉得简单了点?这样,脚本过于机械化,像流水线一样,不够“智能”! 那么,怎样才能从容的应对复杂的系统任务呢 我们接下来去学习如何进行条件测试操作,并 阅读详情

条件测试

条件测试语句

判断字符串是否相等, 可能还要检查文件状态或进行数字测试, 只有这些测试完成才能做下一步动作

test 命令: 用于测试字符串、 文件状态和数字

test 命令有两种格式:

test condition

使用方括号时, 要注意在条件两边加上空格

[ condition ]

shell 脚本中的条件测试如下:文件测试、 字符串测试、 数字测试、 复合测试

文件

文件测试: 测试文件状态的条件表达式

-e 是否存在-d 是目录-f 是文件
-r 可读-w 可写-x 可执行
-L 符号连接-c 是否字符设备-b 是否块设备
-s 文件非空

栗子 : test_file.sh

#!/bin/bash

test -e /dev/qaz
echo $?

test -e /home
echo $?

test -d /home
echo $?

test -f /home
echo $?

mkdir test_sh

chmod 500 test_sh
[ -r test_sh ]
echo $?

[ -w test_sh ]
echo $?

[ -x test_sh ]
echo $?

[ -s test_sh ]
echo $?

[ -c /dev/console ]
echo $?

[ -b /dev/sda ]
echo $?

[ -L /dev/stdin ]
echo $?

image-20200801140435708

字符串

字符串测试

test str_operator “str”

test “str1” str_operator “str2”

[ str_operator “str” ]
[ “str1” str_operator “str2” ]

其中 str_operator 可以是:

= 两个字符串相等!= 两个字符串不相等
-z 空串-n 非空串

栗子 : test_string.sh

#!/bin/bash

test -z $yn
echo $?

echo "please input a y/n"

read yn

[ -z "$yn" ]
echo 1:$?

[ $yn = "y" ]
echo 2:$?

image-20200801140332504

数字

测试数值格式如下:

test num1 num_operator num2
[ num1 num_operator num2 ]

num_operator 可以是 :

数值相等

-eq

数值不相等

-ne

数 1 大于数 2

-gt

数 1 大于等于数 2

-ge

数 1 小于等于数 2

-le

数 1 小于数 2

-lt

image-20200731125644070

栗子 : test_num.sh

#!/bin/bash

echo "please input a num(1-9)"
read num

[ $num -eq 5 ]
echo $?

[ $num -ne 5 ]
echo $?

[ $num -gt 5 ]
echo $?

[ $num -ge 5 ]
echo $?

[ $num -le 5 ]
echo $?

[ $num -lt 5 ]
echo $?

image-20200801140308980

复合测试

命令执行控制:

&&

command1 && command2

&&左边命令(command1) 执行成功( 即返回 0 ), shell 才执行 && 右边的命令(command2)

||

command1 || command2

||左边的命令(command1) 执行失败 ( 即返回非 0 ), shell 才执行 || 右边的命令(command2)

栗子 :

test -e /home && test -d /home && echo "true"

test 2 -lt 3 && test 5 -gt 3 && echo "equal"

test "aaa" = "aaa" || echo "not equal" && echo "equal"

多重条件判定

-a

( and )两状况同时成立! 同时具有 r 与 x 权限时, 才为 true.

test -r file -a -x file file

-o

(or)两状况任何一个成立! 具有 r 或 x 权限时, 就传回 true.

test -r file -o -x file file

!

相反状态 , 当 file 不具有 x 时, 回传 true

test ! -x file
【Linux】shell脚本实战-if单双分支条件语句详解 文章目录if单分支1. 单分支语法分析2. 单分支语法规范3. if单分支脚本举例a. 检查是否为超级用户b. 找一个金钱大于1000000的结婚c. 判断文件是否为普通文件d. 判断一个文件是否存在总结 if单分支 在所有的编程语言里面,if条件语句几乎是最简单的语句格式,且用途最广。 当if后面的<条件表达式>成立(真)的时候,就会执行then后面的指令或语句,否则,就会忽略then后面的指令或语句,转而执行fi下面的程序。 if语句流程图: 1. 单分支语法分析 第一种语法: if 阅读详情

相关推荐

马尔可夫网络和贝叶斯网络的一些总结

马尔可夫网络和贝叶斯网络的一些总结 最近学习了一些关于概率逻辑的知识图谱推理方法,主要就是贝叶斯网络和马尔可夫网络,在此总结一下,内容都来自网络资料,这里加入了一下个人的理解,尽量为大家避雷! 这篇文章是我目前在网络上找到的关于贝叶斯网络最清晰的介绍,大家有兴趣可以去看看 贝叶斯网络中比较重要的两部分就是贝叶斯网络的结构和条件概率表。 贝叶斯网络的结构 下面通过一个例子来介绍: 贝叶斯网的网络结...

qq_43654303的博客 4374

软件测试基础篇——Shell

一个可以直接被执行(运行)的文件/文档,被称为“脚本”shell脚本利用shell技术编写出来的一个可执行(运行)的文档shell终端:是一个应用程序,提供了一个界面,用户可以在界面中实现对Linux系统的一系列操作,也被称为“shell终端界面”,“shell终端窗口”shell脚本的编辑和运行环境文本编辑器:vi/vim命令,实现对shell脚本的编写脚本解析器:解析并执行所写的shell脚本,bash解析器:/bin/bash。

小王同学的博客 1770

STM32F405实战:手把手教你实现永磁同步电机无感FOC控制(附完整工程文件)

本文详细介绍了基于STM32F405微控制器实现永磁同步电机无感FOC控制的完整实战方案。文章从硬件搭建、CubeMX配置入手,逐步讲解了FOC核心算法、SVPWM调制,并重点阐述了如何结合HFI高频方波注入与滑模观测器(SMO)实现全速域无感控制。内容涵盖算法原理、代码实现、参数整定及调试技巧,并附有完整工程文件,为开发者提供从理论到实践的全面指导。

sun99的博客 267

shell脚本测试

∗ 所 有 参 数 列 表 , 如 " * 所有参数列表,如"∗所有参数列表,如"*" 用["],括起来的情况,以"$1" “2 " . . . . " 2" ...."2"...."n” 的形式输出所有参数,如"@“用「”」括起来的情况、以"$1" “2 " …最后运行的命令的结束代码(返回值),即执行上一个指令的返回值 (显示最后命令的退出状态。Shell最后运行的后台Process的PID(后台运行的最后一个进程的 进程ID号)Shell中$0、$1、$2、$?、$$、$*、$#、$@的含义。

weixin_57128596的博客 2735

BSL编程语言 —— 系统化程序设计

BSL编程语言简介 文章目录0. 选择编程语言1. 写简单的表达式(Expression) 0. 选择编程语言 如果你第一次使用DrRacket,打开后需要选择Beginning Student Language (BSL) Language -> Choose Language (或直接按Ctrl + L),看到如下洁面后选择Beginning Student,点击OK 定义区【De...

CSDoneRight的博客 6451

C#实战:如何用Chart控件打造专业级数据可视化报表(附完整代码)

本文详细介绍了如何使用C#的Chart控件创建专业级数据可视化报表,涵盖柱状图、饼图和雷达图等多种图表类型的高级定制与交互增强。通过完整的代码示例,展示了从环境配置到动态数据绑定的全流程,助力开发者提升企业级应用的数据可视化能力。

ipfs8storage的博客 423

shell脚本--测试

shell编程基础(shell脚本学习笔记) 文章目录shell编程基础(shell脚本学习笔记)测试1.测试结构2.文件测试3.字符串测试4.整数比较5.逻辑测试符和逻辑运算符 测试 ​ **程序运行中经常需要根据实际情况来运行特定的命令或代码段。**比如,判断某个文件或目录是否存在,如果文件或目录不存在,可能需要首先创建文件或目录。这意味着在很多情况下都需要自己来实现这个“判断”的过程。 ​ 实际上Shell已经实现了很多测试功能,这些测试语句不但使用起来非常简单,还能在少写代码的情况下实现同样的

zhanjun520的博客 3431

CM-GAI:基于连续介质力学与最优传输的数据生成新范式

在数据驱动的工程与科学研究中,如何利用有限的物理数据实现可靠预测是核心挑战。传统方法如深度神经网络,在数据稀缺时往往泛化能力不足且缺乏物理一致性。为解决此问题,一种融合物理原理与数据驱动的新范式应运而生。其核心思想是将数据分布的变化类比为连续介质在广义力驱动下的力学变形过程,通过最优传输理论为分布变换提供最优路径的度量。这种方法将物理规律(如质量守恒、运动方程)作为硬约束嵌入模型,确保了生成过程的物理可解释性。物理信息神经网络(PINNs)则被用作高效求解器,处理高维特征空间中的复杂控制方程。在工程实践中,

weixin_30607029的博客 608

Shell脚本-条件测试与比较

Shell脚本-条件测试与比较

CCH2024的专栏 361

Excel药品说明书数据库:从零开始搭建医药数据查询系统(附完整模板)

本文详细介绍了如何从零开始搭建Excel药品说明书数据库,提供完整的医药数据查询系统模板。涵盖数据库架构设计、数据清洗标准化、智能查询系统搭建及维护优化,帮助医药从业者高效管理药品信息,提升查询速度和准确性。

weixin_28327051的博客 235

TC3XX - MCAL知识点(三十九):AURIX™ TC3xx 的EDSADC实现旋变解码功能(应用笔记记录)

本文总结了英飞凌应用笔记中关于EDSADC旋变解码系统的关键内容。系统通过调幅解调获取电机位置和速度信号,支持内外载波生成方案,其中内部载波方案更常用(需2个DSADC通道)。重点介绍了滤波器链配置建议(避免FIR1)、系统条件要求(如偶数积分周期)以及群延迟计算方法。特别分析了SDCAP功能对硬件延迟的补偿机制,指出温度等因素可能导致外部电路延迟变化,需通过计数器测量并通过软件调整积分器起始点来消除角度误差。文中还提供了不同硬件延迟情况下的信号处理示例。

梦想技术家 464

Shell脚本基础应用

Shell脚本的编写及测试 1.1 问题 本例要求两个简单的Shell脚本程序,任务目标如下: 编写一个面世问候 /root/helloworld.sh 脚本,执行后显示出一段话“Hello World!!” 编写一个能输出系统信息的 /root/sysinfo 脚本,执行后依次输出当前红帽系统的版本信息、当前使用的内核版本、当前系统的主机名 1.2 方案 规范She...

dengcuidouk281517的专栏 500

innovus:set_clock_latency与insertion_delay

当1ns clock latency设置在capture上,在report_timing报告中体现在other end arrival time以及capture clock path的Arrival Time上。因为-1ns的insertion delay存在,所以skew group报告中显示的Arrival (ns)是减1ns的结果,即1.819-1=0.819 ns。CTS阶段create_ccopt_clock_tree_spec之后,spec中会产生对应的insertion_delay命令。

m0_61544122的博客 1626

9.Shell脚本基础,变量,数值运算,条件判断,if和case语句等

一些基础知识 程序 程序:算法+数据结构数据:是程序的核心数据结构:数据在计算机中的类型和组织方式算法:处理数据的方式 程序编程风格: 过程式:以指令为中心,数据服务于指令对象式:以数据为中心,指令服务于数据 shell程序:提供了编程能力,解释执行 程序的执行方式 计算机:运行二进制指令编程语言:人与计算机之间交互的语言低级编程语言:机器:二进制的0和1的序列,称为机器指令。与自然语言差异太...

weixin_34192816的博客 1103

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

2 shell脚本-功能语句

shell语句包括三类:说明性语句、功能性语句和结构性语句。如果执行read语句时标准输入无数据, 则程序在此停留等侯, 直到数据的到来或被终止运行。注释行可以出现在程序中的任何位置,既可以单独占用一行, 也可以接在执行语句的后面.# ------> 告诉OS用哪种类型的shell来解释执行该程序。条件测试语句、多路分支语句、循环语句、循环控制语句等。-n s1 测试s1 字符串的长度是否不为0。-z s1 测试s1 字符串的长度是否为0。a -ne b 测试a 与b 是否不相等。

m0_61511416的博客 261

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

《Linux操作系统编程》第八章 Shell程序设计: shell 语言结构,包括测试、分支、循环、跳转、函数、语句组

shell 语言结构,包括测试、分支、循环、跳转、函数、语句组

猫头虎技术团队:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,猫头虎承诺每年免费为100名C站创作者做账号流量诊断服务!全网搜:猫头虎技术团队,点击文章底部名片或直接私信我一切皆可谈,快找虎哥! 612

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

SHELL脚本编程基础,bilibili王晓春老师课程个人笔记(写比较简单,仅供参考)

SHELL脚本编程基础,bilibili王晓春老师课程个人笔记(写比较简单,仅供参考)

质量不太好的博客 1268

shell基础

一、关于shell 1、什么是shell 什么是shell? Shell(外壳) 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 什么是脚本? 脚本简单地说就是一条条的文字命令,这些文字命令是可以看到的(如可以用记事本打开查看、编辑)。 常见的脚本:JavaScript(JS,前端),VBScript,ASP,JSP,...

weixin_58682433的博客 494

Shell基础

一、关于shell 1、什么是shell 什么是shell? Shell(外壳) 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 什么是脚本? 脚本简单地说就是一条条的文字命令,这些文字命令是可以看到的(如可以用记事本打开查看、编辑)。 常见的脚本: JavaScript(JS,前端),VBScript, ASP,JSP,PHP(

Y_33445的博客 201

自动化运维必须要学的Shell脚本之——条件语句的详细解读

条件语句1.test命令2.文件测试3.整数值比较4. 字符串比较5. 逻辑测试6. if语句6.1 单分支结构6.2 双分支结构6.3 多分支结构7. case语句结构 1.test命令 测试表达式是否成立,若成立返回0,否则返回其他数值。 格式1: test 条件表达式 格式2: [ 条件表达式 ] 实例:比较整数的大小是否正确 实例:判断目录是否存在 test模块提供了在if-then语句中测试不同条件的途径,如果test命令中列出的条件成立,test命令就会退出并返回状态码0,这样if-the

码海小虾米_的博客 2989

Shell脚本学习笔记(2)——Shell变量以及程序语句详解

文章主要记录了Shell的学习笔记,关于Shell变量、参数、如何计算、以及还有一些常用的循环如何使用。并且给予了详细的例程帮助理解。很适合作为学习Shell新手的入门笔记。

万里羊的博客 6980

Shell脚本条件 i f 语句、case语句

if语句 if开始fi结束 if 条件测试 then 命令 fi fi是结尾 双分支 if 条件测试 then命令1 else命令2 fi 多分支结构 case语句多分枝结构 (执行效率比if快,它直接去找相关的满足的条件,而if一条一条往下找,会慢一点) ...

weixin_44324367的博客 2172

Shell编程之条件语句

she11编程作为Linux系统管理的重要组成部分,其强大的脚本处理能力为自动化任务提供了极大便利。在shel1脚本编写中,条件语句是不可或缺的逻辑控制结构,它们使得脚本能够根据不同的条件执行相应的操作,从而实现智能化和高效化。本章节将详细介绍she11脚本中的条件测试操作和条件语句的使用。通过学习条件测试操作,读者可以掌握如何区分不同情况以确定执行何种操作,例如检査文件是否存在、比较整数值和字符串等。

2301_76584825的博客 1352

偷偷学习shell脚本之条件语句

目录一、条件测试操作1、测试命令------test2、文件测试3、整数值比较4、字符串比较二、if语句三、case分支语句&&、||操作符能够正常存在于[[ ]]条件判断结构中,但是如果出现在[ ]结构中的话,会报错 一、条件测试操作 1、测试命令------test 可以对特定条件进行测试,并根据返回值来判断条件是否成立(返回值为 0 表示条件成立,反之不成立)。 使用test命令测试时,有两种形式:(常用格式二) 格式一:test 条件表达式 格式二:[ 条件表达式 ] #方括号两

ljj的学习笔记 829

使用Shell脚本进行条件测试

在简单的Shell程序中,各条语句将按先后顺序依次执行,从而实现批处理的自动化过程,然而,单一的顺序结构使得脚本过于机械化,不够"智能",难以处理更加灵活得系统任务。本文将学习如何进行条件测试,并通过正确使用if语句,使Shell脚本具有一定得"判断"能力,以根据不同得的条件来完成不同的管理任务。

微笑的段嘉许的博客 1078
上一篇: shell脚本程序学习之控制语句
下一篇: shell脚本程序学习之变量
onnx
博客等级 码龄5年 1万+粉丝 416原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

onnx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值