shell 流程控制语句

Posted 风中飞沙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell 流程控制语句相关的知识,希望对你有一定的参考价值。

case语句

case $变量名 in
 "值1")
 ? 如果变量的值等于值1,则执行程序1 ;;
 ?"值2")
 ? 如果变量的值等于值2,则执行程序2 ;;
 ? ...省略其他分支...
 ? *) 
 ? 如果变量的值都不是以上的值,则执行此程序 ;;
esac ?//case反过来写
"case语句的使用实例"
#!/bin/bash
read "please input yes /no": cho
case "$cho" in
 "yes")
 ? ? echo "输入正确!";;
 ?"no")
 ? ? echo "输入错误!";;
 ? ?*)
 ? ? echo "输入异常!";;
esac
------------------------------------使用case的语句进行流程控制------------
[[email protected] shell]# cat case_a.sh 
#!/bin/bash
read op
case $op in 
 ?a)
 ? ?echo "你输出的信息为 a ";;
 ?b) 
 ? ?echo "你输入的信息为 b ";;
 ?*)
 ? ?echo "输入错误!"
esac
[[email protected] shell]# sh case_a.sh 
a
你输出的信息为 a 

for语句

for 变量 in 值1 值2 值3 ...
 do
 ?程序
 done
-----------使用实例--------- 
 #! /bin/bash
 for i in 1 2 3 4 5
 ?do
 ? ?echo $i
 ?done
-----------使用实例-------------
解压缩某个目录下的压缩文件
#!/bin/bash
cd /root/test/
ls *.tar.gz > ls.log
ls *.tgz >> ls.log
for i in $(cat ls.log)
 ?do 
 ? ?tar -zxf &> /dev/null
 ?done
rm -rf ls.log

select循环

select 变量 in 列表
 ?do 
 ? ?cmd ...
 ?done
[[email protected] shell]# vim g.sh
#!/bin/bash
select a in "a" "b" "c" "d"
do
 echo $a 
 break
done
[[email protected] shell]# sh g.sh 
1) a
2) b
3) c
4) d
#? 3 //选择第三行信息
c

until循环

until循环,和while循环相反,until循环时只要条件判断式不成了则进行循环
并执行循环程序。
一旦循环条件成立,则终止循环
?
until [ 条件判断式 ]
 do
 ?程序
 done
-----------使用实例------------
#!/bin/bash
#从1加到100
i=1
s=0
until [$i -ge 100] #如果变量i的值大于等于100,则停止执行循环
 do
 ?s=$(($s+$i))
 ?i=$(($i+1))
 done
echo "the sum is : $s"

while循环

while循环是不定循环,也称作条件循环。主要条件判断式成立,循环就会一直继续,直到条件判断式不成立,循环才会停止。
这和for的固定循环不太一样
while [ 条件判断式 ]
 do
 ?程序
 done

 ?continue ; //继续执行
 ?break; //跳出循环 
------------------使用实例--------------
#!/bin/bash
i=1
sum=0
while [ $i -le 100 ]
 do
 ?sum=`expr $sum + $i`
 ?i=`expr $i + 1`
 done
echo "the sum is : $sum"
 ? ? 
[[email protected] shell]# sh while.sh 
the sum is : 5050 ? ? 
 ? ? 
 ? ?
 ? ?
[[email protected] shell]# cat while.sh 
#!/bin/bash
i=0
while [ $i -le 100 ]
 do
 ?i=`expr $i + 1 `
 ?if [ $i -eq 10 ]
 ? ?then
 ? ? ?echo "contine" 
 ? ? ?continue; ? //-----体会continue的使用
 ?elif [ $i -eq 11 ]
 ? ?then
 ? ? echo "break"
 ? ? echo "${i}"
 ? ?break; //----体会break的使用
 ?fi
 done ? ?
[[email protected] shell]# sh while.sh ?//运行查看执行的结果
contine
break
11 

以上是关于shell 流程控制语句的主要内容,如果未能解决你的问题,请参考以下文章

linux shell 流程控制

linux之Shell编程--Shell流程控制语句实例演示

Shell编程 流程控制——流程控制语句

linux shell 流程控制

1 Linux shell 编程:流程控制语句

Shell编程