bash 的过程式和循环式的编写

       bash脚本的编写,对于Linux这个多用户,多任务的系统,有很大的帮助,脚本可以帮助我们定时执行任务,过滤文本,检查系统性能等等。下面我们来了解一下过程式和循环式脚本的编写。

使用read 命令来接受输入

使用read 来把输入值分配给一个或多个shell 变量:

    -p 指定要显示的提示

    -t TIMEOUT

read 从标准输入中读取值,给每个单词分配一个变量,所有剩余单词都被分配给最后一个变量。

read -p “Enter a filename: “ FILE

过程式编程语言分为三种:1.顺序执行 2.选择执行 3.循环执行

条件选择if 语句

    选择执行:

    注意:if 语句可 嵌套

    单分支

        if  判断条件:then

            条件为真的分支代码

        fi

    双分支

        if  判断条件; then

            条件为真的分支代码

        else

            条件为假的分支代码

        fi

    多分支

        if  CONDITION1 ; then

            if-true

        elif CONDITION2 ; then

            if-true

        elif CONDITION3 ; then

            if-true

            …

        else

            all-false

        fi

逐条件进行判断,第一次遇为“真”条件时,执行其分支,而后结束整个if 语句。

if 实例

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

bash 的过程式和循环式的编写

条件判断:case 语句

case 变量引用 in

PAT1)

    分支1

    ;;

PAT2)

    分支2

    ;;

…

*)

    默认分支

    ;;

esac

case 支持glob 风格的通配符:

*:  任意长度任意字符

?:  任意单个字符

[] :指定范围内的任意单个字符

a|b:  a或b

case 实例

1,写一个脚本/root/bin/yesorno.sh ,提示用户输入yes或no, 并判断用户输入的是yes还是no,

bash 的过程式和循环式的编写

bash 的过程式和循环式的编写

循环执行:将某代码段重复运行多次

    重复运行多少次:

        循环次数事先已知

        循环次数事先未知

    有进入条件和退出条件

分为三种:for, while, until

for 循环

for  变量名 in  列表;do    (for的变量名可以不用加$符号)

    循环体

done

执行机制 : 依次将列表中的元素赋值给“变量名“; 每次赋值后即执行一次循环体;  直到列表中的元素耗尽,循环结束。

列表生成方式:

    (1)  直接给出列表

    (2)  整数列表:

        (a) {start..end}

        (b) $(seq [start [step]] end)

    (3)  返回列表的命令

        $(COMMAND)

    (4)  使用glob,如:*.sh

    (5)  变量引用;

        $@, $*

for实例

1,用for编写一个99乘法表。

bash 的过程式和循环式的编写

bash 的过程式和循环式的编写

while 循环

while CONDITION; do

    循环体

done

CONDITION :循环控制条件;进入循环之前,先做一次判断;每一次循环之后会再次做判断;条件为“true",则执行一次循环;直到条件测试状态为“false”终止循环.

因此:CONDTION 一般应该有循环控制变量;而此变量的值会在循环体不断地被修正

进入条件:CONDITION 为true;(真)

退出条件:CONDITION 为false ;(假)

while实例

1,用while编写一个99乘法表。

bash 的过程式和循环式的编写

bash 的过程式和循环式的编写

until 循环

until CONDITION; do

    循环体

done

进入条件: CONDITION  为false (假)

退出条件: CONDITION  为true(真)

until示例:

 1、随机生成10 以内的数字,实现猜字游戏,提示比较大或小,相等则退出

bash 的过程式和循环式的编写

bash 的过程式和循环式的编写

循环控制语句continue :用于循环体中

continue [N] :提前结束第N 层的本轮循环,而直接进入下一轮判断;最内层为第1层。

while CONDTIITON1; do

    CMD1

    …

    if CONDITION2; then

        continue

    fi

    CMDn

    …

done

bash 的过程式和循环式的编写

bash 的过程式和循环式的编写

循环控制语句break:用于循环体中

break [N] :提前结束第N 层循环, 最内层为第1层。

while CONDTIITON1; do

    CMD1

    …

    if CONDITION2; then

        break

    fi

    CMDn

    …

done

bash 的过程式和循环式的编写

bash 的过程式和循环式的编写

循环控制语句exit:用于循环体中

exit :直接结束整个循环,后面的不再执行。

bash 的过程式和循环式的编写

bash 的过程式和循环式的编写

创建无限循环

while true; do

    循环体

done

bash 的过程式和循环式的编写

bash 的过程式和循环式的编写

until false; do

    循环体

Done

bash 的过程式和循环式的编写

bash 的过程式和循环式的编写

原创文章,作者:AN0519,如若转载,请注明出处:http://www.178linux.com/38874

赞 (0)
AN0519AN0519
上一篇 2016-08-24 21:21
下一篇 2016-08-24 21:21

相关推荐

  • MySQL 字符集乱码及解决方案

    1、简介         字符集是一套符号和编码的规则,不论是在oracle数据库还是在mysql数据库,都存在字符集的选择问题,而且如果在数据库创建阶段没有正确选择字符集,那么可能在后期需要更换字符集,而字符集的更换是代价比较高的操作,也存在一定的风险,所以,我们推荐在应用开始阶段,就按…

    Linux干货 2015-09-27
  • 文本处理-vim编辑器

    命令格式、(1)模式、(2)关闭文件、(3)可视化模式、(4)使用多个“窗口”、(5)定制vim的工作特性、(6)示例

    2018-03-13
  • N22-第六周博客作业

    请详细总结vim编辑器的使用并完成以下练习题 1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#; # cp /etc/rc.d/rc.sysinit /tmp # vim /tmp/rc.sysinit …

    Linux干货 2016-09-26
  • 马哥教育网络班21期+第5周课程练习

    1、显示/boot/grub/grub.conf中以至少一个空白字符开头的行; [root@centos ~]# grep "^[[:space:]]\+" /boot/grub/grub.conf  root (hd0,0) kernel /vmlinuz-2.6.3…

    Linux干货 2016-07-29
  • 马哥教育网络19期+第十七周课程练习

    1、结合图形描述LVS的工作原理;     LVS (Linux Virtual Server)是一种集群(Cluster)技术,采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结…

    Linux干货 2016-09-05
  • MairaDB之基于openssl的主从复制

    一、配置openssl   1、   在master server(node0)上根CA的搭建(及生成自签名证书) [root@node0 ~]# cd /etc/pki/CA/ [root@node0 CA]# (umask 077;openssl genrsa -out private/cakey.pem 2048) Gen…

    2014-10-03