shell编程与条件语句

Posted waldosia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell编程与条件语句相关的知识,希望对你有一定的参考价值。

一、条件测试

1、test命令

作用:测试表达式是否成立,若成立返回0,否则返回其他数值

格式1: test 条件表达式
格式2: [ 条件表达式 ] 

#测试一般用格式2, 中括号两边与条件表达式之间需要至少一个空格进行分隔 

2、文件测试与整数测试

(1)、文件测试

格式:[ 操作符 文件或目录 ] 
常用的操作符 功能
-d 测试是否为目录(Directory)
-e 测试目录或文件是否存在(Exist)
-f 测试是否为文件(File)
-r 测试当前用户是否有权限读取(Read)
-w 测试当前用户是否有权限写入(Write)
-x 测试当前用户是否有权限执行(Excute)
属性测试补充 功能
-s FILE 测试是否存在且非空
-t fd 测试fd文件描述符是否在某终端已经打开
-N FILE 测试文件自从上一次被读取之后是否被修改过
-0 FILE 测试当前有效用户是否为文件属主
-G FILE 测试当前有效用户是否为文件属组

(2)、整数测试

整数测试格式

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

常用的整数操作符:

常用的整数操作符 功能 符号
-eq 等于 ==
-ne 不等于 !=
-gt 大于 >
-lt 小于 <
-le 小于等于
-ge 大于等于

3、字符串测试与逻辑测试

(1)、字符串测试

字符串测试格式:

格式1:
[ 字符串1 = 字符串2 ] 或 [ 字符串1 == 字符串2 ] 
[ 字符串1 != 字符串2 ]

格式2:
[ -z 字符串 ]      #检查字符串是否为空(Zero),对于未定义或赋予空值的变量将视为空串

字符串测试的作用:

  • 字符串可用来查看用户输入、系统环境等是否满足条件

  • 交互式操作的shell脚本中,用来判断用户输入的位置参数是否符合要求

常用字符串测试选项:

常用字符串测试选项 功能
= 第一个字符串与第二个字符串相同
!= 第一个字符与第二个字符串不相同,“!”表示取反
-z 字符串内容为空
-n 字符是否存在

(2)、逻辑测试

逻辑测试的格式:

常用的逻辑测试操作符:

常用的逻辑测试操作符 功能
-a 或 && 逻辑与,“而且“的意思,一假全假,全真才真
-o 或|| 逻辑或,”或者“的意思,一真为真,全假才假
逻辑否,取反

::: hljs-center

三种逻辑测试图解

:::

二、if语句

1、if单分支语句

if单分支语句格式:

格式: 
if 条件测试操作 
 then 
 命令序列 
fi 

2、if双分支语句

if双分支语句格式:

格式:
if 条件测试操作
 then
 命令序列 1
else
 命令序列 2
 fi

3、 if多分支语句

if多分支语句格式:

格式:
if 条件测试操作 1
 then
 命令序列 1
elif 条件测试操作 2
 then
 命令序列 2
 ...
else
 以上条件都为假的命令序列
fi

三、case分支语句

case多分支语句格式:

case 变量值 in
模式 1)
命令序列 1
;;
模式 2)
命令序列 2
;;
* )
默认命令序列
esac

case多分支语句作用:

以上是关于shell编程与条件语句的主要内容,如果未能解决你的问题,请参考以下文章

shell编程之条件语句——if与case

Shell编程之条件语句

shell编程之函数和case多条件分支语句

SHELL脚本编程进阶

shell编程之条件语句

Shell编程之条件语句