Linux shell case条件判断及位置变量
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条件判断及位置变量的更多相关文章
- Linux shell if条件判断2
前面介绍linux shell的if判断的语法,现在再补充一点. Linux shell if条件判断1 分支判断结构 if , case 下面两个结构语法,已经在前面有过示例. 结构1: ...
- Linux Shell编程 条件判断语法
if条件判断语句 单分支 if 条件语句 语法格式: if [条件判断式];then 程序 fi 或者 if [条件判断式] then 程序 fi 在使用单分支 if 条件查询时需要注意几点: if ...
- Linux shell if条件判断1
shell 逻辑控制语句: 分支判断结构 if case 循环结构 for while unt ...
- 我们一起来学Shell - shell的条件判断
文章目录 Shell 条件测试语法 符号说明 Shell 测试表达式 文件测试表达式 字符串测试表达式 整数操作符 逻辑操作符 测试表达式的区别总结 Shell 条件判断之if语句 单分支 IF 条件 ...
- shell中条件判断if中的-z到-d的意思
shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 ...
- shell中条件判断if中的-z到-d
shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真.[ -c FILE ] 如果 ...
- Linux之shell编程条件判断-if,while,for,case
if 语法格式 if condition then statements [elif condition then statements] [else statements ] fi 示例 vi if ...
- shell编程学习笔记(九):Shell中的case条件判断
除了可以使用if条件判断,还可以使用case 以下蓝色字体部分为Linux命令,红色字体的内容为输出的内容: # cd /opt/scripts # vim script08.sh 开始编写scrip ...
- shell编程 条件判断式----利用 case ..... esac 判断
条件判断式----利用 case ..... esac 判断 case $变量名称 in <==关键词为 case ,还有变量前有钱字号 "第一个变量内容") &l ...
随机推荐
- Computer Network Chapter4 solution
1.以太网使用曼彻斯特编码,效率50% 2.侦听信道时间:来回延时时间(10usec):发送数据(25.6usec): 3.单向时延t=S(距离)/V(电缆传输速率):最小帧长=2*t*C(数据传输速 ...
- luoguP4551最长异或路径
P4551最长异或路径 链接 luogu 思路 从\(1\)开始\(dfs\)求出\(xor\)路径.然后根据性质\(x\)到\(y\)的\(xor\)路径就是\(xo[x]^xo[y]\) 代码 # ...
- beeline无密码连接hiveserver2
1.说明 #hiveserver2增加了权限控制,需要在hadoop的配置文件中配置 core-site.xml 增加以下内容: <property> <name>hadoop ...
- 用Python搞定九宫格式的朋友圈。内附“马云”朋友圈
PIL(Python Imaging Library)是一个非常强大的Python库,但是它支持Python2.X, 在Python3中则使用的是Pillow库,它是从PIL中fork出来的一个分支. ...
- Servlet的Listener介绍
当Web应用在Web容器中运行时,Web应用内部会不断地发生各种事件:如Web应用被启动.Web应用被停止.用户session开始.用户session结束等.通常这些Web操作对开发者是透明的.但Se ...
- 万亿数据下Hadoop的核心竞争力
1.前言 在大数据时代,Hadoop有着得天独厚的优势.然而,每个企业的技术储备和需求特点不同,他们希望从海量的客户数据中挖掘真正的商业价值,像Google.Facebook.Twitter等这样的企 ...
- 刷完欧拉计划中难度系数为5%的所有63道题,我学会了Rust中的哪些知识点?
我为什么学Rust? 2019年6月18日,Facebook发布了数字货币Libra的技术白皮书,我也第一时间体验了一下它的智能合约编程语言MOVE,发现这个MOVE是用Rust编写的,看来想准确理解 ...
- jdk源码调试进去形参没有值
https://blog.csdn.net/u010407050/article/details/76690478 1.在你的D:盘新建jdk文件夹,然后在文件夹里面分别创建两个文件夹jdk_src( ...
- python爬虫—爬取英文名以及正则表达式的介绍
python爬虫—爬取英文名以及正则表达式的介绍 爬取英文名: 一. 爬虫模块详细设计 (1)整体思路 对于本次爬取英文名数据的爬虫实现,我的思路是先将A-Z所有英文名的连接爬取出来,保存在一个cs ...
- mvc5中webapi的路由
1.Global.asax中路由的注册 public class WebApiApplication : System.Web.HttpApplication { protected void App ...