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处理命令行参数相关推荐

  1. python中的argparse包——用于解析命令行参数

    python自带的argparse包,常用于解析命令行的参数 使用方法example: import argparse parser = argparse.ArgumentParser() #将arg ...

  2. pytest中pytest_addoption用法 动态添加命令行参数 (钩子函数)

    考虑场景: 我们的自动化用例需要支持在不同测试环境运行,有时候在dev环境运行,有时候在test环境运行: 有时候需要根据某个参数不同的参数值,执行不同的业务逻辑: 上面的场景我们都可以通过" ...

  3. VS2017中处理命令行参数的方法----C++语言 Windows系统

    我们使用Windows系统的VS2017编程时,有时候需要处理命令行参数,但是该IDE默认情况下没有提供命令行参数,并且也不会自动识别,必须由我们自己去手动打开,接下来就用一个简单的例子来介绍一下如何 ...

  4. 在c语言中命令行参数是什么,C语言命令行参数

    这是可能在命令行中的一些值传递给C程序执行.特别是从参数传入,而不是外界硬编码写入这些值到代码控制程序中,这些值被称为命令行参数,很多时候,它们对程序很重要. 命令行参数使用main()函数的参数,其 ...

  5. golang flag包使用示例:接收命令行参数

    flag包 package mainimport "flag" import "fmt"// 定义命令行参数对应的变量,这三个变量都是指针类型 var cliN ...

  6. c语言程序的命令行输入输出,C语言入门教程-命令行参数

    命令行参数 在C中,获取用户输入的命令行参数是很方便的.程序的主函数会接受一个argv参数.有许多高级的库函数都会用到argv结构,所以了解此结构对一个C程序员来说将是很有用的. 请录入并编译下面的程 ...

  7. docopt——好用的Python命令行参数解释器

    Qingchat 使用的命令行参数解释器是 docopt ,用下来感觉非常棒,所以决定介绍一下这个库.( 奉劝各位看官,真爱生命,远离argparse. ) 介绍 docopt 本质上是在 Pytho ...

  8. C语言——命令行参数

    命令行参数 参考书 << C Primer Plus >> 在图形界面普及之前都使用命令行界面.DOS和UNIX就是例子.Linux终端提供类UNIX命令行环境.命令行是在命令 ...

  9. linux shell中的命令自动补全(compgen complete)与 命令行参数解析

    linux shell中的命令自动补全(compgen complete)与 命令行参数解析 标签: shell脚本 2013-12-31 21:56 6661人阅读 评论(6) 收藏 举报 分类: ...

最新文章

  1. AI 实验--v_JULY_v
  2. 交叉熵损失函数和focal loss_理解熵、交叉熵和交叉熵损失
  3. 百练OJ:2713:肿瘤面积
  4. mysql5.5.8编译安装_MySQL5.5.8源代码编译安装
  5. django实战——常见web攻击与防范
  6. python爬取百度迁徙动态图_python爬虫动态爬取百度迁徙
  7. 是男人就下100层【第二层】——帮美女更衣(1)
  8. c语言课程设计,学生信息管理系统
  9. 英特尔的指令集体系结构_VLIW指令集架构 cpu指令集跟架构的区别
  10. Android开发:设置启动页面
  11. matlab 判断鼠标按下_如何让MATLAB控制你的鼠标和键盘
  12. 360网址导航的搜索引擎默认怎么改为百度
  13. 大数据入门--大数据特点
  14. linux脚本执行SQL文件创建表,shell脚本执行sql文件chrome安装
  15. 英语发音之音标6---法(重读符号)
  16. 驱动开发思路以及应用程序与驱动程序的区别
  17. 时间的朋友——观后感
  18. Web应用多账号系统设计及微信扫码登录实现
  19. DTS、smba、ftp安装使用
  20. Linux 的 OOM 终结者(Out Of Memory killer)

热门文章

  1. 万豪国际预计于2022年将在全球范围内开设超过30家奢华酒店;四季酒店集团2023年全新私人飞机行程发布 | 全球旅报...
  2. CoRR和arXiv到底是什么?
  3. Springboot实现文件上传文件压缩和前端展示
  4. Minor GC,MajorGC、Full GC
  5. 变电站AR智能巡检系统-广州华锐互动
  6. WPS合并单元格保留所有内容
  7. PHP开源管理后台 OSAdmin
  8. 卓健科技实习————dubbo学习心得
  9. thinkphp递归实现无限极子分类children
  10. 开发常用工具、json、时间戳、querylist采集、xpath采集等等