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
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
# 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
- 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的主要内容,如果未能解决你的问题,请参考以下文章