首页 > 系统相关 >【Shell】if选择结构语法实例

【Shell】if选择结构语法实例

时间:2024-04-11 14:03:20浏览次数:22  
标签:Shell -- sh 语法 实例 bash ley root localhost

if结构用于在Shell脚本中进行判定。如果指定的条件为真,则执行指定的命令。

  • if和then若写在同一行,then与语句之间要使用分号“ ; ”隔开。if语句结构一定要以“ fi ”结尾。

1.单分支结构

  • 语法格式
if condition
then
    command1 
    command2
    ...
    commandN 
fi
  • 脚本应用实例

  • 任务目标:判断挂载点是否存在,不存在就创立

[root@localhost ley]# cat chkmountdir.sh
#!bin/bash
#######################################################
#
#       FILE:chkmountdir.sh
#       USAGE: ./chkmountdir.sh
#
#   DESCRTPTION:
#       OPTIONS: --
#       REPUIREMENTS: --
#       BUGS: --
#       NOTES: --
#       AUTHOR: LEY
#   ORGANIZATION:
#       CREATED: 04/10/2024 16:13
#       REVISION: --
#####################################################

MOUNT_DIR="/media/cdrom/"
#判断挂载点不存在,则创建该目录
if [ ! -d $MOUNT_DIR ]
then
        mkdir -p $MOUNT_DIR
fi
[ley@localhost ~]$ chmod +x chkmountdir.sh

[root@localhost ley]# bash chkmountdir.sh
[root@localhost ley]# ls -R /media/
/media/:
cdrom

/media/cdrom:

2. 双分支结构

  • 语法格式
if condition
then
    command1 
    command2
    ...
    commandN
else
    command
fi
  • 脚本应用实例

  • 任务目标:测试并判断指定主机是否可以ping通

  • 目标主机的地址以位置参数提供

[root@localhost ley]# cat pinghost.sh
#!/bin/bash
#######################################################
#
#       FILE:pinghost.sh
#       USAGE: ./pinghost.sh
#
#   DESCRTPTION:
#       OPTIONS: --
#       REPUIREMENTS: --
#       BUGS: --
#       NOTES: --
#       AUTHOR: LEY
#   ORGANIZATION:
#       CREATED: 04/10/2024 16:21
#       REVISION: --
#####################################################
#测试指定目标地址的网络连接状态,使用了 ping 命令来测试网络连接,会发送 3 个 ICMP 回显请求到指定的目标地址,并设置每个请求之间的间隔为 0.2 秒,超时时间为 3 秒。&> /dev/null 部分将命令的标准输出和标准错误重定向到 /dev/null,意味着命令的输出将被丢弃,不会显示在终端上。
ping -c 3 -i 0.2 -W 3 $1 &> /dev/null
if [ $? -eq 0 ];then
        #状态码与0相等,则打印Host $1 is up.
        echo "Host $1 is up."
else
        #状态码与0不相等,则打印Host $1 is down.
        echo "Host $1 is down."
fi

[root@localhost ley]# chmod +x pinghost.sh

[root@localhost ley]# bash pinghost.sh 10.0.0.168        ##ping IP地址
Host 10.0.0.168 is up.

[root@localhost ley]# bash pinghost.sh 10.0.0.1          ##ping Windows的IP地址
Host 10.0.0.1 is up.   

[root@localhost ley]# bash pinghost.sh 10.0.0.2          ##ping网关
Host 10.0.0.2 is up.

[root@localhost ley]# bash pinghost.sh 110.242.68.66     ##ping百度
Host 110.242.68.66 is up.

3.多分支结构

  • 语法格式
if condition1
then
    command1
elif condition2 
then 
    command2
else
    commandN
fi
  • 脚本应用实例

  • 任务目标:输入一个数,判断成绩分档
    85~100优秀、70 ~ 84 良好、低于70分,不及格

[root@localhost ley]# cat gardediv.sh
#!/bin/bash
#######################################################
#
#       FILE:gardediv.sh
#       USAGE: ./gardediv.sh
#
#   DESCRTPTION:
#       OPTIONS: --
#       REPUIREMENTS: --
#       BUGS: --
#       NOTES: --
#       AUTHOR: LEY
#   ORGANIZATION:
#       CREATED: 04/10/2024 16:35
#       REVISION: --
#####################################################
#输入分数,并将输入值赋给FS
read -p "请输入分数(0-100): " FS
if [ $FS -ge 85 ] && [ $FS -le 100 ];then
        #分数100~85之间打印 XX分!优秀
        echo "$FS分!优秀"
