首页 > 系统相关 >Linux shell script switch...case All In One

Linux shell script switch...case All In One

时间:2023-05-03 15:55:04浏览次数:35  
标签:case ... shell 数字 echo exit esac

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

image

# 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


hash bang env

#!\usr\bin\env bash
# ❌

#!/usr/bin/env bash
✅

export N=1
# case 1 数字
# suceess 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

image

(

标签:case,...,shell,数字,echo,exit,esac
From: https://www.cnblogs.com/xgqfrms/p/17369159.html

相关文章

  • PowerShell-自定义的配置文件
    PowerShell5.1一般Windows10自带的是这个版本的PowerShell,这个版本的自定义配置文件的文件编码要保存为ANSI才行。PowerShell7这个是通过github另外下载的,这个版本的自定义配置文件的文件编码要保存为utf-8才行。 配置文件代码其实也没啥,主要加了一个时间显示和我可能用......
  • verilog语法:for与generate...for
    1for循环for循环必须在always块内使用,对应的always块内的变量需声明为reg类型。verilog的for和C语言的for的不同点:C语言的for里面的语句是串行执行,而verilog的for内的语句是并行执行的。例如下面的移位寄存器案例。integeri;always@(posedgeclk)begindata_reg[0]......
  • xshell下上传文件无法上传,速度一直为0的解决方法
    连接服务器cd切换到主目录执行以下命令如果在xshell下上传文件速度一直为0,可以尝试安装yum -yinstalllrzsz......
  • windows powershell
    路径:C:\Users\Thinkpad\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1内容:#regioncondainitialize#!!Contentswithinthisblockaremanagedby'condainit'!!(&"D:\Miniconda3\Scripts\conda.exe""shell.......
  • 调研了下 AI 作曲,顺便做了期视频...快进来听歌!
    文|白鹡鸰编|小轶视频|白鹡鸰嗨,大家好!这里是卖萌屋,我是白鹡鸰。今天和大家聊聊人工智能作曲。人工智能在音乐领域的应用已经非常常见了,像听歌识曲、曲风分类、自动扒谱等等,而利用机器来替代人类作曲?这显然也不是新想法了。核心问题只在于:现在这个任务被做到了什么程度?用的......
  • 2023-05-01:给你一个整数 n , 请你在无限的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1
    2023-05-01:给你一个整数n,请你在无限的整数序列[1,2,3,4,5,6,7,8,9,10,11,...]中找出并返回第n位上的数字。1<=n<=2^31-1。输入:n=11输出:0解释:第11位数字在序列1,2,3,4,5,6,7,8,9,10,11,...里是0,它是10的一部分。答案2023-05-01:该......
  • 2023-05-01:给你一个整数 n , 请你在无限的整数序列 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1
    2023-05-01:给你一个整数n,请你在无限的整数序列[1,2,3,4,5,6,7,8,9,10,11,...]中找出并返回第n位上的数字。1<=n<=2^31-1。输入:n=11输出:0解释:第11位数字在序列1,2,3,4,5,6,7,8,9,10,11,...里是0,它是10的一部分。答案2023-05-01:......
  • 供大家参考的qt-UI项目(持续整理...)
    QtFluentDesign-main(推荐指数:⭐⭐⭐⭐⭐)原始界面: 应用了Fluent风格:Navigation-Bar-Office-Style-Tab-Bar-master(推荐指数:⭐⭐)侧边栏展开:侧边栏折叠:qt-material-widgets-master(推荐指数:⭐⭐⭐) qt-UI-masterandQSSHub-masteran......
  • window的shell怎么查看当前用户名
    在Windows的命令行界面下,可以使用%username%的环境变量来获取当前用户名。具体操作步骤如下:打开cmd命令提示符。可以使用Win+R组合键打开运行窗口,输入cmd命令,然后点击“确定”按钮。在命令提示符下输入echo%username%命令。按下回车键,在命令行界面中就可以看到当前登......
  • Python 希尔排序(Shell Sort)原理以及应用
    希尔排序的原理:希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希尔排序的原理是将待排序的序列按照一定间隔分成若干个子序列,对每个子序列使用插入排序进......