分类: LINUX
2013-05-17 17:59:40
原文地址:Linux Shell 学习 03 作者:l_bin_blog
一、case多分支语句:相比于if的多分支语句,更多的是使用case语句
case $num in
1)
block;; # 程序块后面的;; 不可缺少 也不能是单个的(;)
2)
block;;
3)
block;;
...
...
...
...
*)
block;; # *是除了以上没有的匹配的 相当于default
esac
例如
#!/bin/sh
read num
case $num in
1)
echo "this is 1";;
2)
echo "this is 2";;
3)
echo "this is 3";;
*)
echo "please enter 1 2 3";;
esac
运行结果:自己动手丰衣足食
二、循环控制语句:
1、for 循环
for 循环结构与C语言有所不同, 在BASH中for循环的基本结构是:
for var in [list]
do
#code block
done
其中 $var 是循环控制变量, [list]是var需要便利的一个集合,do/done 对包含了循环体,相当于C语
言中的大括号。另外如果do 和 for 被写在同一行时,必须在do 前面加上“;” 如:
for $var in [list]; do
#!/bin/sh
for day in 1 2 3 4 5
do
echo $day
done
注意 在for 所在的行有变量day 没有加$的,而在循环体内,echo所在行变量$day是必须加上$的
例如: 输出1-30之间被3整除的数
#!/bin/sh
for i in `seq 30`
do
if [ $((i%3)) -eq 0 ]
then
echo $i
fi
done
运行结果:自己动手验证
2、while 循环: 个人理解啊 while循环等同于 for循迹
while 循环
while 循环的基本条件是:
while [ condition ]
do
#code block
done
例子:
#!/bin/sh
i=1
while [ $i -lt 30 ]
do
if [ $((i%5)) -eq 0 ]
then
echo $i
fi
i=$((i+1))
#i=`expr $i + 1` #这条语句和上条语句是一样的功能 但是这条语句执行起来
done #比较慢 建议用上条语句
运行结果: 5
10
15
20
25
3、until 循环: until 和 while用法是一样的 只是until的逻辑和while的逻辑是相反的
until [ condition ]
do
#code block
done
while和until的主要区别在于while是为真时执行,而until是为假时执行
这里就不在举例子了 实际应用中也很少用到until语句