zoukankan      html  css  js  c++  java
  • SHELL编程(四)---------选择逻辑结构

    选择结构是程序中带有判断的一种逻辑结构,只有符合一定的条件,程序体才会被执行.

    Linux shell 选择结构分类:

    1. if-then控制结构
    2. case--esac控制结构  

    一,if控制结构

    基本上和高级语言类似,可以没有else,可以嵌套使用.

     if [ 条件 ];then     #满足条件执行then里面的语句
              语句1...
      else
               语句2...
       fi          #结束if

     条件表达式

      1,文件表达式

    if [ -f  file ]    如果文件存在
    if [ -d ...   ]    如果目录存在
    if [ -s file  ]    如果文件存在且非空 
    if [ -r file  ]    如果文件存在且可读
    if [ -w file  ]    如果文件存在且可写
    if [ -x file  ]    如果文件存在且可执行   

      2,整数变量表达式

    if [ int1 -eq int2 ]    如果int1等于int2   
    if [ int1 -ne int2 ]    如果不等于    
    if [ int1 -ge int2 ]       如果>=
    if [ int1 -gt int2 ]       如果>
    if [ int1 -le int2 ]       如果<=
    if [ int1 -lt int2 ]       如果<
       

      3,字符串变量表达式

    If  [ $a = $b ]                 如果string1等于string2
                                    字符串允许使用赋值号做等号
    if  [ $string1 !=  $string2 ]   如果string1不等于string2       
    if  [ -n $string  ]             如果string 非空(非0),返回0(true)  
    if  [ -z $string  ]             如果string 为空
    if  [ $sting ]                  如果string 非空,返回0 (和-n类似)  

    逻辑表达式

    逻辑非 !                   条件表达式的相反
    if [ ! 表达式 ]
    if [ ! -d $num ]                        如果不存在目录$num


        逻辑与 –a                    条件表达式的并列
    if [ 表达式1  –a  表达式2 ]


        逻辑或 -o                    条件表达式的或
    if [ 表达式1  –o 表达式2 ]  

    ---------------------------------------------------------------------------------------------

    case语句适用于需要进行多重分支的应用情况,它也是选择结构中常用的一种控制结构。

       case分支语句的格式如下:
                case $变量名 in                # 严格掌握其语法 
                    模式1)                       # 右括号不能省
                    命令序列1
                    ;;                               # 两分号不能省
                    模式2)
                    命令序列2
                    ;; 
                    *)
                    默认执行的命令序列 
                    ;; 
                esac                             #结尾反写case表示结束。

  • 相关阅读:
    find命令详解
    wget命令
    国内镜像源
    向linux服务器上传下载文件方式收集
    一些初学shell自己写的一些练习题脚本
    在Linux系统下mail命令的用法
    MAC 下安装 SVN
    天气预报api整理
    pdi vcard-2.1
    Android Studio 问题锦集【持续更新】
  • 原文地址:https://www.cnblogs.com/CHYI1/p/5391436.html
Copyright © 2011-2022 走看看