(十五)、shell脚本之简单控制流结构
一、基本的控制结构
1、控制流
常见的控制流就是if、then、else语句提供测试条件,测试条件可以基于各种条件。例如创建文件是否成功、是否有读写权限等,凡是执行的操作有失败的可能就可以用控制流,注意控制流的真为0,假为1。
- 单层if语句
if 条件;then if 条件
命令 或 then 命令
fi fi
if后跟条件,如果条件为真,执行then后面的命令,而then必须放在新行,fi结束控制流,可以理解为endif;我们更推荐第一种写法,这样可以更加增强代码的可读性,使得代码层次更加清晰,下面的例子简单阐述if...else语句。
举例:$ vim simple_if
#!/bin/sh
if [ "159" -lt "520" ]; then
echo "yes, 159 is less then 520"
fi
- 输入变量测试
通过测试设置为接受用户输入的变量可以测知用户是否输入信息,下面的例子中测试用户键入 enter后变量addr的值是否包含任何信息。
$ vim iftest2
#!/bin/sh
echo "Enter your addr:"
read ADDR
if [ "$ADDR" = "" ]; then
echo "you did not enter any information"
fi
- grep输出检查
对grep使用if语句找出grep是否成功返回信息
#!/bin/sh
if grep "liming" name.file > /tmp/null 2>&1; then
echo "liming is in the file"
else
echo "no liming is not in the file"
fi
2、if...else语句
if 条件;then
命令1
else
命令2
fi
检查运行脚本的用户,环境变量用作测试条件,即LOGNAME是否包含root值,这类语句是加在脚本开头作为安全性准则的普遍方法,
#!/bin/sh
if [ "$LOGNAME" != "root" ]; then
echo "you need to be root to run this script" > &2
exit 1
else
echo "yes indeed you are $LOGNAME proceed"
fi
(十五)、shell脚本之简单控制流结构的更多相关文章
- 学习笔记:CentOS7学习之二十:shell脚本的基础
目录 学习笔记:CentOS7学习之二十:shell脚本的基础 20.1 shell 基本语法 20.1.1 什么是shell? 20.1.2 编程语言分类 20.1.3 什么是shell脚本 20. ...
- jenkins自动部署应用到tomcat中,编译后shell脚本的简单示例
jenkins的安装这里就不做描述了,很简单的 百度搜索一下即可 这里安装的jenkins-2.39-1.1 wget http://pkg.jenkins-ci.org/redhat/jenkin ...
- Shell脚本,简单& 强大
摘自<码农增刊Linus与Linux>,章节:你可能不知道的Shell. 最近阅读完这本书,觉得其中有很多不错的内容,这是其中的一个Shell小甜点,拿来和大家一起分享一下,增加了 ...
- 实验五 shell脚本编程
项目 内容 这个作业属于哪个课程 课程链接 这个作业的要求在哪里 作业要求 学号-姓名 17041428-朱槐健 作业学习目标 1. 了解shell脚本的概念及使用 2.掌握shell脚本语言的基本语 ...
- 实验五shell脚本编程
项目 内容 这个作业属于哪个课程 <班级课程的主页链接> 这个作业的要求在哪里 作业要求链接地址 学号-姓名 17043220-万文文 作业学习目标 1)了解shell脚本的概念及使用.2 ...
- 学以致用十九-----shell脚本之引号
shell脚本中引号也是有讲究的. 可以分为单引号‘ ’,双引号“ ”和 反引号 ` ` 具体区别来看一个例子 输出结果 可得出结论 1. 单引号括起来的字符都作为普通字符出现,如第4,7,10,13 ...
- salesforce零基础学习(八十五)streaming api 简单使用(接近实时获取你需要跟踪的数据的更新消息状态)
Streaming API参考链接: https://trailhead.salesforce.com/en/modules/api_basics/units/api_basics_streaming ...
- 编写SHELL脚本--编写简单脚本
1.简单脚本文件hello.sh,内容如下 #!/bin/bash pwd ls -al 执行脚本:bash hello.sh 或者使用root命令: ./hello.sh 2.接受用户参数 $0 ...
- 学以致用十八-----shell脚本之基础概念及变量
1.脚本脚本,说了很多年的脚本,一直都没怎么弄明白为什么叫脚本,还仅仅是script翻译过来的?今天再查看翻译,查阅了资料,对脚本有了个新的认识. script也叫剧本,脚本---剧本,像剧本一样,让 ...
随机推荐
- Java基础教程——多态
直观地说,多态就是"一个对象,多种形态 ".比如观世音菩萨就有多种形态-- 每个人都有多种形态-- 具体地讲,多态是指"同一个对象.同一个方法(函数),表现出不同的行为& ...
- FL Studio——电音编曲人的奠基石
随着近年来摇滚.电音的发展,越来越多的人开始对电子音乐编曲感兴趣,而电音编曲的首要条件,就是需要一个好的DAW(数字音频工作站),常用的DAW有很多,例如Cubase.Nuendo.Pro Tools ...
- 知识解析:C语言函数有一些什么?为你呈现最全函数大全
大家双节快乐呀~国庆节过去了一半,大家放了几天假呀?玩的开心吗? 如果假日没有其他安排,不要宅在家虚度光阴哦~看看我的文章或者视频学习一些知识吧~ 今天为大家分享C语言库函数知识. 以下图片以字母 ...
- mysql建表和建数据库语句
一.数据库操作语言 数据库在操作时,需要使用专门的数据库操作规则和语法,这个语法就是 SQL(Structured Query Language) 结构化查询语言. SQL 的主要功能是和数据库建立连 ...
- 2017 Mid Central Regional G. Faulty Robot(dfs + 尬模)
这道题看上去太像tarjan缩点了,我一上去本来想把所有的环给缩掉然后统计答案,后来发现哦,这道题不是这么回事儿. 给出黑边红边,一次性走至多只能走一次黑边,问有多少个点可以走到,并且让机器人停下来, ...
- java并发编程实战《五》死锁
一不小心就死锁了,怎么办? 在上一篇文章中,我们用 Account.class 作为互斥锁,来解决银行业务里面的转账问题,虽然这个方案不存在并发问题,但是所有账户的转账操作都是串行的,性能太差. 向现 ...
- 第8.19节 使用__doc__访问Python文档字符串(DocStrings )
__doc__特殊变量用于查看类.函数.模块的帮助信息,这些帮助信息存放在文档字符串中. 一. 关于文档字符串 关于文档字符串前面很多章节提到过,DocStrings 文档字符串用于程序的文档说明,并 ...
- 第8.31节 Python中使用__delattr__清除属性数据
一. 引言 在前面几节我们介绍了__ getattribute__方法和__setattr__方法,分别实现了实例属性的查询和修改(含定义即新增),作为Python中数据操作必不可少的三剑客get.s ...
- PyQt(Python+Qt)学习随笔:model/view架构中的QStringListModel
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.QStringListModel介绍 QStringListModel是Qt提供的一个已经实现Q ...
- 如何设置10px
chrome浏览器小于12px字体默认显示12px? font-size:10px: -webkit-transform:scal(0.83):