Shell脚本之——条件语句if详解

这篇具有很好参考价值的文章主要介绍了Shell脚本之——条件语句if详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、test命令

1.2、格式

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

格式1:    test 条件表达式
格式2:    [ 条件表达式 ]

1.2、实例操作

shell if,bash,linux,开发语言

二、文件测试

2.1、格式:

操作符 文件名或者目录名 

2.2、常用的测试操作符

-d∶ 测试是否为目录(Directory)
-e∶ 测试目录或文件是否存在(Exist)
-f∶ 测试是否为文件(File)
-r∶ 测试当前用户是否有权限读取(Read)
-w∶ 测试当前用户是否有权限写入(Write)
-x∶测试当前用户是否有权限执行(eXcute)
-L∶测试是否为软链接文件

2.3、实例操作

shell if,bash,linux,开发语言
shell if,bash,linux,开发语言

三、整数值比较

3.1、格式

[ 整数1 操作符 整数2 ]

3.2、常用的测试操作符

-eq∶ 等于(Equal)
-ne∶ 不等于(Not Equal)
-gt∶ 大于(Greater Than)
-lt∶ 小于(Lesser Than)
-le∶ 小于或等于(Lesser or Equal)·
-ge∶ 大于或等于(Greater or Equal)

3.3、实例操作

1 结合逻辑与进行查询当前目录下的文件数目
shell if,bash,linux,开发语言
2 查看系统内存是否低于或者高于1024M,如果满足条件则提示
shell if,bash,linux,开发语言
3 使用双括号加数字进行表示
shell if,bash,linux,开发语言

四、字符串比较

4.1、格式

[ 字符串1 = 字符串2 ]             #判断是否相等
[ 字符串1 != 字符串2 ]            #判断是否不等[ -z 字符串 ]                            #是否空值[ -n 字符串 ]                            # 字符集是否存在

4.2、常用的测试操作符

  • =∶ 字符串内容相同
  • !=∶ 字符串内容不同,!号表示相反的意思
  • z∶字符串内容为空

4.3、实例操作

shell if,bash,linux,开发语言
shell if,bash,linux,开发语言

五、逻辑测试(三元运算符)

5.1、格式

格式1∶    [ 表达式1 ] 操作符 [ 表达式2 ]…
格式2∶    命令1 操作符 命令2…

5.2、常用的测试操作符

  • -a或&&∶ 逻辑与,"而且"的意思
  • -o或||∶ 逻辑或,"或者"的意思
  • !∶逻辑否

5.3、实例操作一

shell if,bash,linux,开发语言

5.4、实例操作二

#!/bin/bash
#Ping test
 
ping -c 3 -i 0.5 -w 2 $1 &> /dev/null && echo "$1 is online!" || echo "$1 is offline!"

shell if,bash,linux,开发语言

六、if语句

6.1、单分支结构

如果只有一个判断式要进行,那么我们可以使用单分支的if语句

6.1.1 格式

if [ 条件判断式 ]; then
    当条件判断成立时,可以进行的命令工作内容
fi                  #这里将if反过来写,结束if语句的意思

6.1.2 原理图:

shell if,bash,linux,开发语言

6.1.3 实例操作

shell if,bash,linux,开发语言

6.2、双分支结构

在同一个数据的判断中,如果该数据需要进行两种不同的判断,我们就需要双分支if语句了:

6.2.1 格式

if [ 条件判断式 ]; then
    当条件判断成立时,可以进行的命令工作内容
else   
    当条件判断不成立时,可以进行的命令工作内容
fi 

6.2.2 原理图:

shell if,bash,linux,开发语言

6.2.3 实例操作一

shell if,bash,linux,开发语言

6.2.4 实例操作二

#!/bin/bash
#Shut down httpd service
 
netstat -natp | grep :80 &> /dev/null
 
if [ $? -eq 0 ];then
   echo "httpd 服务正常运行!"
else
   echo "httpd 服务未开启,正在开启服务......"
   systemctl start httpd && echo "httpd 服务启动成功"
fi

shell if,bash,linux,开发语言
shell if,bash,linux,开发语言

6.3、多分支结构

如果数据需要进行多种不同的判断,则可以使用多分支结构

6.3.1 格式

if [ 条件判断式 ]; then
    当条件判断成立时,可以进行的命令工作内容
elif [ 条件判断式二 ]; then
    当条件判断成立时,可以进行的命令工作内容
else   
    当上面的条件判断都不成立时,可以进行的命令工作内容
fi     

6.3.2 原理图:

shell if,bash,linux,开发语言

6.3.3 实例操作

shell if,bash,linux,开发语言
shell if,bash,linux,开发语言

七、case语句结构

7.1、格式

case 变量名称 in
“第一个变量内容”
    程序段
    ;;
“第二个变量内容”
    程序段
    ;;
*)
    不包含第一个变量内容与第二个变量内容的其他程序执行段
    默认程序段
    ;;
esac       

7.2、实例操作一

#!/bin/bash
#Determine grades and scores
 
read -p "请输入你的分数(0-100):" score
 
[ $score -ge 90 -a $score -le 100 ] && a="great"
[ $score -ge 70 -a $score -le 89 ] && a="medium"
[ $score -ge 60 -a $score -le 69 ] && a="pass"
[ $score -lt 60 ] && a="fail"
 
case $a in
great)
   echo "优秀"
;;
medium)
   echo "中等"
;;
pass)
   echo "及格"
;;
fail)
   echo "不及格"
;;
*)
  echo "输入有误"
esac

