shell中使用case以及shift处理命令行参数
shell或bash使用case与shift处理多个命令行参数
1. shift命令
- 在bash中定义了9个位置变量,分别使用$1,$2,…$9,借助 shift 命令可以访问多于9个的命令行参数。
- shift命令一次移动参数的个数由该命令后的数字参数决定,如shift 2 可以将命令行参数 $3 移动至 $1 。
2. shell中的case语句
- case语句特点
以case…esac为标志;
每个模式以右括号 “)” 结束,匹配模式可以使用 [0-9] 以及 “|” 等通配符;
双分号 “;;” 表示命令序列结束;
默认模式使用*)表示,在不满足前面的模式后,执行默认模式后的命令序列;
case $变量名 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; *) 默认执行的命令序列 ;; esac
3.实例
使用while循环来判断命令行参数个数,而后结合case以及shift命令处理参数赋值给不同的成员变量。
while [[ $# -gt 0 ]] do key="$1" case $key in -tool)SIMULATOR="$2"shift;;-test)TEST="$2"shift;;-n)TEST_NUM="$2"shift;;-o)OUT_DIR="$2"shift;;-seed)SEED="$2"shift;;*)echo "Error: "echo " Unknow Options -> $1"echo ""echo "<<<Usage:"echo " sh demo.sh [-test base_test] [-n 10] [-o ./OUT] [-seed 123] [-tool vcs]"exit 1;; esac shift done
shell中使用case以及shift处理命令行参数相关推荐
- python中的argparse包——用于解析命令行参数
python自带的argparse包,常用于解析命令行的参数 使用方法example: import argparse parser = argparse.ArgumentParser() #将arg ...
- pytest中pytest_addoption用法 动态添加命令行参数 (钩子函数)
考虑场景: 我们的自动化用例需要支持在不同测试环境运行,有时候在dev环境运行,有时候在test环境运行: 有时候需要根据某个参数不同的参数值,执行不同的业务逻辑: 上面的场景我们都可以通过" ...
- VS2017中处理命令行参数的方法----C++语言 Windows系统
我们使用Windows系统的VS2017编程时,有时候需要处理命令行参数,但是该IDE默认情况下没有提供命令行参数,并且也不会自动识别,必须由我们自己去手动打开,接下来就用一个简单的例子来介绍一下如何 ...
- 在c语言中命令行参数是什么,C语言命令行参数
这是可能在命令行中的一些值传递给C程序执行.特别是从参数传入,而不是外界硬编码写入这些值到代码控制程序中,这些值被称为命令行参数,很多时候,它们对程序很重要. 命令行参数使用main()函数的参数,其 ...
- golang flag包使用示例:接收命令行参数
flag包 package mainimport "flag" import "fmt"// 定义命令行参数对应的变量,这三个变量都是指针类型 var cliN ...
- c语言程序的命令行输入输出,C语言入门教程-命令行参数
命令行参数 在C中,获取用户输入的命令行参数是很方便的.程序的主函数会接受一个argv参数.有许多高级的库函数都会用到argv结构,所以了解此结构对一个C程序员来说将是很有用的. 请录入并编译下面的程 ...
- docopt——好用的Python命令行参数解释器
Qingchat 使用的命令行参数解释器是 docopt ,用下来感觉非常棒,所以决定介绍一下这个库.( 奉劝各位看官,真爱生命,远离argparse. ) 介绍 docopt 本质上是在 Pytho ...
- C语言——命令行参数
命令行参数 参考书 << C Primer Plus >> 在图形界面普及之前都使用命令行界面.DOS和UNIX就是例子.Linux终端提供类UNIX命令行环境.命令行是在命令 ...
- linux shell中的命令自动补全(compgen complete)与 命令行参数解析
linux shell中的命令自动补全(compgen complete)与 命令行参数解析 标签: shell脚本 2013-12-31 21:56 6661人阅读 评论(6) 收藏 举报 分类: ...
最新文章
- AI 实验--v_JULY_v
- 交叉熵损失函数和focal loss_理解熵、交叉熵和交叉熵损失
- 百练OJ:2713:肿瘤面积
- mysql5.5.8编译安装_MySQL5.5.8源代码编译安装
- django实战——常见web攻击与防范
- python爬取百度迁徙动态图_python爬虫动态爬取百度迁徙
- 是男人就下100层【第二层】——帮美女更衣(1)
- c语言课程设计,学生信息管理系统
- 英特尔的指令集体系结构_VLIW指令集架构 cpu指令集跟架构的区别
- Android开发:设置启动页面
- matlab 判断鼠标按下_如何让MATLAB控制你的鼠标和键盘
- 360网址导航的搜索引擎默认怎么改为百度
- 大数据入门--大数据特点
- linux脚本执行SQL文件创建表,shell脚本执行sql文件chrome安装
- 英语发音之音标6---法(重读符号)
- 驱动开发思路以及应用程序与驱动程序的区别
- 时间的朋友——观后感
- Web应用多账号系统设计及微信扫码登录实现
- DTS、smba、ftp安装使用
- Linux 的 OOM 终结者(Out Of Memory killer)