zoukankan      html  css  js  c++  java
  • Linux Shell编程(19)——测试与分支

    case和select结构在技术上说不是循环,因为它们并不对可执行的代码块进行迭代.但是和循环相似的是,它们也依靠在代码块的顶部或底部的条件判断来决定程序的分支.


    在代码块中控制程序分支


    case (in) / esac
    在shell中的case同C/C++中的switch结构是相同的.它允许通过判断来选择代码块中多条路径中的一条.它的作用和多个if/then/else语句相同,是它们的简化结构,特别适用于创建目录.
    case "$variable" in 
    
    
    ?"$condition1" ) 
    ?command... 
    ?;; 
    
    
    ?"$condition2" ) 
    ?command... 
    ?;; 
    
    
    esac




    对变量使用""并不是强制的,因为不会发生单词分离.
    每句测试行,都以右小括号)结尾.
    每个条件块都以两个分号结尾;;.
    case块的结束以esac(case的反向拼写)结尾.


    例子:使用case
    #!/bin/bash
    # 测试字符串范围
    
    
    echo; echo "Hit a key, then hit return."
    read Keypress
    
    
    case "$Keypress" in
      [[:lower:]]   ) echo "Lowercase letter";;
      [[:upper:]]   ) echo "Uppercase letter";;
      [0-9]         ) echo "Digit";;
      *             ) echo "Punctuation, whitespace, or other";;
    esac      #  允许字符串的范围出现在[]中,
              #+ 或者POSIX风格的[[中.
    
    
    #  在这个例子的第一个版本中,
    #+ 测试大写和小写字符串使用的是
    #+ [a-z] 和 [A-Z].
    #  这种用法将不会在某些特定的场合或Linux发行版中正常工作.
    
    
    exit 0




  • 相关阅读:
    Shell for
    rsync 目录 斜杠
    shell local
    linux secureCRT utf-8编码显示
    eclipse maven 项目不显示 target目录
    如何打印身份证实际大小
    linux 去掉 ^M
    hibernate 之 集合映射中list映射
    hibernate 之 复合主键映射
    hibernate 之 组件映射
  • 原文地址:https://www.cnblogs.com/new0801/p/6176861.html
Copyright © 2011-2022 走看看