shell流程控制

在sh/bash里,如果else分支没有语句执行,就不要写这个else;

if语句语法格式

 

 

 写成一行(适用于终端命令提示符);

 

 

 if else语法格式:

 if else-if else语法格式:

 

代码中[]执行基本的算数运算,如,a=3,b=$[a+2],赋值时,等号两边不能有空格;

 

 

  for循环;一般格式;

 

写成一行:

for var in item1 item2 ... itemN; do command1; command2 done;

赋值和下一步执行可以放到代码之前循环语句之中执行;这里要注意一点:如果要在循环体中进行 for 中的 next 操作,记得变量要加 $,不然程序会变成死循环。

 

 

 while 语句;

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

 

 Bash let命令,它用于执行一个或多个表达式,变量计算中不需要加上$来表示变量;

 

 while循环可用于读取键盘信息。下面的例子中,输入信息被设置为变量xi,按<Ctrl-D>结束循环;

 

 while无限循环;语法格式如下:

 

 until循环;

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

一般while循环优于until循环,但在某些时候,until循环更加有用;

 case  

shell case语句为多选择语句。可以用case语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。esac(就是case反过来)作为结束标记。格式如下;

case的取值可以为变量或常量;取值将检测匹配的每一个模式。一旦模式匹配,则执行完匹配模式相应命令后不再继续其它模式。如果无一匹配模式,使用星号(*)捕获该值,再执行后面的命令;

 

 跳出循环

在循环过程中,有时候需要在未达到循环结束条件时强制跳出循环,shell使用两个命令来实现该功能:break和continue;

break命令;breadk命令跳出所有循环(终止执行后面的所有循环)。停止break所在的层的循环,及其父循环;"game over"不会被执行;

 

 continue;continue它不会跳出所有循环,仅仅跳出当前循环;"game over"不会被执行;可按键Ctrl+C终止;

 

 

 

posted on 2020-03-19 17:04  星空6  阅读(132)  评论(0编辑  收藏  举报

导航