条件判断与循环笔记

编程语句总结

条件判断与循环笔记

QQ截图20180510201838

1、if 语句(条件判断)

  • 格式:

if  判断条件1 ;  then

条件为真的分支代码

elif 判断条件2; then

条件为真的分支代码

elif 判断条件3; then

条件为真的分支代码

else

以上条件都为假的分支代码

fi

  • 特点:

1)if 语句可以嵌套;

2)它是逐条件进行判断,第一次遇为“真”条件时,执行其分支,而后结束整个if语句。

 

2、case语句(条件选择)

  • 格式:

case  变量引用  in

Pat1)

分支1

;;

Pat2)

分支2

;;

……

*)

默认分支

;;

esac

  • 特点:

1)case支持glob风格的通配符: *: 任意长度任意字符   ?: 任意单个字符   []:指定范围内的任意单个字符   a|b: a或b。

2)输入的是哪个变量,就执行哪个变量的分支。可以对比testsrv服务脚本。

3)case语句的变量引用多匹配于离散值比较方便代码的编辑。记住:变量引用前面加$符号。

 

3、for语句(循环执行)

  • 格式:

for  变量名  in  列表;do

循环体

done

  • 特点:

1)依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束。

2)变量名是名称不是变量引用,所以只写变量的名字,不加$符号。

3)列表可以直接给出(空格隔开每个元素),也可以给出整数列表({1..100..1}或者seq 1 1 100),或者给出表达式(ls /boot),也可以使用通配符(/boot/*.sh),还可以是用位置参数引用($@,$*)

  • 特殊用法:(双小括号法)

for  i  in  ((i=1;i<=10;i++));do 

        循环体

done

 

4、while语句(循环执行)

  • 格式:

while  循环控制条件;do

循环体

done

  • 特点:

1)进入循环之前,先做一次判断;每一次循环之后会再次做判断;条件为“true”,则执行一次循环;直到条件测试状态为“false”终止循环

2)因此:循环控制条件一般应该有循环控制变量;而此变量的值会在循环体不断地被修正

3)进入条件:CONDITION为true 退出条件:CONDITION为false

  • 特殊用法:

1)read读取文件:一行一行的读取文件赋值给参数line,进入循环体判断

while  read  line ; do

        循环体

done  <  /etc/passwd

2)read读取命令执行结果:一行一行的读取命令的执行结果赋值给参数line,进入循环体判断

df  |  while  read  line ; do

        循环体

done

 

5、until语句(循环执行)

  • 格式:

while  循环控制条件;do

循环体

done

  • 特点:

1)while语句的循环控制条件取反,则执行结果相同;循环控制条件相同,则执行结果相反

2)进入条件: CONDITION 为false     退出条件: CONDITION 为true

 

6、continue [n]语句(循环控制)

  • 格式:用于其他语句的循环体中,用来控制循环
  • 特点:

1)提前结束第n层的本轮循环,转而进入下一轮判断,最内层为第一层

2)不会结束本层的循环,继续执行!

 

7、break [n]语句(循环控制)

  • 格式:用于其他语句的循环体中,用来控制循环
  • 特点:

1)提前结束第n层的循环,最内层为第一层!

 

8、shift [n]命令(循环控制)

  • 格式:同continue和break用法相同,用在其他语句的循环体中,用来控制循环
  • 特点:

1)用于将参量列表 list 左移指定次数,缺省为左移一次。

2)参量列表 list 一旦被移动,最左端的那个参数就从列表中删除。while 循环遍历位置参量列表时,常用到 shift

 

9、select语句(循环与菜单)

  • 格式:

select variable in list ; do

循环体命令

done

  • 特点:

1)select 循环主要用于创建菜单,按数字顺序排列的菜单项将显示在标准错误上,并显示 PS3 提示符,等待用户输入

2)用户输入菜单列表中的某个数字,执行相应的命令

3)用户输入被保存在内置变量 REPLY 中

4)select 是个无限循环,因此要记住用 break 命令退出循环,或用 exit 命令终止脚本。也可以按 ctrl+c 退出循环

5)select 经常和 case 联合使用,与 for 循环类似,可以省略 in list,此时使用位置参量

 

10、trap工具(脚本执行信号捕捉)

  • 格式:kill -l可以查询信号列表

trap  ‘(COMMAND)’  信号   :(执行COMMAND)不执行信号操作。

trap  ‘-‘  信号  :恢复原信号操作

trap  -p  :脚本执行时列出自定义信号操作

  • 特点:

1)用于脚本的执行,根据发出不同的信号然后来执行相应的操作。

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/98078

发表评论

登录后才能评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班