Shell脚本应用(if语句的结构)
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,表示存在此目录。

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

(2)测试目录是否存在,输出结果更加直观。
输出“yes”表示该目录存在

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

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

没有出现“too many”说明没有超过5个。
(2)判断当前可用的空闲内存(buffers/cache)大小,当低于2048MB输出具体数值。

3、字符串比较
用户输入“yes”或“no”来确认某个任务
4、逻辑测试
判断当前linux系统的内核版本是否大于2.4。
查看内核
判断

二、if条件语句
1、单分支if语句
(1)判断挂载点目录,若不存在则自动创建
步骤:首先创建脚本vim chkmountdir.sh 编辑脚本,赋予x权限并执行(详细脚本如下图)

执行并查看

(2)判断当前用户是否为root,如果不是则报错并执行“exit 1”退出脚本,不再执行其他代码。
步骤:编辑一个脚本 vim /opt/chkifroot.sh并切换用户验证

创建并切换用户验证

2、双分支if语句
(1)判断目标主机是否存活,显示检测结果
步骤:创建脚本 vim pinghost.sh

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

(2)检查vsftpd服务是否运行,若运行则列出监听地址,PID号;否则输出提示“警告,vsftpd服务不可用1”。(插入linux系统安装光盘,安装一下vsftpd软件包)。
启动vsftpd服务(service vsftpd start),运行一下脚本,查看结果。
停止vsftpd服务(service vsftpd stop),运行一下脚本,查看结果。
步骤:编写脚本 vim chkftpd.sh 并且要安装vsftpd服务

赋予x权限并验证

3、多分支if语句
(1)根据输入的考试分数不同来区分优秀,合格,不合格三挡。
步骤:编写脚本 vim gradediv.sh

赋予x权限并执行

文章参考微信公众号:L宝宝聊IT
Shell脚本应用(if语句的结构)的更多相关文章
- shell 脚本之判断语句 if 详解
使用 Linux 系统这么长时间,对 shell 脚本也算是比较熟悉.其实不管是搞开发,还是搞运维,shell 脚本都是必备的基本技能.这次抽时间好好总结一下 shell 方面的知识,综合的再学习一下 ...
- shell脚本-循环选择语句
shell脚本-循环选择语句 过程式编程语言: 顺序执行 选择执行 循环执行 注:条件中的变量,可以在执行语句中使用,不用在加上"$". if语句 根据命令的退出状态来执行命令 单 ...
- Linux Shell脚本编程while语句
Linux Shell脚本编程while语句案例 1,每隔3秒,打印一次系统负载 #!/bin/bash while truedo uptime sleep 3done 2,把监控结果保存 ...
- shell脚本之循环语句与函数
shell脚本之循环语句与函数 echo的用法: echo -n #表示不换行输出 echo -e #输出转义字符,将转义后的内容输出到屏幕上 转义字符: \n :换行,被输出的字符从"\n ...
- shell脚本之if语句
一.前言 结构化编程中,主要有三种结构:顺序.分支.循环.由此可见分支判断的重要性. 而且在shell编程中往往会遇到进行判断的情况,比如:判断文件是否存在.目录是否存在等等. 二.if语句的结构 i ...
- 《linux就该这么学》第五节课,shell脚本的各种语句!
第四章shell语句 (据课本和虚拟机实验排版,借鉴请改动) 4.2:shell脚本 脚本包括:脚本声明,脚本注释,脚本内容和命令 例:#!/bin/bash ...
- shell脚本、if语句、for循环语句
shell在shell脚本中,如果用户不输入东西,系统不自动退出,this is a bug!文件测试语句:-d -f -r -w -x -e逻辑测试语句:“&&”与(同时满足) “| ...
- shell脚本的if语句,判断某程序是否存在,不存在启动该程序!
想必大家都知道 "如果......那么......" 这种语法的应用吧! 当然呢,linux下对于这种用法也是有所考虑的,很多时候我们都需要写一个shell脚本,难免会避免if语句 ...
- shell脚本if判断语句报错[: too many arguments的两种原因
shell脚本,if判断语句报错[: too many arguments 我遇到过两种情况: 1.第一中情况就是网上大家说的,字符串变量中可能存在空格,shell解析时将其认为是多个参数,再进行判断 ...
- Shell脚本中循环语句for,while,until用法
循环语句: Bash Shell中主要提供了三种循环方式:for.while和until. 一.for循环 for循环的运作方式,是讲串行的元素意义取出,依序放入指定的变量中,然后重复执行含括的命令区 ...
随机推荐
- Android并发编程 原子类与并发容器
在Android开发的漫漫长途上的一点感想和记录,如果能给各位看官带来一丝启发或者帮助,那真是极好的. 前言 上一篇博文中,主要说了些线程以及锁的东西,我们大多数的并发开发需求,基本上可以用synch ...
- SpringCloud学习1-服务注册与发现(Eureka)
由于样式兼容性问题,本文后半部分被截断,可到个人博客找到本文: https://blog.rmiao.top/springcloud-eureka/ 前言 Oracle转让Java,各种动态语言的曝光 ...
- 内核知识第六讲,内核编写规范,以及获取GDT表
内核知识第六讲,内核编写规范,以及获取GDT表 一丶内核驱动编写规范 我们都知道,在ring3下,如果我们的程序出错了.那么就崩溃了.但是在ring0下,只要我们的程序崩溃了.那么直接就蓝屏了. 那么 ...
- github总结(3)--怎样在github上面实现页面托管
part Ⅱ:gh-pages分支--实现页面托管 第一步:在github线上创建一个新的仓库 第二步:在项目本地地址,git init初始化,再git add --all进行文档追踪添加 第三步:g ...
- phpstorm配置Xdebug进行调试
运行环境: PHPSTORM版本 : 8.0.1 PHP版本 : 5.6.2 xdebug版本:php_xdebug-2.2.5-5.6-vc11-x86_64.dll ps : php版本和xdeb ...
- js获取带#号链接后的参数
现在许多的主流网站都将'#'大规模用于重要URL中,我们通过正则表达式和window.location.search获取参数已经行不通了. 一.'#'号是什么 1.#代表网页中的一个位置.其后面的字符 ...
- Topshelf 学习 跨平台【转载】
Topshelf 学习 跨平台 Topshelf是一个开源的跨平台的宿主服务框架,支持Windows和Mono,只需要几行代码就可以构建一个很方便使用的服务宿主. 官网:http://topshe ...
- C# 类相同属性赋值
做项目时偶尔B类赋值给A类,碰巧A和B类型很多属性字段名是一样的,或者只是大小写不一样,这是可以利用泛型,反射来写一个自动化赋值的方法. 下面方法不考虑大小写不一样的情况,如果要考虑,可以使用字符串方 ...
- Hive原理总结(完整版)
目录 课程大纲(HIVE增强) 3 1. Hive基本概念 4 1.1 Hive简介 4 1.1.1 什么是Hive 4 1.1.2 为什么使用Hive 4 1.1.3 Hive的特点 4 1.2 H ...
- 【RabbitMQ】3、win7下安装RabbitMQ
RabbitMQ依赖erlang,所以先安装erlang,然后再安装RabbitMQ; erlang,下载地址:http://www.erlang.org/download RabbitMQ,下载地址 ...