03_流程结构语句

一、Shell流程结构

1.1、什么是流程结构?

流程结构:是指 程序执行的顺序和控制方式,也就是程序中指令或语句执行的先后顺序。在程序设计中,流程结构决定了 程序如何运行、按什么逻辑执行任务

1.2、流程结构的三种基本类型

程序有三大流程结构分别是:

image

二、if条件选择

2.1、if单分支

条件成立才执行,条件不成立不管。

基本语法

if [ 条件 ]
then
    命令1
    命令2
    ...
fi

if [ 条件 ]; then
    命令1
    命令2
fi

# 此方案一般是条件成立后,后续操作比较简单才用,复杂一些还是建议用if单分支来完成
[ 条件 ] && 命令

案例1:是否成年判断

#!/bin/bash

# 是否成年判断 年龄大于等于18
age=20

# 单分支,条件成立才会执行if里面的语句
if [ $age -ge 18 ]; then
    echo '你成年了'
    echo '可以出去打镙丝了'
fi

命令作用:

执行结果:

关键参数:

注意事项:

#!/bin/bash

#threshold=80 threshold=7


**关键参数:**

**注意事项:**

0


#!/bin/bash

host=${1:-'127.0.0.1'}






合法的

关键参数:

注意事项:

3 3 0

-----------------------------------nginx------------------------------------------- #!/bin/bash

processName=$1

-----------------------------------进程名称是一个动态的------------------------------------------- #!/bin/bash

processName=$1 filename=$0


**注意事项:**

9

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

#!/bin/bash


注意事项:

在多个条件下,选择其中一个,只要满足一个条件,则整体条件语句不去向下继续

基本语法


案例1:判断给定的数字位于哪个范围,这个数要判断在,10以内,10-20之间,20以上

#!/bin/bash


num=222

注意事项:

------

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

#!/bin/bash

\033[0;36m查看主机名[h]\033[0m \033[0;32m查看ip地址[i]\033[0m \033[0;33mcpu占用[c]\033[0m \033[0;34m磁盘使用率[d]\033[0m \033[0;35m内存情况[f]\033[0m \033[0;31m查看菜单[q]\033[0m )"


**注意事项:**




**特点**:


基本语法

案例1:成绩和出勤判断

要求 成绩在60以上为及格 且 出勤在70以上为及格

#!/bin/bash

score=85 attendance=90


**注意事项:**

#!/bin/bash


is_online=$?





------------------------------------vsftpd安装和配置----------------------------------------

#!/bin/bash


    ftpData='/data/ftpdata'



            chroot_local_user=YES
            local_root=$ftpData


is_online=$?


注意事项:

if条件判断方式

#!/bin/bash


**注意事项:**







基本语法

    值1)
        命令1
        ;;
    值2)
        命令2
        ;;
    值3|值4)   # 多值匹配
        命令3
        ;;
        命令4
        ;;
        命令5
        ;;  
        命令5
        ;;               
        默认命令
        ;;

案例1:简单星期判断

输入1到7之间的数字,返回中文星期几

#!/bin/bash

1) ;; 2) ;; 3) ;; 4) ;; 5) ;; 6|7) ;; *) ;;


**注意事项:**

#!/bin/bash

    请选择操作:
    1|i) 主机和ip地址
    2|f) 内存使用
    3|p) cpu占用
    4|c) 清屏
    5|m) 显示菜单
    \033[1;31m0|q) 退出\033[0m
)



    1|i)
        ;;
    2|f)
        ;;
    3|p)
        ;;
    4|c)
        ;;
    5|m)
        ;;
    0|q)
        ;;
    *)
        ;;

注意事项:

#!/bin/bash

*.sh) ;; *.log|*.txt) ;; *) ;;


**注意事项:**


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

#!/bin/bash


service=$1

    start)
        ;;
    restart)
        ;;    
    stop)
        ;;              
    *)
        ;; 

注意事项:

特点:


> 
> 


案例1:1到100求和

#!/bin/bash




start=1
end=100
result=0



    #result=$result+$start

注意事项:

#!/bin/sh

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

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

"#!/bin/bash", "", "$1" ], }, ], }


**注意事项:**

#!/bin/bash


filepath='/tmp/d.txt'

index=1


注意事项:

#!/bin/bash

请选择操作: 1|i) 主机和ip地址 2|f) 内存使用 3|p) cpu占用 4|c) 清屏 5|m) 显示菜单 \033[1;31m0|q) 退出\033[0m )

1|i) ;; 2|f) ;; 3|p) ;; 4|c) ;; 5|m) ;; 0|q) ;; *) ;;


**注意事项:**

#!/bin/bash

注意事项:

#!/bin/bash


**注意事项:**

#!/bin/bash

url='192.168.32.122'

注意事项:

发送邮件:

提前安装配置好STMP邮件发送配置

安装mailx发送邮件工具

测试邮箱地址申请:https://mailtrap.io


**注意事项:**


您好,

系统备份任务已完成。
备份文件路径:/backup/2025-11-08

此致
系统自动通知

注意事项:

#!/bin/bash

threshold=1

您好,

当前此服务器($ip_host)的cpu使用率:${work_cpu}% 请及时去处理。

此致 系统报警通知

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

---------------------------------------------------------------------------- #!/bin/bash

threshold=80


**注意事项:**



while循环




特点

命令

命令


> 
> 

**示例:遍历列表**

#!/bin/bash

注意事项:

命令


> 

**示例:遍历命令输出**

#!/bin/bash

注意事项:

#!/bin/bash


**注意事项:**



1
2
3
4
5
6




i=1

i=1

注意事项:

#!/bin/bash

-------------------遍历次数--------------------------

--------------------求和-------------------------

--------------------条件比较--------------------------

age=21

--------------------逻辑运算符-------------------------- age=12 if((age<=10));then


**注意事项:**




#!/bin/bash

注意事项:

#!/bin/bash

bakdir=/backup/etc


**注意事项:**

#!/bin/bash

注意事项:

#!/bin/bash

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


**注意事项:**





注意事项:

#!/bin/bash

rnd=$[RANDOM%10+1]


**注意事项:**




#!/bin/bash

注意事项: