Linux shell script switch...case All In One

Posted xgqfrms

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux shell script switch...case All In One相关的知识,希望对你有一定的参考价值。

Linux shell script switch...case All In One case...in...esac Linux shell shebang

Linux shell script switch...case All In One

case...in...esac

case ... esac 为多选择语句,与其他语言中的 switch ... case 语句类似,是一种多分支选择结构;
每个 case 分支用右圆括号开始,用两个分号 ;; 表示 break,即执行结束,跳出整个 case ... esac 语句,
esac(就是 case 反过来)作为结束标记。

可以用 case 语句匹配一个值与一个模式,如果匹配成功,执行相匹配的命令。

case 工作方式如上所示,取值后面必须为单词 in,每一模式必须以右括号结束。
取值可以为变量常数,匹配发现取值符合某一模式后,其间所有命令开始执行直至 ;;。

取值将检测匹配的每一个模式。
一旦模式匹配,则执行完匹配模式相应命令后不再继续其他模式。
如果一匹配模式,使用星号 * 捕获该值,再执行后面的命令。

case ... esac 语法格式

case "值/变量" in
  模式1)
    command1
    command2
    ...
    commandN
    ;;
  模式2)
    command1
    command2
    ...
    commandN
    ;;
  # 模式 ...)
  *)
    command1
    command2
    ...
    commandN
    ;;
esac

exit 0;

demos

# export N=1
export N=3

# ✅
case "$N" in
  1)
    echo \'case 1 数字\';;
  2)
    echo \'case 2 数字\';;
  *)
    echo \'default case 数字 *\'
    echo \'error exit ❌\'
    exit 1
  ;;
esac
#!/usr/bin/env bash

# export USER="pi"
# echo "user = $USER"

# 参数 1
# echo "\\$1 = $1"

# export N=1
# case 1 数字
# suceess exit ✅

export N=3
# default case 数字 *
# error exit ❌

# ✅
case "$N" in
  1)
    echo \'case 1 数字\';;
  2)
    echo \'case 2 数字\';;
  *)
    echo \'default case 数字 *\'
    echo \'error exit ❌\'
    exit 1
  ;;
esac

echo \'suceess exit ✅\'
exit 0



<<EOF


# ✅
case "$N" in
  1)
    echo \'case 1\'
  ;;
  2)
    echo \'case 2\'
  ;;
  *)
    echo \'default case 数字 *\'
  ;;
esac

EOF


shell script REPL

#!/bin/bash

export USER="pi"
echo "user = $USER"
# echo "\\$1 = $1"

# export N=1
export N=3

case "$N" in
  1)
    echo \'case 1\'
    ;;
  2)
    echo \'case 2\'
    ;;
  *)
    echo \'default case 数字 *\'
    ;;
esac

https://www.runoob.com/try/runcode.php?filename=helloworld&type=bash

(

[Linux] Shell Scripts

  • shell script 是利用 shell 的功能所写的一个“程序 (program)”,这个程序是使用纯文本文件,将一些 shell 的语法与指令(含外部指令)写在里面, 搭配正则表达式、管线命令与数据流重导向等功能,以达到我们所想要的处理目的
  • shell script 用在系统管理上面是很好的一项工具,但是用在处理大量数值运算上, 就不够好了,因为 Shell scripts 的速度较慢,且使用的 CPU 资源较多,造成主机资源的分配不良
  • 在Shell script 的文件中,指令的执行是从上而下、从左而右的分析与执行
  • shell script 的执行,至少需要有 r 的权限,若需要直接指令下达,则需要拥有 r 与 x 的权限
  • 良好的程序撰写习惯中,第一行要宣告 shell (#!/bin/bash) ,第二行以后则宣告程序用途、版本、作者等
  • 对谈式脚本可用 read 指令达成
  • 要创建每次执行脚本都有不同结果的数据,可使用 date 指令利用日期达成
  • script 的执行若以 source 来执行时,代表在父程序的 bash 内执行之意
  • 若需要进行判断式,可使用 test 或中括号 ( [] ) 来处理
  • 在 script 内,$0, $1, $2..., [email protected] 是有特殊意义的
  • 条件判断式可使用 if...then 来判断,若是固定变量内容的情况下,可使用 case $var in ... esac 来处理
  • 循环主要分为不定循环 (while, until) 以及固定循环 (for) ,配合 do, done 来达成所需任务

以上是关于Linux shell script switch...case All In One的主要内容,如果未能解决你的问题,请参考以下文章

[Linux] Shell Scripts

Linux笔记:4-Shell Script

Linux08--Shell程序设计03 shell script

鸟哥的 Linux 私房菜Shell Scripts篇

鸟哥的 Linux 私房菜Shell Scripts篇

Linux的shell scripts