shell编程之if条件语句

本文详细介绍了Shell编程中的if条件语句,包括单分支和多分支的使用,强调了比较运算符和逻辑运算符的用法。同时,提到了文件和目录判断的内置符号,并给出了一些实用的实例,如检查文件是否存在、判断目录是否需要创建等。最后,讨论了[]与[[]]的区别,并展示了如何根据输入参数进行条件判断。

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

if条件语法规则

单分支if语句
if 表达式;then
语句1
else
语句2
fi

多分支if语句
if 表达式1;then
语句1
elif 表达式2;then
语句2

else
语句n
fi

实例

#!/bin/bash

NUM=200
if(($NUM > 4));then
	echo "num is greater than 4!"
else
	echo "num is less than 4!"
fi

注意:
1)在比较数字大小时,表达式应该用两个小括号括起来;
2)if表达式后需要一个分号,然后再加上then;
3)各条处理语句需缩进;
4)条件语句结尾需使用fi;

shell逻辑运算符
-eq: 等于 应用于整型比较
-ne: 不等于
-lt: 小于 应用于整型比较,字符串比较使用’>‘或’<’
-gt: 大于
-le: 小于等于
-ge: 大于等于
-a: 与运算
-o: 或运算, 非运算直接在判断语句前加!

shell内置判断符号
-z: 空字符串
-e: 判断文件是否存在,若存在,结果为真
-d: 判断目录是否存在,若存在,结果为真
-f :判断文件是否为一个普通文件,若是,结果为真
-s: 判断文件长度是否为0,若文件长度不为0,结果为真
-r:判断文件是否可读,若文件可读,结果为真
-w:判断文件是否可写,若可写,结果为真
-x:判断文件是否可执行,若可,结果为真

实例
判断目录是否存在,不存在则创建

#!/bin/bash

DIR=/temp/shell

if [ ! -d $DIR ];then
	mkdir -p $DIR
else
	echo "this dir is exist,please exit..."
fi

判断文件是否存在

#!/bin/bash

FILE=test.txt
if [ ! -f $FILE ];then
	echo "OK" >> $FILE
else
	echo -e "\033[32m----------------\033[0m"
	cat $FILE
fi

多个条件判断

#!/bin/bash

scores=80

if [[ $scores -gt 90 ]]; then
	echo "very good!"
elif [[ $scores -gt 70 ]]; then
	echo "good!"
elif [[ $scores -gt 60 ]]; then
	echo "pass!"
else
	echo "no pass!"
fi

注意:
1)表达式与中括号之间一定要有空格区分;
2)if表达式可以是[],[[]]或(())等条件表达式,[]一般用于判断文件或路径,[[]],(())一般用于数值的判断;使用’[]'时注意在变量的外侧加上双引号"$scores"
关于[]与[[]]之间的区别可以看看这篇文章,[]与[[]]之间的区别,讲的通俗易懂。
3)只有else这一判断语句不需要then,其余分支都需要then语句;

以输入参数的方式来实现
先判断参数是否输入,若输入了,则继续后面的判断,否则提示未输入

#!/bin/bash

scores=$1
if [ -z $scores ]; then
	echo "score is empty!"
	echo "Usage: {$0 60|80.}"
	exit
fi

if [[ $scores -gt 90 ]]; then
	echo "very good!"
elif [[ $scores -ge 70 ]]; then
	echo "good!"
elif [[ $scores -ge 60 ]]; then
	echo "pass!"
else
	echo "no pass!"
fi

脚本执行命令

/bin/bash scores.sh 85
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值