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
(🐞 反爬虫测试!打击盗版⚠️)如果你看到这个信息, 说明这是一篇剽窃的文章,请访问 https://www.cnblogs.com/xgqfrms/ 查看原创文章!
shell script shebang
env
hash bang env
#!\usr\bin\env bash
❌
#!\usr\bin\env bash
# ❌
#!/usr/bin/env
✅
#!/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
https://www.cyberciti.biz/tips/finding-bash-perl-python-portably-using-env.html
https://www.baeldung.com/linux/bash-shebang-lines
https://stackoverflow.com/questions/43793040/how-does-usr-bin-env-work-in-a-linux-shebang-line
refs
https://www.cnblogs.com/xgqfrms/p/16476153.html#5173280
https://www.runoob.com/linux/linux-shell-process-control.html
©xgqfrms 2012-2021
www.cnblogs.com/xgqfrms 发布文章使用:只允许注册用户才可以访问!
原创文章,版权所有©️xgqfrms, 禁止转载 🈲️,侵权必究⚠️!
本文首发于博客园,作者:xgqfrms,原文链接:https://www.cnblogs.com/xgqfrms/p/17369159.html
未经授权禁止转载,违者必究!