Shell脚本条件语句

目录

前言

一、条件测试

 ②整数测试

 (3)字符串测试与逻辑测试

     ①字符串测试

 ②逻辑测试

 二、if语句

(1)单分支机构

 (2)双分支结构

(3)多分支结构 

 三、case语句

(1)case语句的结构

 (2)case语句的注意事项

总结



使用最基本的Linux命令写成的Shell脚本往往在使用中会显得笨拙、不够灵活,它往往不能根据服务器实际情况自我做出判断,这个时候我们就可以用条件判断与if语句等方式来帮助我们。

一、条件测试


(1)文件测试与整数测试
①文件测试
要使shell脚本程序具备一定的“智能”,面临的第一个问题就是如何区分不同情况以确定执行何种操作。
测试特定的表达式是否成立,当条件成立,测试语句的返回值为0,否则为其他数值 。
 

格式:
test 条件表达式
或 [ 条件表达式 ] (条件表达式的两边都需要有空格,且此方法更为常用

常见的测试操作符含义
-d测试是否为目录(directory)
-e测试目录或文件是否存在(Exist)
-f测试是否为文件(File)
-r测试当前用户是否有权限读取(Read)
-w测试当前用户是否有权限写入(Write)
-x测试当前用户是否有权限执行(eXcute)
-L测试是否为软连接文件
-nt判断文件A是否比文件B新
-ot判断文件A是否比文件B旧
-et判断两个文件是否为同一文件

 ②整数测试

 ②整数测试

格式:
[ 整数1 操作符 整数2 ]

常见测试操作符:

操作符含义
-eq等于(Equal)
-ne不等于(Not Equal)
-lt小于(Leser Than)
-gt大于(Greater Than)
-le小于或等于(Lesser or Equal)
-ge大于或等于(Greater or Equal)

 (3)字符串测试与逻辑测试

     ①字符串测试

格式:
[ 字符串1 = 字符串2 ] 			#判断是否相等
[ 字符串1 != 字符串2 ] 			#判断是否不等
[ -z 字符串 ]                     #判断字符串内容是否为空
操作符含义
=字符串内容相同
!=字符串内容不同,!号表示相反的意思
-z字符串内容为空

 ②逻辑测试

格式:
[ 表达式1 ] 操作符 [ 表达式2 ]
命令1 操作符 命令2

 二、if语句

(1)单分支机构

单分支if语句:对于单分支的选择结构,只有在“条件成立”时才会执行相应的代码,否则不执行任何操作。

if [ 条件判断式 ]:then
当条件判断成立时,执行命令
if

 (2)双分支结构

if [ 条件判断式 ]; then
当条件判断成立时,可以执行一条或多条命令
else
当条件判断不成立时,可以执行一条或多条命令
fi

(3)多分支结构 

if [ 条件判断式 ]; then
当条件判断成立时,可以执行一条或多条命令
elif [ 条件判断式二 ]; then
当条件判断成立时,可以执行一条或多条命令
else
当上面的条件判断都不成立时,可以执行一条或多条命令
fi

 三、case语句

(1)case语句的结构

格式:
case 变量名称 in
模式1)
	命令序列
    ;;
模式2)
	程序段
	;;
*)
   不包含第一个变量内容与第二个变量内容的其他程序执行段
	默认程序段
    ;;
esa

 (2)case语句的注意事项

  • case行首必须为单词“in”,每一模式必须以单个右括号")"结束
  • 双分号";;"表示命令序列的结束
  • 模式字符串中,可以用方括号表示一个连续的范围,如"[0-9]",还可以用竖杠符号 “|”表示或,如“A|B”。
  • 最后的*)表示默认模式,其中的*相当于通配符

总结

  • 条件测试的语法 (文件测试、整数测试、字符串测试、逻辑测试)
  • if条件语句的语法 (单分支、双分支、多分支)
  • case多分支语法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值