shell脚本——流程控制的操作使用
2016-09-01 11:40
337 查看
流程控制的操作使用
#!/bin/base # 流程控制 # 注意: # 1 sh的流程控制不可为空,如:在sh/bash里可不能这么写,如果else分支没有语句执行,就不要写这个else # 2 if else-if else。注意:else-if后不能接then否则执行失败 number1=10 number2=20 #<---------------------------------------------------> # if if [[ $number1 -eq $number2 ]]; then echo "$number1 等于 $number2" fi # if else if [[ $number1 -eq $number2 ]]; then echo "$number1 等于 $number2" else echo "$number1 不等于 $number2" fi # if else-if else。注意:else-if后不能接then否则执行失败 if [[ $number1 -eq $number2 ]]; then echo "$number1 等于 $number2" else-if [[ $number1 -gt $number2]]; echo "$number1 大于 $number2" else echo "$number1 小于 $number2" fi #<---------------------------------------------------> # for循环 # for循环一般格式为: # for var in item1 item2 ... itemN # do # command1 # command2 # ... # commandN # done # # in列表可以包含替换、字符串和文件名。 # in列表是可选的,如果不用它,for循环使用命令行的位置参数。 for (( i = 0; i < 10; i++ )); do echo "当前 i 值:$i" done for i in 0 1 3 4 6 7; do echo "当前 i 值等于 $i" done #<---------------------------------------------------> # while 语句 # while循环用于不断执行一系列命令,也用于从输入文件中读取数据;命令通常为测试条件。其格式为: # while condition # do # command # done numberInt=1 while [[ $numberInt -lt 5 ]]; do echo "当前 number 值:$numberInt" let "numberInt++" done # while循环可用于读取键盘信息 # echo '按下 <CTRL-D> 退出' # echo '输入你最喜欢的电影名: ' # while read filmName # do # echo "是的!$filmName 是一部好电影" # done #<---------------------------------------------------> # until 循环 # until循环执行一系列命令直至条件为真时停止。 # until循环与while循环在处理方式上刚好相反。 # 一般while循环优于until循环,但在某些时候—也只是极少数情况下,until循环更加有用。 # until 语法格式: # until condition # do # command # done # 条件可为任意测试条件,测试发生在循环末尾,因此循环至少执行一次—请注意这一点。 until [[ $numberInt -gt 5 ]]; do echo "当前的 number 值等于 $numberInt" let "numberInt++" done #<---------------------------------------------------> # case # Shell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。case语句格式如下: # case 值 in # 模式1) # command1 # command2 # ... # commandN # ;; # 模式2) # command1 # command2 # ... # commandN # ;; # esac # case工作方式如上所示。取值后面必须为单词in,每一模式必须以右括号结束。取值可以为变量或常数。匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。 # 取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。如果无一匹配模式,使用星号 * 捕获该值,再执行后面的命令。 echo "请输入 0 ~ N 的任意数字" echo "您输入的数字为:" read inputNumber case $inputNumber in 0 ) echo "你输入的数字为:$inputNumber" ;; 1 ) echo "你输入的数字为:$inputNumber" ;; 3 ) echo "你输入的数字大于2" ;; * ) echo "你输入的数字大于3" ;; esac #<---------------------------------------------------> # 跳出循环 # 在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,Shell使用两个命令来实现该功能:break和continue。 # break命令 # break命令允许跳出所有循环(终止执行后面的所有循环)。 # 下面的例子中,脚本进入死循环直至用户输入数字大于5。要跳出这个循环,返回到shell提示符下,需要使用break命令。 # while : # do # echo -n "输入 1 到 5 之间的数字:" # read aNum # case $aNum in # 1|2|3|4|5) echo "你输入的数字为 $aNum!" # ;; # *) echo "你输入的数字不是 1 到 5 之间的! 游戏结束" # break # ;; # esac # done # continue # continue命令与break命令类似,只有一点差别,它不会跳出所有循环,仅仅跳出当前循环。 # 运行代码发现,当输入大于5的数字时,该例中的循环不会结束,语句 echo "Game is over!" 永远不会被执行。 while : do echo -n "输入 1 到 5 之间的数字: " read aNum case $aNum in 1|2|3|4|5) echo "你输入的数字为 $aNum!" ;; *) echo "你输入的数字不是 1 到 5 之间的!" continue echo "游戏结束" ;; esac done #<--------------------------------------------------->
相关文章推荐
- shell脚本之-if流程控制语句和for循环语句的使用
- Shell脚本学习笔记(四)--流程控制
- Linux基本功十二:shell脚本流程控制
- shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改、查)等各种操作
- 使用shell脚本操作mysql数据库
- 如何使用shell脚本对android手机的操作---初级篇1
- 使用shell脚本进行mysql操作
- shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改、查)等各种操作
- shell脚本基础进阶(三)----流程控制语句
- 【Shell 编程基础第二部分】Shell里的流程控制、Shell里的函数及脚本调试方法!
- shell脚本操作mysql数据库,使用mysql的-e参数可以执行各种sql的(创建,删除,增,删,改、查)等各种操作
- shell 脚本之程序流程控制命令(1)
- 【Shell 编程基础第二部分】Shell里的流程控制、Shell里的函数及脚本调试方法!
- shell:条件测试操作与流程控制语句
- 【Shell 编程基础第二部分】Shell里的流程控制、Shell里的函数及脚本调试方法!
- linux脚本编写基础(环境变量、shell流程控制)
- 【Shell 编程基础第二部分】Shell里的流程控制\函数及\脚本调试
- 使用RMAN和控制文件备份删除归档日志的SHELL脚本--RED HAT 5 LINUX 64
- shell--条件测试语句和流程控制语句的使用
- [笔记]shell脚本中的流程控制