Shell 流程控制

132 阅读1分钟

while 循环

while循环用于不断执行一系列命令,也用于从输入文件中读取数据

#! /bin/bash
i=1
while (($i<=5))
do
	echo "$i"
	let i++
done

执行结果: 1 2 3 4 5

while循环可用于读取键盘信息,按<Crtl+D>结束循环

echo -n '输入你做喜欢的书籍:'
while read NAME
do 
    echo "是的!$NAME时一本好书"
done

until 循环

until循环执行一系列命令直至条件为true时停止。until循环与while循环在处理方式上刚好相反。一般while循环优于until循环。

  1. 语法
until conditon
do
    command
done

condtion一般为条件表达式,如果返回值为false,则继续执行循环体内的语句,否则跳出循环。 2. 实例 使用until命令来输出0~9的数字

#! /bin/bash
a=0
until [ ! $a -lt 10 ]
do
    echo "$i"
    a=`expr $a + 1`

case

case ...esac 是一种多分枝选择结果,每个case分支用右圆括号开始,用两个分号;;表示break,即执行结束,跳出整个case...esac语句,esac作为结束标记。

#! /bin/bash
num=5
case $num in
1)  echo "你选择了1"
	echo "在全国高中生物理竞赛中你的了第一名"
;;
2) echo "你选择了2"
;;
3) echo "你选择了3"
;;
4) echo "你选择了4"
;;
*) echo "没有匹配的值"
;;
esac

执行结果:

没有匹配的值

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