case语句使用于需要进行多重分支的应用情况

case分支判断结构

语法:

case 变量名称 in

     value1)

         statement

         statement

         ;;

     value2)

         statement

         statement

         ;;

     *)

         statement

         statement

         ;;     

esac

case语句结构特点如下:

case行尾必须为单词 in 每个模式必须以右括号 ) 结束

双分号 ;; 表示命令序列结束

case语句结构特点如下:

匹配模式中可是使用方括号表示一个连续的范围,如[0-9];使用竖杠符号“|”表示或。

最后的“*)”表示默认模式,当使用前面的各种模式均无法匹配该变量时,将执行“*)”后的命令序列。

编写脚本,判断用户输入的字符串

#!/bin/bash
# read -p "输入字符串:" str case $str in
     linux|Linux)
        echo "windows"
        ;;
     windows|Windows)
        echo "linux"
        ;;
     *)
        echo "other"
        ;;
esac

运行效果:

[root@wei case]# bash 1.sh 
输入字符串:linux
windows

特殊变量:

   
   位置变量

       $1,$2,$3...........$9,$1{10}

       

        $1:命令的第1个参数

             

        $0  命令本身

        

        $#  命令参数的个数

        
使用位置变量

#!/bin/bash
# case $1 in
        linux|Linux)
                echo "windows"
                ;;
        windows|Windows)
                echo "linux"
                ;;
        *)
                echo "other"
esac

执行效果

[root@wei case]# ./2.sh linux
windows

判断字符是为空

#!/bin/bash
# if [ -z $1 ];then #判断字符串是否为空
    echo "使用:./2.sh{linux/windows}"
    exit 9
fi case $1 in
    linux|Linux)
        echo "windows"
        ;;
    windows|Windows)
        echo "linux"
        ;;
    *)
        echo "other"
esac

执行效果

[root@wei case]# ./2.sh 
使用:./2.sh{linux/windows}

$0  命令本身    

$#  命令参数的个数

示例:

#!/bin/bash
# if [ $# -ne 1 ];then
    echo "使用:$0{linux/windows}"
    exit 9
fi case $1 in
    linux|Linux)
        echo "windows"
        ;;
    windows|Windows)
        echo "linux"
        ;;
    *)
        echo "other"
esac

执行效果:

[root@wei case]# /shell/case/2.sh 
使用:/shell/case/2.sh{linux/windows}
[root@wei case]# ./2.sh 
使用:./2.sh{linux/windows}        

去除文件所在的路径名:

basename [路径文件]

[root@wei case]# basename /etc/fstab 
fstab

获取文件所在的路径名:

dirname [路径文件]

[root@wei case]# dirname /etc/fstab 
/etc

脚本

#!/bin/bash
# if [ $# -ne 1 ];then
    echo "使用:$(basename $0){linux/windows}"
    exit 9
fi case $1 in
    linux|Linux)
        echo "windows"
        ;;
    windows|Windows)
        echo "linux"
        ;;
    *)
        echo "other"
esac
        

执行效果


[root@wei case]# /shell/case/2.sh 
使用:2.sh{linux/windows}

Linux shell case条件判断及位置变量的更多相关文章

  1. Linux shell if条件判断2

    前面介绍linux shell的if判断的语法,现在再补充一点. Linux shell if条件判断1 分支判断结构     if , case   下面两个结构语法,已经在前面有过示例. 结构1: ...

  2. Linux Shell编程 条件判断语法

    if条件判断语句 单分支 if 条件语句 语法格式: if [条件判断式];then 程序 fi 或者 if [条件判断式] then 程序 fi 在使用单分支 if 条件查询时需要注意几点: if ...

  3. Linux shell if条件判断1

    shell 逻辑控制语句:            分支判断结构        if        case     循环结构         for         while         unt ...

  4. 我们一起来学Shell - shell的条件判断

    文章目录 Shell 条件测试语法 符号说明 Shell 测试表达式 文件测试表达式 字符串测试表达式 整数操作符 逻辑操作符 测试表达式的区别总结 Shell 条件判断之if语句 单分支 IF 条件 ...

  5. shell中条件判断if中的-z到-d的意思

    shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 ...

  6. shell中条件判断if中的-z到-d

    shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真.[ -c FILE ] 如果 ...

  7. Linux之shell编程条件判断-if,while,for,case

    if 语法格式 if condition then statements [elif condition then statements] [else statements ] fi 示例 vi if ...

  8. shell编程学习笔记(九):Shell中的case条件判断

    除了可以使用if条件判断,还可以使用case 以下蓝色字体部分为Linux命令,红色字体的内容为输出的内容: # cd /opt/scripts # vim script08.sh 开始编写scrip ...

  9. shell编程 条件判断式----利用 case ..... esac 判断

    条件判断式----利用 case ..... esac 判断 case  $变量名称 in   <==关键词为 case ,还有变量前有钱字号 "第一个变量内容")   &l ...

随机推荐

  1. LG4035/BZOJ1013 「JSOI2008」球形空间产生器 高斯消元

    问题描述 LG4035 BZOJ1013 题解 设答案为\((p_1,p_2,p_3,...,p_n)\) 因为是一个球体,令其半径为\(r\),则有 \[\sum_{i=1}^{n}{(a_i-p_ ...

  2. flask 搭建简单restful接口,moco基础

    from flask import Flask, jsonify, abort, make_response app = Flask(__name__)app.config['JSON_AS_ASCI ...

  3. appium--uiautomatorviewer的使用

    uiautomatorviewer的使用 uiautomatorviewer也是获取页面元素属性的工具,相比之前介绍的appium desktop来说,方便了很多,appium desktop需要从启 ...

  4. 【day06】css

    一.背景(Background) 1. background-color 背景颜色 2. background-image:url(图像URL);背景图片 3. background-repeat: ...

  5. Linux配置DHCP服务器,DHCP中继配置

    配置dhcp服务器 第一步:配置网卡 第二步: 安装dhcp (需要先构建yum仓库,构建yum仓库的方法在之前的博客里有) 编写dhcp.conf文件 进去以后会出现这个内容 需要执行下面的内容将内 ...

  6. 公共组件及脚手架webpack模板

    一.公共组件的创建和使用 前面已经学习vue组件时,了解了公共组件,但在脚手架项目中只使用过局部组件.这里是讲解全局组件如何在脚手架项目中去使用. 1.创建全局组件 在src/components/C ...

  7. uniApp配置文件几个注意点

    虽然有文档,但是偶尔还是会又找不到的,写下来遇到过的问题,随时补充.好记性不如烂笔头. 1.打包完安装之后,app 有时候会弹出一个提示框.如下: 修改配置项,设置 ignoreVersion 为 t ...

  8. AtCoder Grand Contest 037 简要题解

    从这里开始 题目目录 Problem A Dividing a String 猜想每段长度不超过2.然后dp即可. 考虑最后一个长度大于等于3的一段,如果划成$1 + 2$会和后面相同,那么划成$2 ...

  9. [转载]3.11 UiPath存在文本Text Exists的介绍和使用

    一.Text Exists的介绍 检查是否在给定的UI元素中找到了文本,输出的是一个布尔值 二.Text Exists在UiPath中的使用 1.打开设计器,在设计库中新建一个Sequence,为序列 ...

  10. .NET Core创建Worker Services

    .NET CORE 3.0新增了Worker Services的新项目模板,可以编写长时间运行的后台服务,并且能轻松的部署成windows服务或linux守护程序.如果安装的vs2019是中文版本,W ...