linux流程控制if,for,case,while

 Shell编程中循环命令用于特定条件下决定某些语句重复执行的控制方式,有三种常用的循环语句:for、while和until。while循环和for循环属于“当型循环”,而until属于“直到型循环”。循环控制符:break和continue控制流程转向。

选择执行:
            if COMMADN;then COMMAND;fi   :第一个命令执行成功,就执行第二条命令,否则就退出
多分支:
if  判断条件 1 ; then
      条件为真的分支代码
elif  判断条件 2 ; then
      条件为真的分支代码
elif  判断条件 3 ; then
      条件为真的分支代码
else
      以上条件都为假的分支代码
fi
     逐条件进行判断,第一次遇为“真”条件时,执行其分支,而后结束整个if

case中的 PAT 支持glob风格的通配符:
             *:  任意长度任意字符
             ?:  任意单个字符
            []:指定范围内的任意单个字符
           a|b: a或b
case 变量引用 in        #变量引用便是方法: $i  就是变量引用的值                  
PAT1)                   #每个分支结束,需要双引号结束
      分支1
      ;;
PAT2)
      分支2
      ;;
      …
)
      默认分支
      ;;
esac

循环执行:      
for  变量名 in 列表;do         #变量名,比如i, 直接是变量i ,而不是$i
     循环体
done
  执行机制 :
          依次将列表中的元素赋值给“变量名”; 每次赋值后即执行一次循环体; 直到列表中的元素耗尽,循环结束

列表生成方式:
(1)  直接给出列表
(2)  整数列表:
      (a) {start..end}     #{1..100}   {1..100..2} {100..1..1}  {100..10..-2}
      (b) $(seq [start [step]] end)  # seq 100   seq 1 2 100  seq 100 -2 1
      使用中括号的列表,步长放在后面
      使用seq命令列表,步长放在中间
(3)  返回列表的 命令
      $(COMMAND)
(4)  使用glob,如:
.sh
(5)  变量引用;
      $@, $*

取随机字符:tr -dc “[:alnum:]” < /dev/urandom |head -c8 |md5sum  表示取几位字符
                                              取随机密码:md5sum
for循环适合使用在关于数字和列表的循环,列表多少就循环多少次
while循环适用于判断命令成功与否;
打印颜色: echo -e “\033[41m  \033[0m”       -e 是使转义符生效
                     设定颜色    结束符
          其中41-45设定背景色,31-35字体颜色

while CONDITION; do
      循环体
done
     CONDITION:循环控制条件;进入循环之前,先做一次判断;每一次循环之后会再
                  判断;条件为“true” ,则执行一次循环;直到条件测试状态为“false” 终止循环
 因此:CONDTION 一般应该有循环控制变量;而此变量的值会在循环体不断地被修正
  进入条件:CONDITION 为true
  退出条件:CONDITION 为false

until CONDITION; do
    循环体
done
   进入条件: CONDITION  为false
   退出条件: CONDITION  为true

循环控制语句continue

用于循环体中
 continue [N] :提前结束第N 层的本轮循环,而直接进入下一轮判断;最内层为第1层
while CONDTIITON1; do
        CMD1
        …
if CONDITION2; then
        continue
fi
        CMD2
done

原创文章,作者:shewei,如若转载,请注明出处:http://www.178linux.com/71624

(0)
sheweishewei
上一篇 2017-03-25
下一篇 2017-03-25

相关推荐

  • HAProxy实现请求的80端口转发至后端的8000端口并实现动静分离

    一 实验目的 用HAProxy作为负载均衡器,实现把前端请求调度到后端,前端监听80端口,转发至后端的8000端口,并会对访问资源进行判断实现不同的访问内容转发至相对应的服务器。 二 实验拓扑 三 实验环境 IP 功能 192.168.20.108 HAProxy 192.168.237.129 Nginx 192.168.237.130 Nginx+PHP…

    Linux干货 2016-12-19
  • 四大开源协议比较:BSD、Apache、GPL、LGPL

          现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种。我们现在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。如果要开源自己的代码,最好也是选择这些被批准的开源协议。   这里我们来看四种最常用的开源协议及它们的适用范围,供那些准备开…

    系统运维 2016-08-15
  • Linux用户、组和权限管理

    知识框架图 学习笔记 用户和组 UID root:0 系统用户:1-499、1-999 普通用户:500+、1000+ GID 管理员组:0 系统组:1-499、1-999 普通组:500+、1000+ 安全上下文 进程:运行中的程序 进程所能访问资源的权限取决于进程运行用户本身 组的类别 主要组 用户有且只能有一个主要组 组名=用户名,组中只能有一个用户 …

    2018-03-17
  • Linux用户和组的相关命令(二、组的相关命令)

    用户和组之间息息相关。创建用户时 ,Linux系统会默认生成一个与用户名相同的组,这个组是用户的私有组,也是用户的主组。对用户来说,主组有且只有一个,但是可以有零个或多个附加组。可以在组内设置组管理员来管理组内的用户列表,组管理员可以删除用户列表内的组员。组管理员不唯一,可以有零个或多个。 关于组及其属性和组密码及其属性的有关信息保存在/etc/group和…

    2017-07-22
  • rpm与yum的简单命令

                                  …

    Linux干货 2017-04-18
  • linux进程管理

    linux系统进程查看及管理工具 对于服务器来说重要的IO 设备磁盘网络 pstree,ps,pidof,pgrep,top,htop,glances,pmap,vmstat,dstat,kill,pkill,job,bg,fg,nohup,nice,renice,killall….. pstree命令: pstree-display …

    Linux干货 2016-09-09