条件判断与循环笔记

编程语句总结

条件判断与循环笔记

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

(0)
JllbcJllbc
上一篇 2018-05-10
下一篇 2018-05-10

相关推荐

  • linux基础

    计算机的组成及其功能 计算机初始设计出的时候,就遵循冯诺依曼体系,主要有四部分组成,cpu(中央处理器;运算器和控制器),存储器,输入设备和输出设备 cpu: 运算器、控制器、寄存器,缓存(为了提高cpu性能的加速部件) 存储器:内存,RAM(随机访问存储器) 输入:对计算机下指令,提供让机器操作的数据等;不如键盘,鼠标 输出:输出数据加工后的结果;比如显示…

    Linux笔记 2018-06-24
  • nginx实现请求转发

    反向代理适用于很多场合,负载均衡是最普遍的用法。 nginx 作为目前最流行的web服务器之一,可以很方便地实现反向代理。 nginx 反向代理官方文档: NGINX REVERSE PROXY 当在一台主机上部署了多个不同的web服务器,并且需要能在80端口同时访问这些web服务器时,可以使用 nginx 的反向代理功能: 用 nginx 在80端口监听所…

    Linux笔记 2018-07-08
  • 初学者;Linux小总结

    本文关于命令;个人笔记;

    2018-04-01
  • Homework_week5

    1、简述rpm与yum命令的常见选项,并举例 RPM rpm是一个功能十分强大的软件包管理系统,它使得在Linux下安装、升级和删除软件包的工作变的容易、并且具有查询、验证软件包的功能 安装 rpm {-i|–install} [install-options] PACKAGE_FILE … 选项: -h:-hash,显示安装进度 -…

    Linux笔记 2018-07-23
  • 文件权限

    介绍了修改文件权限的方法,umask和三种特殊权限以及acl控制访问表

    2018-04-04
  • CentOS系统Shell编程语言基础之Bash的基础特性

    bash的基础特性之命令历史: 命令历史:shell进程会在其会话中保存此前用户提交执行过的命令~]#history定制history的功能,可通过环境变量实现HISTSIZE:shell进程可保留的命令历史的条数HISTFILE:持久保存命令历史的文件, “.bash_history”HISTFILESIZE:命令历史文件的大小 命令用法: history…

    Linux笔记 2018-06-27