1.for循环结构

for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done

 例如,顺序输出当前列表中的数字:

#!/bin/bash
for loop in 1 2 3 4 5 6
do
echo "the loop valus is :$loop"
done

例如,顺序输出字符串中的字符:

#!/bin/bash
for str in 'This is a string'
do
echo $str
done  

输出结果是:This is a string

2.while循环结构

while condition
do
command
done

以下是一个基本的while循环,测试条件是:如果 a 小于等于5,那么条件返回真。int 从 0 开始,每次循环处理时,int 加 1。运行上述脚本,返回数字 1 到 4,然后终止。

#!/bin/sh
a=1
while [ $a -lt 5 ]
do
echo $a
let "a++"
done

 运行脚本,输出:

1
2
3
4  

 

无限循环例子:

#!/bin/bash
a=1
while true
do
echo "infinite loop $a"
((a++))
done

3.case循环语句

Shell case 语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下:

case 值 in
模式1)
command1
command2
...
commandN
;;
模式2)
command1
command2
...
commandN
;;
*)
command1
....
commandN
;;
esac

case 语句取值后面必须为单词 in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。case 语句使用 esac 作为结束标志。

下面的脚本提示输入1到5,与每一种模式进行匹配:

#!/bin/bash
#author:wenhewen
while true
do
echo "输入1-5之间的数字"
echo "你输入的数字是:"
read num
case $num in
1) echo "你输入的数字是:1"
;;
2) echo "你输入的数字是:2"
;;
3) echo "你输入的数字是:3"
;;
4) echo "你输入的数字是:4"
;;
5) echo "你输入的数字是:5"
;;
*) echo "你没有输入1-5的数字!"
;;
esac
done

4.跳出循环:continue/break

在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,Shell使用两个命令来实现该功能:break 和 continue。

break 命令允许跳出所有循环,这将终止执行后面的所有循环。

下面的例子中,脚本进入死循环直至用户输入数字大于5。要跳出这个循环,返回到shell提示符下,需要使用break命令。

#!/bin/bash
while :
do
echo "请输入1-5之间的数字:"
read num
case $num in
1|2|3|4|5) echo "你输入的数字是:$num"
;;
*) echo "你输入的数字不是1-5"
echo "游戏结束"
break
;;
esac
done  

输出结果:

continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。break是跳出整个循环。


 

shell循环结构解析:for/while/case的更多相关文章

  1. For,while,case,shell循环结构

                                                                For,while,case,shell循环结构 案例1:使用for循环结构 案 ...

  2. shell 循环结构

    前言 循环结构在编程中十分常见,也是程序中是较为重要的一部分,在bash中有 for,until,while 这三种语句可以进行重复执行部分程序流程,下面会进一步讨论这三个指令的使用以及注意事项 fo ...

  3. Shell基础(三):使用for循环结构、使用while循环结构、基于case分支编写脚本、使用Shell函数、中断及退出

    一.使用for循环结构 目标: 本案例要求编写一个Shell脚本chkhosts.sh,利用for循环来检测多个主机的存活状态,相关要求及说明如下: 1> 对192.168.4.0/24网段执行 ...

  4. shell的编程结构体(函数、条件结构、循环结构)

    bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 1.1 shell函数 在shell中,函数可以被当作命令一样 ...

  5. shell条件控制和循环结构

    一.简介 Shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式,有三种常用的循环语句:for.while和until.while循环和for循环属于“当型循环”,而until属于“直到 ...

  6. centos shell脚本编程2 if 判断 case判断 shell脚本中的循环 for while shell中的函数 break continue test 命令 第三十六节课

    centos  shell脚本编程2 if 判断  case判断   shell脚本中的循环  for   while   shell中的函数  break  continue  test 命令   ...

  7. shell分支与循环结构

    1. 条件选择 1.1 条件判断分支介绍 格式 if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]... [ else COMM ...

  8. shell脚本--循环结构

    shell的循环结构有while和for两种 for循环 #!/bin/bash #文件名:test.sh i=4 for i in 2 4 6 8 10 do echo $i done echo $ ...

  9. Linux shell for循环结构

    Linux Shell   for循环结构 循环结构            1:循环开始条件      2:循环操作      3:循环终止的条件 shell语言          for,while ...

随机推荐

  1. HTML连载70-相片墙、盒子阴影和文字阴影

    一. 制作一个相片墙 二. <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  2. [MySQL]ANALYZE TABLE 更新索引基数

    MySQL使用存储的键分布基数来确定表连接顺序在决定对查询中的特定表使用哪些索引时,也会使用使用键分布基数 ANALYZE TABLE 表名 可以更新表的索引基数,使其更接近非重复的记录数,记录数可以 ...

  3. codeforces 1301C Ayoub's function

    题目链接:http://codeforces.com/problemset/problem/1301/C 思路: 纯想想了一次,发现one_cnt >= zero_cnt的时候很简单,就是(n) ...

  4. 如何知道一个路由器的 BSSID ?

    使用 Mac 连接上这个路由器,然后使用 option 按 wifi 按钮,可以在详情页里找到. 有些路由中继的设置需要使用 BSSID ,比如 pandorabox openwrt

  5. MAC使用命令行解压rar

    使用homebrew安装unrar brew install unrar 安装完成后cd到rar文件目录,使用终端命令解压 unrar x 需要解压的文件

  6. 吴裕雄--天生自然 R语言数据可视化绘图(2)

    par(ask=TRUE) opar <- par(no.readonly=TRUE) # save original parameter settings library(vcd) count ...

  7. app简单压力测试

    step1:手机开发者选项中,将USB调试选上 step2:确认手机和电脑已经连接成功:adb devices step3:安装测试app:adb install package.apk (1)cd命 ...

  8. python命令行工具的使用——argparse

    argparse是一个常用的库函数,使用它的时候我们在命令行中不仅仅可以运行python文件,更可以零时调整参数,十分方便. 首先,如果你只是希望传一丢丢数据进去,那么只看下面两行就行了 import ...

  9. SQL语法学习记录——JOIN

    学习内容参考来源:www.runoob.com JOIN准备 --为了方便练习,在数据库中创建演示数据: create database TEST; use TEST ; ---------- go ...

  10. " ModuleNotFoundError: No module named 'tkinter' "的解决方法

    踩坑场景 在使用pillow这个包处理图片的时候,运行程序,报错ModuleNotFoundError: No module named 'tkinter',遇到ModuleNotFoundError ...