shell-03-if条件语句及演示案例

本文详细介绍了Shell脚本的基础知识,包括如何检查脚本语法错误,三种常见的if条件语句结构,以及如何进行数字比较、目录和文件存在性的判断与创建。通过实际案例,如比较数字大小、判断目录及文件存在并进行相应操作,加深了对Shell脚本的理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试shell脚本写的有没有问题

/bin/bash -n 文件名

正常
在这里插入图片描述

1.if条件判断语句

#第一种
if [  ];then           
fi
#第二种
if [  ];then  
else         
fi
#第三种
if [[]];then  
elif [[]];then
elif [[]];then
else   
fi

1. 两个小括号(())或两个中括号[[]]在if里表示比较大小,if语句中通常用[]来表示条件测试,可以比较字符串、判断文件是否存等

2.简单案例一(比较两个数字的大小)

#!/bin/bash
#比较两个数字的大小
AA="50"
BB="100"                    `==等于  != 不等于`

if (($AA > $BB));then      #注意:if 和 < 的空格

	echo "$AA>$BB"         #注意:格式要求:echo前边用tab
else 
	echo "&BB>&AA"
fi

/bin/bash 文件名 运行
sh 文件名会有多余的东西
在这里插入图片描述

2.判断目录是否存在,不存在就新建

逻辑运算符解析:
  • -f 判断文件是否存在 if [ -f filename ]
  • -d 判断目录是否存在 if [ -d dir ]
  • -eq 等于 应用:整数比较
  • -ne 不等于 应用:整数比较
  • -lt 小于 应用:整数比较
  • -gt 大于 应用:整数比较
  • -le 小于等于 应用:整数比较
  • -ge 大于等于 应用:整数比较
  • -a 双方都成立,(and)逻辑表达式
  • -o 单方面成立,(or)
  • -z 空字符串

注意格式-与中括号之间都有空格:if 空格 [ 空格 -d 空格 url 空格 ];then

#!/bin/bash
#判断目录是否存在,不存在创建
url= "/home/bian/20200902"
if [ ! -d $url ];then
	mkdir -p $url
	echo "目录$url不存在,新建目录成功"
else
	echo "目录$url存在"

在这里插入图片描述

3.判断文件是否存在,不存在新建,并追加文本,以及输出文本颜色配置

#!/bin/bash
file="20200904.txt"
if [ ! -f $file ];then                       # 问题:1.打开文件:-f
	touch $file         
	echo "此文件不存在,新文件创建成功"
	echo "Add a world to the $file" << $ile
else 
	echo "此文件以存在"
	echo "Welcome to the $file" << $file     #问题:1.<< 追加文本  2.< 覆盖文本  3.用echo
	echo -e "\033[32m-------------\033[1m"      #问题:1.-e       2.033 绿色  3.[0m 一行 4.[1m 所有
	cat $file                                #打开问文件

多条件if语句

#第三种
#根据分数评优
s=$1                                 #  问题:/bin/bash 12 34    把12赋值给s   $1=12 $2=34
if [ -z $s ]                         #  问题:-z 判断参数是否为空
	echo "请重新运行并输入参数"
	exit                             #  问题:exit 退出  
fi
#---------------------------------------------------------------------------------------
if [[ $s -gt 80 ]];then
	echo "优"  
elif [[ $s -gt 60 ]];then            # 问题:elif  相当于else if
	echo "良"
elif [[ $s -gt 40 ]];then
	echo"可"
else  
	echo "差"
fi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值