Shell脚本应用(if语句的结构)

时间:2021-05-12 19:17:25

1、测试:检测表达式是否成立,成立则返回值为0,否则为非0

方法:

1)test  表达式

2)【 表达式 】

2、文件测试:

-d:是否为目录

-f:是否为文件

-e:是否存在

-r:是否有读取权限

-w:是否有写入权限

-x:是否有执行权限

3、整数值比较:

-eq:等于

-ne:不等于

-gt:大于

-lt:小于

-ge:大于等于

-le:小于等于

4、字符串比较:

=:字符串内容相同

!=:字符串内容不相同

-z:字符串内容为空

5、逻辑测试:

-a或&&:而且,两个条件同时满足才为真,前面的命令执行成功才执行后面的命令

-o或||:或者,一个条件成立即为真

!:否,条件不满足时为真

6、if语句:条件判断语句,成立则执行,否则推出或进行下一个判断,最多执行一次命令

1)单分支:判断一次,成立执行,不成立退出

If 【 条件表达式 】

then

命令

fi

2)双分支:判断一次,成立执行一条命令,不成立执行另一条命令

If 【 条件表达式 】

then

命令1

Else

命令2

fi

3)多分支:判断多次,依次执行

If 【 条件表达式 】

then

命令1

elif 【 条件表达式 】

then

命令2

else 【 条件表达式 】

then

命令3

fi

一、条件测试操作

1、文件测试

(1)测试目录/media是否为目录,$?返回值为0,表示存在此目录。

Shell脚本应用(if语句的结构)

如果$?返回值非0,表示不存在此目录

 Shell脚本应用(if语句的结构)

(2)测试目录是否存在,输出结果更加直观。

输出“yes”表示该目录存在

 Shell脚本应用(if语句的结构)

无“yes”输出表示该目录不存在

 Shell脚本应用(if语句的结构)

2、整数值比较

(1)判断当前已登录的用户数,当超过5个时输出“too many”。

 Shell脚本应用(if语句的结构)

没有出现“too many”说明没有超过5个。

(2)判断当前可用的空闲内存(buffers/cache)大小,当低于2048MB输出具体数值。

Shell脚本应用(if语句的结构)

3、字符串比较

用户输入“yes”或“no”来确认某个任务

 Shell脚本应用(if语句的结构)

4、逻辑测试

判断当前linux系统的内核版本是否大于2.4。

查看内核

 Shell脚本应用(if语句的结构)

判断

Shell脚本应用(if语句的结构)

二、if条件语句

1、单分支if语句

(1)判断挂载点目录,若不存在则自动创建

步骤:首先创建脚本vim  chkmountdir.sh 编辑脚本,赋予x权限并执行(详细脚本如下图)

Shell脚本应用(if语句的结构)

执行并查看

 Shell脚本应用(if语句的结构)

(2)判断当前用户是否为root,如果不是则报错并执行“exit  1”退出脚本,不再执行其他代码。

步骤:编辑一个脚本 vim /opt/chkifroot.sh并切换用户验证

Shell脚本应用(if语句的结构)

创建并切换用户验证

 Shell脚本应用(if语句的结构)

2、双分支if语句

(1)判断目标主机是否存活,显示检测结果

步骤:创建脚本 vim pinghost.sh 

Shell脚本应用(if语句的结构)

赋予x权限并验证,注:本机地址是192.168.1.10

 Shell脚本应用(if语句的结构)

(2)检查vsftpd服务是否运行,若运行则列出监听地址,PID号;否则输出提示“警告,vsftpd服务不可用1”。(插入linux系统安装光盘,安装一下vsftpd软件包)。

启动vsftpd服务(service  vsftpd start),运行一下脚本,查看结果。

停止vsftpd服务(service  vsftpd  stop),运行一下脚本,查看结果。

步骤:编写脚本 vim chkftpd.sh 并且要安装vsftpd服务

Shell脚本应用(if语句的结构)

赋予x权限并验证

 Shell脚本应用(if语句的结构)

3、多分支if语句

(1)根据输入的考试分数不同来区分优秀,合格,不合格三挡。

步骤:编写脚本 vim gradediv.sh

Shell脚本应用(if语句的结构)

赋予x权限并执行

Shell脚本应用(if语句的结构)

文章参考微信公众号:L宝宝聊IT