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)
上一篇 2017-03-25 13:12
下一篇 2017-03-25 22:40

相关推荐

  • nginx学习笔记

    深入理解Nginx 一、Nginx是什么? 二、为什么选择Linux ? 三、Nginx生成的文件有哪些? 四、Nginx的配置详解? 五、模块功能详解 六、虚拟主机配置详解?                 一、Nginx是什么? Nginx(engine X)是一个高性能的H…

    Linux干货 2017-03-15
  • 开始学习Linux的一些建议

    建议读者范围 有开发经验者。 科研人员(由其Numrical)。 动手能力强的。 只是好奇,对于Linux只是浅尝辄止的就不建议继续往下看了。 端正学习态度 Linux不等于骇客(or Cracker)。 当然众所周知很多“黑客工具”都是Linux平台上的,我帮助过很多Linux小白发现他们殊途同归都是朝着类似Aircrack-ng去的。 但他们不知道的是:…

    Linux干货 2015-02-26
  • 文件查找命令之locate、find简析

    文件查找命令之locate、find简析    在工作中经常会在文件系统上查找符合条件的文件,今天学习了文件查找命令,在此简析locate和find两个文件查找工具。 一、杂项知识整理 1、find的选项-user的实质是通过UID查找,如果两个用户的UID相同,其会显示两个用户的所有符合条件的文件。 2、查找时-name "*…

    Linux干货 2016-08-15
  • 第一周作业

    作业

    Linux干货 2018-03-20
  • 第4周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。     ~]# cp -r /etc/skel/ /home/tuser1     ~]# chmod 700 /home/tuser1/ 2、…

    Linux干货 2016-12-25
  • rpm与yum的简单命令

                                  …

    Linux干货 2017-04-18