Skip to content
KARINKARIN
博客主页
项目总览
知识要点
捣鼓折腾
Git笔记
Excel修炼秘籍
github icon
  • 博客主页
    • 项目总览
          • Shell脚本笔记
            • Shell脚本介绍
              • Shell语法
                • Shell格式化输出
                  • Shell格式化输入
                    • Shell变量
                      • Shell数组
                        • Shell运算
                          • Shell流程控制---if判断语句
                            • if 语法
                              • 语法一
                                • 语法二
                                  • 语法三
                                  • 作业
                                  • Shell流程控制---for循环语句
                                    • Shell流程控制---while循环语句
                                      • Shell流程控制---until循环语句
                                        • Shell流程控制---case分支语句
                                          • Shell函数
                                            • Shell正则表达式
                                              • Shell对文本的搜索---grep命令
                                                • Shell对文件的操作---sed命令
                                                  • Shell对输出流的处理---awk命令
                                                    • Shell监控脚本
                                                      • Shell脚本---lamp环境安装

                                                    Shell流程控制---if判断语句

                                                    author iconkarincalendar icon2021年4月9日category icon
                                                    • 教程
                                                    tag icon
                                                    • shell
                                                    timer icon大约 2 分钟

                                                    此页内容
                                                    • if 语法
                                                      • 语法一
                                                      • 语法二
                                                      • 语法三
                                                    • 作业

                                                    当我们在写程序的时候,时常对上一步执行是否成功如何判断苦恼,当我们学习了if判断语句就可以解决你的苦恼。if判断语句在我们程序中就是用来做判断的,以后不管学习什么语言,以后只要涉及到判断的部分,就可以直接拿if来使用,不同的语言之间的 if 只是语法不同,原理是相同的。

                                                    # if 语法

                                                    # 语法一

                                                    if---then 语句

                                                    适用范围:只需要一步判断,条件为真做什么。

                                                    if [ condition ];then		#如果 条件为真,则
                                                    commands						#执行commands代码块
                                                    fi							#结束
                                                    
                                                    1
                                                    2
                                                    3

                                                    实例

                                                    #!/bin/bahs
                                                    if [ -f /mnt/test ];then
                                                    echo "/mnt/test文件已存在。"
                                                    fi
                                                    
                                                    1
                                                    2
                                                    3
                                                    4

                                                    # 语法二

                                                    if---then---else 语句

                                                    适用范围:两步判断,条件为真做什么,条件为假做什么。

                                                    if [ condition ];then		#如果 条件为真,则
                                                    commands1						#执行commands1代码块
                                                    else						#否则
                                                    commands2						#执行commands2代码块
                                                    fi							#结束
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5

                                                    实例

                                                    #!/binbahs
                                                    if [ $USER == "root" ];then
                                                    echo "管理员,你好!"
                                                    else
                                                    echo "guest,你好!"
                                                    fi
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6

                                                    # 语法三

                                                    if---thne---eliif---else 语句

                                                    使用范围:多于两个以上的判断结果,也就是两个及以上的判断条件

                                                    if [ condition1 ];then		#如果 条件1为真,则
                                                    	commands1					#执行commands1代码块
                                                    elif [ condition2 ];then	#如果 条件2为真,则
                                                    	commands2					#执行commands2代码块
                                                    	...							#...
                                                    else						#否则
                                                    	commandsX					#执行commandsX代码块
                                                    fi							#结束
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6
                                                    7
                                                    8

                                                    实例

                                                    #!/bin/bash
                                                    read -p "请输入一个整数:" x
                                                    if [ $x -gt 0];then
                                                    	echo "您输入的是一个正整数。"
                                                    elif [ $x -eq 0];then
                                                    	echo "您输入的是0。"
                                                    else
                                                    	echo "您输入的是一个负整数。"
                                                    fi
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6
                                                    7
                                                    8
                                                    9

                                                    补充

                                                    条件符号使用双圆括号,可以在条件中植入数学表达式

                                                    双圆括号中的比较运算符,使用的是我们传统的比较运算符 >>=、==、<<=、!=

                                                    使用双方括号,可以在条件中使用通配符

                                                    # 作业

                                                    • 判断一个机器是否存活(能 ping 通就算存活)
                                                    • 判断服务器上的某个服务是否开启
                                                    • 判断某年是否为闰年
                                                    • 写一个 Nginx 安装脚本,加入判断,当上一步执行成功再执行下一步,否则退出脚本
                                                    • 写一个备份脚本,将 A 机器当天修改果的文件=收集到 /cache 目录,打包并发送到B机器 /opt/backup 目录下,通过 MD5 值判断 B 机器上的备份的完整性
                                                    #nginx安装脚本
                                                    [root@linux ~ ]# vim nginx_install.sh
                                                    #!/bin/bash
                                                    yum -y install wget gcc pcre-devel zlib-devel
                                                    wget http://nginx.org/download/nginx-1.18.0.tar.gz
                                                    if [ $? -eq 0 ];then
                                                    	tar -xf nginx-1.18.0.tar.gz
                                                    	cd nginx-1.18.0
                                                    	./configure --prefix=/usr/local/nginx
                                                    	if [ $? -eq 0 ];then
                                                    		make -j 4
                                                    		if [ $? -eq 0 ];then
                                                    			make install
                                                    				if [ $? -eq 0 ];then
                                                    					echo "nginx安装成功"
                                                    				else 
                                                    					echo "nginx安装失败"
                                                    				fi
                                                    		else
                                                    			echo "nginx编译失败"
                                                    		fi
                                                    	else
                                                    		echo "nginx配置失败"
                                                    	fi
                                                    else
                                                    	echo "nginx下载失败"
                                                    fi
                                                    [root@linux ~ ]# chmod 700 nginx_install.sh
                                                    [root@linux ~ ]# ./nginx_install.sh
                                                    
                                                    
                                                    1
                                                    2
                                                    3
                                                    4
                                                    5
                                                    6
                                                    7
                                                    8
                                                    9
                                                    10
                                                    11
                                                    12
                                                    13
                                                    14
                                                    15
                                                    16
                                                    17
                                                    18
                                                    19
                                                    20
                                                    21
                                                    22
                                                    23
                                                    24
                                                    25
                                                    26
                                                    27
                                                    28
                                                    29
                                                    30
                                                    edit icon编辑此页open in new window
                                                    上一页
                                                    Shell运算
                                                    下一页
                                                    Shell流程控制---for循环语句
                                                    MIT Licensed
                                                    Copyright © 2022 karin