在我们平时使用C/C++编程中循环无疑是for和while,二者结束的标志是break,continue是二者结束本轮函数进入下一论循环的开关,但是在shell里除了for和while还有一个until,情况分析有case语句,但是和C/C++中完全不一样,在代码中有详细的标注:
1 #!/bin/bash
2
3 #程序猿帝
4 #antony
5 echo "for循环展示:"
6 for loop in 1 2 3 4 5
7 do echo " value is :$loop"
8 done
9
10 for str in "hello " 'world!'
11 do echo "str= $str"
12 done
13
14 for ((i=0; i<5; i++))
15 do
16 echo $i
17 done
18 echo "while 循环展示:"
19 i=1
20 while(( $i<=5 ))
21 do
22 echo "i = "$i
23 let "i++"
24 done
25 echo '按下Ctrl+D退出'
26 echo '输入你喜欢的数字'
27 while read a
28 do
29 echo "你喜欢的数字:> $a"
30 done
31
32 echo 'case 使用展示:'
33 echo '输入1到4之间的数字:'
34 echo '你输入的数字为:'
35 read a
36 case $a in #case取值后判断必须加in
37 1) echo '你选择了1'
38 ;;#两个封号代表这break
39 2) echo '你选择了2'
40 ;;
41 3) echo '你选择了3'
42 ;;
43 4) echo '你选择了4'
44 ;;
45 *) echo '你没有输入1到4之间的数' # *) 代表了default
46 ;;
47 esac #case的结束标志,讲case返过来显示
48
49 #break和continue的区别使用
50 while :
51 do
52 echo -n '输入1到5之间的数字:' #-n 代表了连着输出不换行
53 read a
54 case $a in
55 1|2|3|4|5) echo "你输入的数字是 $a" # |用或的方式,讲所有所有选项一次性将所有选项搞定
56 ;;
57 *) echo "你输入的数字不是1到5之间的!break"
58 break #直接跳出循环
59 ;;
60 esac
61 done
62
63 while :
64 do
65 echo -n "请输入1到5之间的数字:"
66 read a
67 case $a in
68 1|2|3|4|5) echo "你输入的是:$a"
69 ;;
70 *) echo "你输入的不是1到5之间的数,continue"
71 continue #结束本次循环进入下次循环
72 echo "游戏结束" #不会被输出
73 ;;
74 esac
75 done
76
运行结果:
通过for循环的三种模式的编写和运行可以看得出字符串和数字的循环模式,while模式也有体现,想说的是case和while的结合以及最后的停止循环,break是立即停止循环,continue只是停止了当前循环进入到下一轮循环,最后通过Ctrl+c停止循环接触进程。使用中使用了 Bash let 命令,它用于执行一个或多个表达式,变量计算中不需要加上 $ 来表示变量,具体查看:http://www.runoob.com/linux/linux-comm-let.html
until循环:
执行结果:
until循环执行一系列命令直至条件为真时停止。
until循环与while循环在处理方式上刚好相反。
一般while循环优于until循环,但在某些时候—也只是极少数情况下,until循环更加有用。
死循环这里也展示一下:
这三者不管执行那个都会出现死循环: