自动化运维必须要学的shell脚本---------条件语句的详细解读

一.条件语句

1.test命令

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

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

实例:比较整数的大小是否正确

判断目录是否存在

test模块提供了在if-then语句中测试不同条件的途径,如果test命令中列出的条件成立,test命令就会退出并返回状态码0,这样if-then语句就与其他编程语言中的if-then语句以类似的方式工作了,如果条件不成立,test命令就会退出并返回非零的退出状态码,这使得if-then语句不会再被执行。

2.文件测试

常用的测试操作符

-d: 测试是否为目录(Directory)

-e: 测试目录或文件是否存在(Exist)

-f: 测试是否为文件(File)

 -r: 测试当前用户是否有权限读取(Read)

 -W: 测试当前用户是否有权限写入(Write)

-X: 测试当前用户是否有权限执行(eXcute)

-L: 测试是否为符号链接

 3.整数值比较

1.格式:[ 整数1 操作符 整数2 ]
2.常用的测试操作符

  • -eq∶ 等于(Equal)
  • -ne∶ 不等于(Not Equal)
  • -gt∶ 大于(Greater Than)
  • -It∶ 小于(Lesser Than)
  • -le∶ 小于或等于(Lesser orEqual)·
  • -ge∶ 大于或等于(Greateror Equal)
  •    实例:查询当前目录下的文件数是否大于10,如果大于,则进行提示。

实例:查看系统内存是否低于1024M,如果低于则提示。

4.字符串比较

1.格式:

            [ 字符串1 = 字符串2 ] #判断是否相等
            [ 字符串1 != 字符串2 ] #判断是否不等


2.常用的测试操作符

             =∶ 字符串内容相同
             !=∶ 字符串内容不同,!号表示相反的意思
             z∶字符串内容为空
实例:判断当前系统语言环境是否为“us.en”,如果不是则提示。

实例:测试用户输入的是否为yes,如果是的话,则进行文件覆盖(这里仅代表输出问文本覆盖,并不是实际操作,实际操作需要写执行命令)

5.逻辑测试

1.格式:

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

2.常用的测试操作符

  • -a或&&∶ 逻辑与,"而且"的意思
  • -o或||∶ 逻辑或,"或者"的意思
  • !∶

6.if语句

6.1 单分支结构

如果只有一个判断式要进行,那么我们可以使用单分支的if语句

1.格式:

if [ 条件判断式 ]; than
	当条件判断成立时,可以进行的命令工作内容
fi 					#这里将if反过来写,结束if语句的意思

 

实例:使用单分支if语句判断test文件是否存在

6.2 双分支结构

 

在同一个数据的判断中,如果该数据需要进行两种不同的判断,我们就需要双分支if语句了:

1.格式:

if [ 条件判断式 ]; than

当条件判断成立时,可以进行的命令工作内容

else

当条件判断不成立时,可以进行的命令工作内容

fi

 

2.原理图

 

 

实例:判断用户输入的是否为yes

6.3 多分支结构

如果数据需要进行多种不同的判断,则可以使用多分支结构
1.格式:

if [ 条件判断式 ]; than

当条件判断成立时,可以进行的命令工作内容

elif [ 条件判断式二 ]; than

当条件判断成立时,可以进行的命令工作内容

else

当上面的条件判断都不成立时,可以进行的命令工作内容

fi

2.原理图:

实例:判断用户输入的为yes还是no,或者是其他错误情况。

7. case语句结构

1.格式:

case 变量名称 in

“第一个变量内容” 程序段

;;

“第二个变量内容” 程序段

;;

*

不包含第一个变量内容与第二个变量内容的其他程序执行段

默认程序段

;;

esac

案例:判断用户掌握哪一种编程语言。

 

posted @ 2021-07-18 13:59  lyaeq  阅读(472)  评论(0编辑  收藏  举报