elif [ $FS -ge 70 ] && [ $FS -le 84 ];then
        #分数84~70之间打印 XX分!合格
        echo "$FS分!合格"
else
        #70以下的分数打印 XX分!不合格
        echo "$FS分!不合格"
fi


[root@localhost ley]# chmod +x gardediv.sh
[root@localhost ley]# bash gardediv.sh
请输入分数(0-100): 75
75分!合格
[root@localhost ley]# bash gardediv.sh
请输入分数(0-100): 95
95分!优秀

标签:Shell,--,sh,语法,实例,bash,ley,root,localhost
From: https://blog.csdn.net/2302_76195174/article/details/137635641

相关文章

  • 2024年阿里云2核2G服务器价格揭晓:3M带宽经济型e实例仅需99元/年
    在当今这个数字化高速发展的时代,云服务器已成为企业和个人不可或缺的基础设施。阿里云,作为国内领先的云服务提供商,一直以其稳定、高效、安全的服务而备受用户青睐。今天,我要为大家介绍的是阿里云的一款超值优惠产品——2核2G3M经济型e实例云服务器ECS,仅需99元即可享有一年服务!......
  • 第二节:C#12新语法(主构造函数、集合表达式、默认Lambda参数)
    一.        二.        三.         !作       者:Yaopengfei(姚鹏飞)博客地址:http://www.cnblogs.com/yaopengfei/声     明1:如有错误,欢迎讨论,请勿谩骂^_^。声     明2:原创博客请在转载......
  • 通过实例学C#之Thread类
    构造函数Thread(ThreadStart)该构造函数接受一个不带参数的方法。staticvoidMain(string[]args){Threadt1=newThread(newThreadStart(ThreadMethod1));t1.Start();Console.ReadKey();}staticvoidThreadMethod1(){for(inti=0;i<5......
  • Python基础语法
    1.常用数据类型2.注释单行注释#需要注释的内容多行注释"""需要注释的内容"""3.变量定义变量名=变量值type()查看数据类型type(需查看类型的数据)4.类型转换类型转换代码int(x)#将x转换成整型float(x)#将x转换成浮点型str(x)#将x转换成字......
  • markdown学习(基础语法)
    Markdown学习标题三级标题四级标题字体字体斜体字体加粗字体斜体加粗划线字体引用一个向右箭头用于引用分割线三个-符号:三个*符号:图片超链接点击跳转到力扣列表abcabc表格右键插入即可代码javac++c#......
  • Shell脚本编程入门技能
    Shell脚本编程入门技能Shell脚本的概念Shell是一个命令解释器,它的作用是解释执行用户命令及程序等,用户每输入一条命令,shell就执行一条。这种从键盘输入命令,就可以得到回应的对话方式,称为交互的方式。当命令或程序语句不在命令行下执行,而是通过一个程序文件来执行时,该程序......
  • C# 基础语法 学习笔记
    1.C#基础语法1.1 泛型泛型是C#推出的一个重要语法,泛型允许在编写方法或类是定义一些未确定的类型参数。它提供了类型安全且高效的数据结构和算法,同时也可以避免装箱和拆箱操作,提高代码的复用性(编程时,出现相似的模块,这加大我们的工作量,如果使用泛型可以让多个类型共享一组......
  • Linux Shell:用户配置文件详解
    LinuxShell:用户配置文件详解在Linux系统中,用户配置文件扮演着至关重要的角色,它们定义了用户的操作环境,包括环境变量、别名、函数等。这些配置文件在用户登录时被读取和执行,以设置一个为用户量身定制的命令行环境。在这篇文章中,我们将详细介绍Linux中最常见的几种用户配置......
  • C语言笔记二的补充(实例应用)——猜数游戏的简单实现
    猜数字游戏要求:电脑自动生成1~100的随机数玩家猜数字,猜数字的过程中,根据猜测数据的大小给出反馈,直至才对,游戏结束。基础知识搭建:随机数的生成使用rand函数intrand(void);rand函数会返回一个伪随机数,这个随机数的范围是在0~RAND_MAX之间,这个RAND_MAX的大小是依赖编......
  • xshell常用命令 以及文件属性类型
      xshell常用命令1tree/home/树状形式显示yuminstalltree2cat:查看文本内容cat>>test2.txt<<EOF>ads>adf>EOF3less,more:文本查看,分页less/etc/services4head-n1/etc/services:查看该文件第一行5psaux|head-n5:查看前5......