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 17:25
下一篇 2017-12-23 19:06

相关推荐

  • 第二周 N28

    作业二

    2017-12-10
  • 第10天:程序包,脚本,sed

    http://note.youdao.com/yws/public/redirect/share?id=b9432a76ff1180b42e01f6eb7c9fc90e&type=false

    Linux干货 2016-08-18
  • 密钥和公钥

    安全协议和搭建CA

    Linux干货 2018-01-09
  • 倒排索引-搜索引擎的基石

    1.概述       在关系数据库系统里,索引是检索数据最有效率的方式,。但对于搜索引起,他它并不能满足其特殊要求:       1)海量数据:搜索引擎面对的是海量数据,像Google,百度这样大型的商业搜索引擎索引都是亿级甚至几千的网页数量 ,面对…

    Linux干货 2015-12-10
  • 高级文件系统管理(swap,RAID,LVM)

    交换分区wasp swap文件系统:     linux上的交换分区必须使用独立的文件系统;         其文件系统的system ID必须为82 创建swap设备,文件系统,使用mkswap命令 创建步骤:   &…

    Linux干货 2016-08-30
  • 正则表达式及文本处理

    正则表达式及文本处理 通俗点说,正则表达式就是处理字符串的方法,更加快速简洁的代表各个要求参数,一般用于描述字符排列和匹配模式的一种语法规则,通过正则表达式一些特殊符号的辅助,让用户轻易的查找、删除、替换一些字符串的处理程序。( ps:正则表达式和通配符不一样,通配符代表的是bash接口的一个功能,但正则表达式是一种字符串处理的表达方式,两者一定要分清楚。)…

    2017-06-11