shell if,bash,linux,开发语言
shell if,bash,linux,开发语言

7.3、实例操作二

#!/bin/bash
#Determine Input
 
read -p "请输入一个字符:" string
 
case "$string" in
[a-z]|[A-Z])
    echo "你输入的是字母"
;;
[0-9])
   echo "你输入的是数字"
;;
*)
   echo "你输入的是其他字符"
esac

shell if,bash,linux,开发语言

八、总结

1、test命令:

两种格式

test 条件表达式

[条件表达式]

2、文件测试

-d -e -f -r -w -L

3、整数值比较

-eq -ge -le -gt -lt -ne

4、字符串比较

相等=

不相等 !=

空值 -z

是否存在 -n

5、逻辑测试

逻辑与:-a 或者&&

逻辑或:-o 或者||

逻辑否:!

6、if语句

单分支

双分支

多分支

当 if 语句中使用 [ ] 条件修饰符时, $flag 变量必须加上引号。

当 if 语句中使用 [[]] 条件修饰符时,$flag 变量的引号可有可无。

7、case语句

多分支结构文章来源地址https://www.toymoban.com/news/detail-811862.html

到了这里,关于Shell脚本之——条件语句if详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【shell脚本】条件语句

    测试表达试是否成立,若成立返回0,否则返回其它数值 符号 作用 -d 测试是否为目录 -e 测试是否为目录或文件 -f 测试是否为文件 -r 测试当前用户是否有读取权限 -w 测试当前用户是否有写入权限 -x 测试当前用户是否有执行权限 1.1.2整数比较常用的操作符 英文符号 算数符号

    2024年02月02日
    浏览(43)
  • shell脚本----条件判断语句

    文件测试 test命令 测试表达是是否成立,若成立则返回0,否则返回其他的数 用法一:test 条件表达式 用法二:[ 条件表达式 ] 选项 含义 -e 测试目录或者文件是否存在 -d 测试是否为目录 -f 测试是否为文件 -r 测试当前用户是否有读的权限 -w 测试当前用户是否有写的权限 -x 测

    2024年02月01日
    浏览(43)
  • Linux--shell编程中的if语句

        1. if if 语句语法格式: if condition then     command1     command2     ...     commandN fi      1)判断当前系统是否有多个ssh进程,如果有则打印true test12.sh #!/bin/bash if   [   $(ps -ef | grep -c \\\"ssh\\\")   - gt 1   ] then     echo   \\\"true\\\"   fi       2)判断/media/cdrom文件是否存在,若

    2024年02月21日
    浏览(42)
  • lv3 嵌入式开发-5 linux shell脚本编程(概念、变量、语句)

     Shell脚本是利用 shell 的功能所写的一个程序。这个程序是使用纯文本文件,将一些 shell 的语法与命令(含外部命令)写在里面,搭配正则表达式、管道命令与数据流重定向等功能  第一个Shell脚本文件 变量来源于数学,是计算机语言中能储存计算结果或能表示值的抽象概念

    2024年02月10日
    浏览(79)
  • 【Linux | Shell】结构化命令 - if 语句

    前面文章介绍了一些Shell脚本的基础知识,也了解了怎样构建一个shell脚本文件,让shell脚本执行一些基础的指令,但都是从上到下依次执行的。在实际shell编程中,会遇到很多情况需要判断条件,按不同条件去执行不同的命令。本文注意介绍shell编程中的一些结构化命令条件语

    2024年02月16日
    浏览(39)
  • 【Linux】Shell编程之条件语句

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 test命令 测试表达式是否成立,若成立返回0,否则返回其他数值 常用的测试操作符 -d :测试是否为目录 (Directory) -e:测试目录或文件是否存在(Exist) -f:测试是否为文件 (File) -r:测试当前用户是否有权

    2024年02月03日
    浏览(56)
  • Linux Bash Shell 脚本入门(2)——GNU

    ​ 目录 Linux Bash Shell 脚本入门(2)——GNU GNU与Linux GNU GNU的组成 Shell GNOME桌面环境 X Window 软件 GNOME 可点击内容,大部分来自维基百科,可以点击了解详情。 GNU操作系统起源于GNU计划,由理查德·斯托曼在麻省理工学院人工智能实验室发起,希望发展出一套完整的开放源代码

    2024年02月19日
    浏览(34)
  • Linux之Shell进阶(变量和条件判定语句)

    变量的含义 什么是量? 量就是数据. 什么是变量? 数据可以发生改变就是变量。 在一个脚本周期内,其值可以发生改变的量就是变量。 什么叫做一个脚本周期? 一个脚本周期我们可以简单的理解为当前的shell文件。 变量是shell中不可或缺的一部分,也是 最基础、最重要 的组

    2024年02月15日
    浏览(47)
  • 3.7 Linux shell脚本编程(分支语句、循环语句)

    目录 分支语句(对标C语言中的if) 多路分支语句(对标C语言中的swich case) 分支语句(对标C语言中的if) 语法结构:          if    表达式                  then  命令表          fi     如果表达式为真, 则执行命令表中的命令; 否则退出if语句, 即执行fi后面的语句。

    2024年02月02日
    浏览(45)
  • bash脚本if语句比较为什么要用x

    如下进行PCIe设备的检测和计数,并执行重启操作的例子代码: 在给定的代码片段中,使用 x 是为了避免在比较时出现空字符串的问题。这是一种常见的技巧,用于确保比较操作的准确性。 在这个特定的语句中, x${devIDFunc0} 是用来检查变量 devIDFunc0 是否为空字符串。通过在变

    2024年02月08日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包