bash编程之:流程控制

日期: 2015年09月13日

流程控制

循环语句:for, while, until

循环:将循环体代码执行0、1或多次

进入条件:进入循环的条件

退出条件:循环终止的条件

<<========================================【for循环】========================================>>

for循环:

for VARIABLE in LIST; do

循环体

done

进入条件:列表非空

退出条件:当列表遍历结束

LIST: 是由一个或多个空格或换行符分隔开的字符串组成:

把列表的每个字符串逐个赋值给VARIABLE表示的变量

LIST的生成方法:

(1) 整数列表

(a) {start..end}

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

(2) 直接给出列表

(3) glob

(4) 根据命令生成

示例:

使用for循环添加10个用户,user1-user10

运行脚本测试:

<<======================================【while循环】======================================>>

while循环:

while CONDITION; do

循环体

控制变量的修正表达式

done

进入条件:当CONDITION为"真";

退出条件:当CONDITION为"假";

示例1:

使用while循环求100以内所有正整数之和

运行脚本测试:

示例2:

使用while循环打印九九乘法表

运行脚本测试:

<<======================================【until循环】======================================>>

until循环:

until CONDITION; do

循环体

循环控制变量的修正表达式

done

进入条件:当CONDITION为"假"时

退出条件:当CONDITION为"真"时

示例:

使用until循环求100以内所有正整数之和

运行脚本测试:

<<======================================【循环控制】======================================>>

循环控制:

continue [n]: 提前结束本轮循环,而直接进入下一轮

break [n]: 提前结束循环

使用格式:

while CONDITION; do

if CONDITION2; then

break [n]

fi

done

while CONDITION; do

...

if CONDITION2; then

continue [n]

fi

....

done

死循环:

while ture; do

循环体

if CONDITION; then

break

fi

done

until false; do

循环体

if CONDITION; then

break

fi

done

示例1:

求100以内所有偶数之和

运行脚本测试:

示例2:

给脚本传递一个用户命名,如果该用户登录到该系统,则显示其已登录,如果没有检测到该用户

登录,则显示该用户未登录,休眠3秒后继续检测,如此重复,直到用户登录为止才结束循环。

运行脚本测试:

登录用户:

此时,检测到该用户已登录,则显示用户已登录,然后结束循环

<<======================================【特殊用法】======================================>>

while、for循环的特殊用法

while循环的特殊用法:

遍历文件的每一行:

while read VARIABLE; do

循环体

done < /PATH/FROM/SOME_FILE

示例:

找出UID为偶数的所有用户,显示整行用户信息

运行脚本测试:

for循环的特殊用法:

for ((expr1;expr2;expr3)); do

循环体

done

expr1:定义控制变量,并初始赋值

expr2:循环控制条件

进入条件:控制条件为"真"

退出条件:控制条件为"假"

expr3:修正控制变量

示例:

给变量i赋值=1,在变量i的赋值小于30时,每次往自身+1,直到i的赋值等于30时退出循环,

每一次循环都与数字5相乘,得出以下结果。

时间: 2024-10-04 19:17:15

bash编程之:流程控制的相关文章

《学习bash》笔记--流程控制

bash支持下述流程控制结构: if/else:如果某条件为真/假,执行一个执行列表. for:执行一个语句列表固定次数. while:当某条件为真时重复执行某语句列表 until:重复执行某语句列表直至某条件为真. case:依据一个变量取值执行几个语句列表中的一个. select:允许用户从一个菜单的可选列表中选择一个. 1.if/else 最简单的流程控制结构类型时嵌入在bash的if语句中的条件语句.当选择做或者不做某件事情或者依据条件表达式的真或者假 从数量不多的几个事情里选择一个进行

Linux进阶之bash编程(流程控制-while,break,continue)

在bash编程中,经常会涉及使用while语句,时常处理未知循环次数的情况. while语法 while [ express ] do #command Done 2. 实战练习 提示输入大于10小于20的整数: while1.sh: #!/bin/bash echo -n "please input a digit between 10 and 20:" read n while [ $n -lt 10 ]||[ $n -gt 20 ] do echo -n "please

bash编程之case语句

一.语法格式 case 变量引用(${}) in value1)    #变量的值是value1,则执语句1,语句2,······ 语句1 语句2 ······ ;;    #每个分支结束时都需要以双分号结尾 value2)    #变量的值是value2,则执语句3,语句4,······ 语句3 语句4 ······ ;; value3)    #变量的值是value3,则执语句5,语句6,······ 语句5 语句6 ······ ;; *)    #其他任意情况,则执行语句7,语句8,··

Linux进阶之bash编程(流程控制for循环)

bash脚本里定义后续命令执行日志输出路径 #!/bin/bash logDir=`date +%F` exec &>/tmp/logDir.log       //此次定义后续命令的执行输出日志路径 df -h top for循环 循环允许你重复一段代码固定次数,在循环代码执行期间,一个称为循环变量的特殊变量被赋予了不同的值: for循环很适合处理命令行上的参数以及文件集,for结构的语法如下: for name [in list] do statements done list为名称列表

Linux进阶之bash编程(流程控制if-else)

一:条件判断 if condition then     statements [elif condition     then statements. ..] [else     statements ] fi 整数比较: -lt,小于-le,小于等于-eq,等于-ge,大于等于-gt,大于-ne,不等于 bash脚本调试:bash -x  test.sh 练习: 1:编写一个bash程序,判断带入的参数大小. 2:提示用户输入一个数字,需要验证是否输入纯数字?并判断是奇数还是偶数! 方法1:

bash编程之:case语句、read与用户交互

日期: 2015年09月13日 case语句 case语句:该语句和if并无太大差别,主要作用是使代码的逻辑结构更清晰. case语句可以称为是:简洁版的多分支if语句 使用场景:判断某变量的值是否为多种情形中的一种时使用 case语句的用法格式为: case $VARIALBE in PATTERN1) 分支1 ;;     <================注意:这两个分号不要忘记写,否则语法错误 PATTERN2) 分支2 ;;     <================注意:这两个分号

bash编程之:条件测试

日期: 2015年09月13日 <<========================================[条件测试]========================================>> 条件测试 bash的条件测试主要有以下3类: 整数测试:比较两个整数谁大谁小,是否相等: 字符测试:比较两个字符串是否相等: 文件测试:测试某个文件是否具有读权限.写权限.执行权限等: (1) 根据运行的命令的状态结果判断 (2) 在bash中进行条件测试的方式通常有三种

Linux Bash编程之bash

其实编辑完bash脚本后,可以用过bash -n -x 两个选项进行脚本检查,不一定非要运行程序的时候才发现需要修改脚本. bash不仅有运行脚本的意思. 没有消息就是好消息. 我现在稍微修改下原来的脚本 -n的效果我现在演示不出来,之前是可以直接指出语法错误的 这个是之前的效果. -x 可以将指令和输出内容区分 -v不可以 -x 和 -v都是细致化的命令调试工具,他们 原文地址:http://blog.51cto.com/yueyue207/2090520

bash编程之:函数与数组

日期: 2015年09月13日 <<======================================[函数]======================================>> 函数: function:功能 把一段具有独立功能代码封装在一起,并给予命名:后续用到时, 可直接通过给定函数名来调用整体代码: 函数作用: 1.把相同的程序段定义成函数,可以减少程序代码量 2.增加程序的可读.易读性 3.实现程序的功能模块化 函数的使用方法: 先定义:编写函数代码