一、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 判断数字大小
[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 判断变量值
[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 int2 | int1大于int2为真 |
int1 -ge int2 | int1大于等于int2为真 |
int1 -lt int2 | int1小于int2为真 |
int1 -le int2 | int1小于等于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)指定的设备为终端时为真 |
[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 复杂逻辑判断