linux基础——条件判断

一、if条件判断

1、if 条件判断语法

if 判断体 ;then
do something
elif 判断体;then
do something;
else
do something
fi

if list then
	do something here
elif list then
	do another thing here
else
	do something else here
fi

1.1 if 判断数字大小

//判断,-lt是“小于”的意思,判断5是否小于4,如果小于,输出1,如果不小于则执行下一个循环体:0是否小于1,如果小于输出2,如果不小于,直接输出3结束;
[root@localhost sed_test]# if [ 5 -lt 4 ];then 
> echo "1"
> elif [ 0 -lt 1 ];then
> echo "2"
> else
> echo "3";
> fi
2

1.2 if 判断变量值

//判断SYSTEM变量的值:
[root@localhost sed_test]# SYSTEM="Linux"
[root@localhost sed_test]# echo $SYSTEM
Linux
[root@localhost sed_test]# if [ $SYSTEM = "aabb" ];then
> echo "SYSTEM=aabb";
> elif [ $SYSTEM = "Linux" ];then
> echo "SYSTEM=Linux";
> else
> echo "who?"
> fi
SYSTEM=Linux
[root@localhost sed_test]#

1.3 注意事项

1.3.1 判断体[ ]前后要有空格

判断体的中括号[],需要前后都有空格,不然执行会报错,[ 1 -eq 1 ]是对的,[1 -eq 1]是不对的

1.3.2 then只有在判断体后面才加

if [ xxx ];then末尾记得加
elif [ xxx ];then末尾记得加
else后面不用加then

1.4 判断体常用参数

1.4.1 字符串判断
参数说明
str1 = str2当两个串有相同内容、长度时为真
str1 != str2当串str1和str2不等时为真
-n str1当串的长度大于0时为真(串非空)
-z str1当串的长度为0时为真(空串)
str1当串str1为非空时为真
1.4.2 数字的判断
参数说明
int1 -eq int2两数相等为真
int1 -ne int2两数不等为真
int1 -gt int2int1大于int2为真
int1 -ge int2int1大于等于int2为真
int1 -lt int2int1小于int2为真
int1 -le int2int1小于等于int2为真
1.4.3 文件相关的if判断条件语句
参数说明
-r file用户可读为真
-w file用户可写为真
-x file用户可执行为真
-f file文件为正规文件为真
-d file文件为目录为真
-c file文件为字符特殊文件为真
-b file文件为块特殊文件为真
-s file文件大小非0时为真
-t file当文件描述符(默认为1)指定的设备为终端时为真
//判断/xx/xxx/xxx是否为目录

[root@localhost sed_test]# pwd
/root/shell_01/sed_test
[root@localhost sed_test]# ll
total 16
drwxr-xr-x. 2 root root    6 Jul  2 18:50 dirtest
-rw-r--r--. 1 root root 1171 May 23  2022 linshi.txt
-rw-r--r--. 1 root root 1089 May 16  2022 passwd_bak.txt
-rw-r--r--. 1 root root   14 May 20  2022 sort_test.txt
-rw-r--r--. 1 root root 1015 May 23  2022 zp.txt
[root@localhost sed_test]# if [ -d /root/shell_01/sed_test/dirtest ];then echo "yes,is dir";else echo "not";fi
yes,is dir
[root@localhost sed_test]# if [ -f /root/shell_01/sed_test/dirtest ];then echo "yes,is file";else echo "not file";fi
not file
[root@localhost sed_test]#
1.4.4 复杂逻辑判断
参数说明
-a
-o
!
  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值