shell脚本编程进阶

一些常用的编程语句,

过程式编程语言通常分为三种执行方式,分别是

顺序执行

选择执行

循环执行

一、选择执行语句

1)if语句

选择执行:if语句可以是单分支选择,也可以双分支分支选择,还可以多分支选择。而且if语句可嵌套,

单分支

if 判断条件;then

   条件为真的分支

fi

根据判断条件选择是否执行下面的分支,如果符合条件,则执行;若不符合,则跳过。

双分支

if 判断条件;then

条件为真的分支1

else

条件为假的分支2

fi

根据判断条件选择是否执行下面的分支,如果符合条件,则执行分支1;若不符合,则执行分支2。

多分支

if 判断条件1;then

条件为真的分支

elif 判断条件2;then

条件为真的分支

elif 判断条件3;then

条件为真的分支

else

以上条件均不符合的分支

fi

根据判断条件进行判断,当判断条件为真时,执行当前环境下的分支;若判断条件都不符合,则执行最后一个分支

if语句作为选择执行语句经常用于条件判断的情况,可根据不同的条件设计多个分支进行判断。

例题; 编写脚本/root/bin/createuser.sh,实现如下功能:使用一个用户名做为参数,如果指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的id号等信息 。

根据if语句编写了如下脚本

if1

这是一个双分支的if判断语句,利用”id $name”的执行结果来进行判断,如果$?等于0,则说明该用户已创立,执行”echo”命令;若$?不等于0,则说明该用户未创立,则执行”useradd”命令。

执行该脚本,首先输入已存在的用户”zhao”,然后输入为创建的用户”yjj”,显示两种不同的结果。if2

2)case语句

case语句用于多分支的情况,根据变量匹配对应的分支来执行。

case语句格式

case 变量引用 in

par1)

执行分支1

    ;;

pat2)

执行分支2

    ;;

……

*)

执行分支

   ;;

seac

case语句支持通配符写法。

例题: 编写脚本/root/bin/yesorno.sh,提示用户输入yesno,并不区分大小写

case11

case语句支持通配符写法,对变量”ans”进行匹配,当”ans”匹配到无论大写还是小写的”yes””no”都会显示对应的分支,当匹配不到时,就会执行最后的默认分支。

case2

case3

二、循环执行语句

循环执行即将某段代码执行多次,有的语句循环次数已知,即可指定循环多少次;还有循环次数未知的语句,根据进入循环和退出循环的条件来开始或退出循环。

1)for语句

基本格式

for  变量名 in 列表;do 

    循环体

done

通过列表给变量赋值,执行一次循环,当列表内数值用完,结束循环。

列表可通过以下方式生成

1)直接给出

在”in”后直接列出要循环的数值

2)数列

通过{start..end}表示一个集合作为列表

3)用命令生成列表

例如”ls ~root/”命令可显示root家录下文件名。

4)通配符生成列表

例如”*.sh”可显示”sh”后缀文件作为循环列表

5)还可使用变量作为列表

例题: 编写脚本,提示输入正整数n的值,计算1+2+…+n的总和

for1

用”seq”列出1到n的值,循环相加从1加到n,最后输出结果

for2

2)white语句

3)until语句

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/90489

(2)
yoyiccccyoyicccc
上一篇 2017-12-23
下一篇 2017-12-23

相关推荐

  • Linux系统发展史

    引言:     Linux是一类Unix计算机操作系统的统称。Linux操作系统的内核的名字也是“Linux”。Linux操作系统也是自由软件和开放源代码发展中最著名的例子。严格来讲,Linux这个词本身只表示Linux内核,但在实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU 工程各种工具…

    Linux干货 2016-10-19
  • 铭记今天

        2016年10月19日,我做了一个很艰难的决定,选择了马哥24期网络全程班,就算是冲动也好,无论对错都要坚持下去。 从出来工作之后,一直做销售这块,虽然跟电脑有关,但是其中的艰苦只有自己明白。慢慢的年级上来了,手中没有什么技术,做人生活,总觉得少了什么,总觉得自己以后会被社会淘汰,心一天一天着急。在后选择了一个从来都没有涉及的运维…

    Linux干货 2016-10-19
  • linux-第一周

    inux命令:(type)                  1,集成在bash中的命令,内部命令。依赖于shell类型。                  2,在文件系统路径下有…

    Linux干货 2017-05-20
  • vim浅谈

            在Linux的世界里,绝大部分的配置文件都是以ASCII的纯文本形式存在的,所以作为一名优秀的Geek,熟练掌握一种文本编辑辑器是非常重要的。         Linux世界中的文本编辑器有很多…

    Linux干货 2015-04-27
  • 运行级别

    运行级别(Runlevel)指的是Unix或者Linux等类Unix操作系统下不同的运行模式。运行级别通常分为7等,分别是从0到6,但如果必要的话也可以更多。 例如在大多数Linux操作系统下一共有如下7个典型的运行级别: 0 停机,关机 1 单用户,无网络连接,不运行守护进程,不允许非超级用户登录 2 多用户,无网络连接,不运行守护进程 3 多用户,正常启…

    Linux干货 2017-07-10
  • 今天正式加入马帮开启我的学习Linux之路

    3月26日马哥教育30期开学仪式,终于见到了我们的马哥马永亮先生,同时马哥还有前大众点评架构师张Sir以及国内首批通过红帽授权认证讲师(RHCI)的老王给我们新生做了开学演讲。接着我们的宗华老师以及云珍老师对我们平时的学习以及生活做出了各种介绍与规定,还有我们同学之间也进行了相互自我介绍彼此熟悉….

    2018-03-26