shell编程中的条件语句

一、条件测试

1.1文件测试

test 测试文件的表达式 是否成立

格式1:test [操作符选项] 条件表达式

格式2:[  [操作符] 条件表达式  ]

操作符作用
-d 测试是否为目录
-e 测试目录或文件是否存在
-f 测试 指定的对象是否为文件;指定的文件是否存在
-L 测试文件是否为符号链接(软链接文件)
-r 测试 当前用户是否有读权限
-w 测试 当前用户是否有写权限
-x 测试 当前用户是否有执行权限

 

 

属性测试 作用
-t fd fd 文件描述符是否在某终端已经打开
-s FILE 是否存在且非空
-N FILE 文件自从上一次被读取之后是否被修改过
-O FILE 当前有效用户是否为文件属主
-G FILE 当前有效用户是否为文件属组
  • test [操作符选项] 条件表达式

 

 

  • [  [操作符] 条件表达式  ] 

 

 1.2、整数数值比较

  • -eq:等于(Equal)
  • -ne:不等于(Not Equal)
  • -gt:数大于(Greater Than)
  • -lt:小于(Lesser Than)
  • -le:小于或等于(Lesser or Equal)
  • -ge:大于或等于(Greater or Equal)

1.3、字符串比较

常用的测试操作符

  • =:字符串内容相同
  • !=:字符串内容不同,! 号表示相反的意思
  • -z:字符串内容为空
  • -n: 字符是否存在

1.4、逻辑测试

短路与:全真得真,一假全假
( cmd1 && cmd2 )
cmd1为真才有必要执行cmd2
cmd1为假就不用验证cmd2

短路或:有真得真,全假得假
cmd1 || cmd2
cmd1为真,也就不需要验证cmd2了
cmd1为假 才需要验证cmd2 判断整个式子的真假

两者只有一种组合:
cmd1 && cmd2 || cmd3 即(与在前或在后)

二、if语句

2.1、单分支

格式:

if  [ 条件判断式 ]; then

当条件成功执行命令

fi

实例操作:

 1 [root@localhost ~]# vim shu.sh
 2  
 3 #!/bin/bash
 4 if [ 1 -lt 3 ];
 5 then
 6 echo yes
 7 fi
 8  
 9 [root@localhost ~]# bash shu.sh
10 yes

 

2.2、多分支

格式:

if  [ 条件判断式 ]; then

当条件成功执行命令

else

当条件成功执行命令

fi

实例操作:

 1 [root@localhost ~]# vim ji.sh
 2 #!/bin/bash
 3 read -p "请输入分数:" t
 4 if [ $t -ge 0 -a $t -le 59 ];
 5 then echo "不及格"
 6 elif [ $t -ge 60 -a $t -le 70 ];then
 7 echo "及格"
 8 else
 9 echo "良好和优秀"
10 fi
11  
12 [root@localhost ~]# bash ji.sh
13 请输入分数:14
14 不及格

 

三、case语句

case多分支语句针对变量的不同取值,分别执行不同的命令序列

case语句:适用于判断某一个固定值,固定字符串

案例

 1 [root@localhost ~]# vim key.sh
 2 #!/bin/bash
 3 read -p "请输入一个键:" key
 4 case $key in
 5         [0-9])
 6                 echo "你敲击的是一个数字"
 7                 ;;
 8         [a-z]|[A-Z])
 9                 echo "你敲击的是一个字母"
10                 ;;
11         *)
12                 echo "你敲击的是一个符号或功能键"
13 esac
14  
15 [root@localhost ~]# bash key.sh
16 请输入一个键:z
17 你敲击的是一个字母

 

posted @ 2022-10-31 15:13  赵哈哈#  阅读(75)  评论(0编辑  收藏  举报