代码编织梦想

条件测试操作

Shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,

当返回值为0(真true)时表示成功,返回值为非0值(假false)时表示失败或异常。

test 命令,可以对特定条件进行测试,并根据返回值来判断条件是否成立($?返回值为 0 表示条件成立)。

条件测试

  • 文件测试与整数测试

  • 字符串测试与逻辑测试

if语句

  • if单分支语句

  • if双分支语句

  • if多分支语句

  • case

test命令

测试表达式是否成立,若成立返回0,否则返回其他数值。($?)

格式一:test 条件表达式

常用操作符:-d 测试是否为目录

-e 测试目录或文件是否存在

-f 测试是否为文件

-r 测试当前用户是否有权限读取(Read)

-r 测试当前用户是否有权限写入(Write)

-x 测试是否设置有可执行(Excute)权限

整数值比较

格式1:[整数变量1 操作符 整数变量2]

test 1 == 1

echo $?

格式2: [ -z 字符串] #检查字符串是否为空(Zero,对于未定义或赋予空值的变量将视为空串)

常用的操作符:

-eq: 等于 ==(整数或字符串)

-ne: 不等于 !=

-gt : 大于 \> >

-lt : 小于 \< <

-le: 小于等于

-ge: 大于等于

逻辑测试:

格式1:[表达式1] 操作符 [表达式2]

常用的测试操作符

-a 或 &&:逻辑与,“而且”的意思

-o或|| :逻辑或,“或者”的意思

! : 逻辑否

[ $a -ne 1 ] && [ $a != 2 ]

||

[ $a -ne 1 -a $a != 2 ]

||

[[ $a -ne 1 $$ $a != 2 ]]

单分支结构

if 条件测试操作 if 已用磁盘空间>80%

then 命令序列 =》 then 告警

fi fi

if [ 3 -gt 2 ];then echo "ok"; fi

cefa4387e9a293dadb843d86009451dc.png

双分支结构

if 条件测试操作

then 命令序列1

else 命令序列2

fi

0e80ff6e63b1ea92d44686840ce6341c.png

ping -c 3 $1 &> /dev/null #null黑洞文件

if [ $? == 0 ]

then

echo "$1 is online"

else

echo "$1 is dead"

fi

[root@localhost~]#sh test.sh www.baidu.com

[root@localhost~]#www.baidu.com is online

多分支结构

if 条件测试操作1 if 分数在85~100之间

then 命令序列1 then 判为优秀

elif 条件测试操作2 =》 elif 分数在70~85之间

then 命令序列2 then 判为合格

else else

命令序列3 判为不合格

fi fi

9a3a3bc9843452b9f2371fe6699791bd.png

case语句结构

case多分支结构

使用 case 分支语句时,有几个值得注意的特点如下所述:

case 行尾必须为单词“in”,每一模式必须以右括号“)”结束。

双分号“;;”表示命令序列的结束。

模式字符串中,可以用方括号表示一个连续的范围,如“[0-9]”;还可以用竖杠符号“|”表示或,如“A|B”。

最后的“*)”表示默认模式,其中的*相当于通配符。

9511950df3db2f7dca8a7a38035ff973.png

case行尾必须为单词 in

一个模式以“;;”结尾,*模式不需要加

每一模式必须以右括号 ) 结尾

全部执行完,esac结尾

read -p "Please enter your score(0-100):"score

[[ $score -ge 80 && $score -le 100 ]] && a="great"

[[ $score -ge 60 && $score -le 80 ]] && a="yiban"

[[ $score -ge 0 && $score -le 60 ]] && a="cha"

case $a in

great)

echo "${a}分,优秀"

;;

yiban)

echo "${a}分,一般"

;;

cha)

echo"${a}分,差"

;;

*)

echo "输入不合法"

esac

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Richard_Sniper/article/details/129610756

shell编程之条件判断与流程控制_程序猿王老铁的博客-爱代码爱编程_shell编程中实现多条件控制的是

shell编程之条件判断语句与流程控制 简单点来说就是if,for,case,where之类的判断语句,然后结合一些shell命令来达到简化一些操作。 下面的内容是重点,是条件判断的重点!!!刚开始不理解也没关系,下面有

