while循环详解

·练习:写一个脚本,完成以下功能

    说明:此脚本能与同一个repo文件中完成多个yum源指向

    1,接收一个文件名作为参数,此文件存放在/etc/yum.repos.d目录中,且文件名以.repo作为后缀;但是此文件不能存在,否则,显示错误信息

    2,在脚本中提醒用户输入repo id,如果用户输入quit,则退出脚本;否则,继续完成下面步骤

    3,提示用户输入repo name以及baseurl,而后以repo文件的格式将其保存至文件中

    4,enabled默认为1,而gpgcheck默认为0

    5,此脚本会循环执行多次,除非用户指定repo id为quit

  脚本内容:

    wKiom1fs5zHTuR85AABMuY9spno670.png

  脚本执行结果:

    wKiom1fs55Ogx00KAAA0Zfi3j_A728.png

·循环的控制方法

    1,for循环->循环次数已知的循环

    2,until循环->直到型循环,相当于C语言中的cotinue

    3,while循环->当型循环

        while循环有两种特殊用法:

            ->死循环

                while :;do

                ...

                done

            ->将标准输入的中间的数据逐行依次读取进LINE变量中

                while read LINE;do

                ...

                done < /path/to/somefile

  练习:写一个脚本,

    将/etc/passwd文件中默认shell为bash的用户名依次输出

       脚本内容:

        wKiom1ftGdiABMz2AAAgUyiu45o720.png

       脚本执行结果:

        wKiom1ftGerwKiltAAAM7lBrhlY732.png

·循环的两个常用的控制关键词

    ->break:实现提前退出循环

        练习:求1-1000的所有整数和,当和大于10000就退出循环

        脚本内容:

        wKiom1ftHG_yzxgtAAAeEqNhP6w382.png

        脚本执行结果:

        wKioL1ftHJTiF-fOAAAHYN4V2Ss866.png

        练习:写一个死循环,要求用户输入文件名,直到用户输入quit,则退出循环

        脚本内容:

        wKiom1ftHeuwA9c-AAAW6_nxQTU815.png

        脚本执行结果:

        wKiom1ftHgyDt7kLAAAM2c-_7u8593.png

    ->continue:实现提前结束本轮循环,从而提前进入下一轮循环

        练习:求1-100以内的奇数和

            脚本内容:

            wKioL1ftH0WCGObDAAAeALpRk-0004.png

            脚本执行结果:

            wKiom1ftH1nxF9kaAAAGjj8SSBg975.png


练习:写一个脚本,要求

        1,能够接受一个参数

        2,判断一个指定的bash脚本是否有语法错误,如果有,则提示用户可以输入Q或q无视错误退出脚本,而其他任何按键都可以重新打开该文件并进行编辑

        3,如果用户在编辑完成并保存退出后脚本仍然有错误,则重复第一步中的内容,否则,就正常关闭退出脚本

        温故:bash -n命令可以用来判断脚本是否具有语法错误


    脚本内容:

        wKioL1ftI6ihZeBfAAAs6K0d_KA384.png

    脚本执行结果:

        wKioL1ftI9aCNCl7AAAOSh8JoRo731.png