centos7 shell编程-爱代码爱编程

Shell编程 简介 shell 是linux命令解释器,shell编程,就是Linux命令的组合; centos6启动走init,centos7启动走systemd 格式 vim a.sh 在linux中,不同语句

Shell编程-爱代码爱编程

一、Shell编程 1. 为什么要学习 Shell编程 1)Linux运维工程师在进行服务器集群管理时,需要编写 Shell程序来进行服务器管理。 2)对于 JavaEE和 Python程序员来说,工作的需要,你的老大会要求你编写一些 Shell脚本进行程序或者是服务器的维护,比如编写一个定时备份数据库的脚本。 3)对于大数据程序员来说,需要编写

shell回文判断_习题07_Shell编程-爱代码爱编程

习题 07_Shell 编程 一、单选 1. 下面哪个命令是用来定义 shell 的全局变量 ( D ) 。 A. exportfs B. alias C. exports D. export 2 .在 Shell 脚本中,用来读取文件内各个域的内容并将其赋值 Shell 变量的命令是( D ) 。 A

shell编程之 if 判断语句-爱代码爱编程

shell编程之 if 判断语句 判断语句介绍 - if单if 语句(一个条件一个判断结果)if..else 语句(一个条件两个判断结果)if..elif..else 语句(多条件多个判断结果)if嵌套if 语句if 和命令的操作 判断语句介绍 - if 当编写程序时,需要对上一步执行代码是否执行成功进行判断,可以用if语句进行判断。通过查看

shell编程之条件语句-爱代码爱编程

目录 一.条件测试二.比较整数数值三.字符串比较四.逻辑测试(短路运算)五.if语法六.case语句结构七.几个随堂小实验1.无论怎么输yes或no都识别2.判断输入的是什么格式3.自制包剪锤小游戏 一.条件测试 1.test命令 测试表达式是否成立,若成立返回0,否则返回其他数值 格式1: test 条件表达式 格式2:[ 条件表达式 ]

【linux】shell 编程之流程控制语句详解_逆风飞翔的小叔的博客-爱代码爱编程

前言 可以说,在任何一门编程语言中都离不开流程控制语句,使用流程控制语句可以帮助程序处理各类复杂的操作,常用的流程控制语句,比如: if-else,while,for循环等,在linux 的shell 编程语法中,也提供了丰富的流程控制语句,接下来将一一做详细的说明。 一、if - else 语句 if 语法 if 条件 then

python第二次作业——判断句_巷子里的酒的博客-爱代码爱编程

demo19 编写的代码: #demo19 猜年龄 Set1 = "1\t3\t5\t7\n""9\t11\t13\t15\n""17\t19\t21\t23\n""25\t27\t29\t31" Set2 = "2

linux之shell编程快速上手_爱康代码的博客-爱代码爱编程

Shell编程快速上手 一、Shell编程基础1.1 Shell脚本程序1.2 创建Shell脚本 二、Shell的变量2.1Shell的变量2.2 设置环境变量2.3 位置参数变量2.4预定义变量2.5 she

centos下grpc的安装及测试-爱代码爱编程

前段时间写了一篇博文《centos下安装grpc》,当时安装是成功了,但后来我编译里面带的examples时,发现总是报undefined reference错误,我设了各种路径也还是报错。看来这种安装方式不靠谱,应该是安装有问题。 后来我根据google的官方文档安装,安装、编译都成功了。但github下载安装grpc是很缓慢的,所以我去镜像网站g

shell编程_编写shell程序-爱代码爱编程

文章目录 shell基础概念shell参数表示★ 符号的作用双引号单引号反引号重定向运算符 > >> 字符串处理计算字符串 通配符text语句判断命令test测试语句

【linux】软件性能分析工具:perf_linux perf 调试应用性能-爱代码爱编程

1、简介 Perf 是用来进行软件性能分析的工具。 Linux性能计数器是一个基于内核的子系统,它提供一个性能分析框架,比如硬件(CPU、PMU)功能和软件(软件计数器、tracepoint)功能。 应用程序运行时,通