2019独角兽企业重金招聘Python工程师标准>>>

使用getopts,示例如下:

//test.sh
# getopts :s:h表示这个命令接受2个带参数选项,分别是-h和-s
while getopts :s:h opt
docase $opt ins)  echo "-s=$OPTARG";;:)echo "-$OPTARG needs an argument";;h)  echo "-h is set";;*)  echo "-$opt not recognized";;esac
done

在以上示例中,

1、执行

sh test.sh -h hellow -s sort

运行结果为

-h is set

2、执行如下

sh test.sh -s sort -h hellow

结果为

-s=sort
-h is set

重要信息:

getopts后面的字符串就是可以使用的选项列表,每个字母代表一个选项,后面带:的意味着选项除了定义本身之外,还会带上一个参数作为选项的值,比如d:在实际的使用中就会对应-d 30,选项的值就是30;getopts字符串中没有跟随:的是开关型选项,不需要再指定值,相当于true/false,只要带了这个参数就是true。如果命令行中包含了没有在getopts列表中的选项,会有警告信息,如果在整个getopts字符串前面也加上个:,就能消除警告信息了。

所有选项参数必须写在其它参数的前面,因为getopts是从命令行前面开始处理,遇到非-开头的参数,或者选项参数结束标记--就中止了,如果中间遇到非选项的命令行参数,后面的选项参数就都取不到了。

转载于:https://my.oschina.net/u/1432769/blog/769802

shell脚本使用getopts自定义传入参数选项相关推荐

  1. linux脚本外输入参数,shell 脚本中关于用户输入参数的处理

    1.命令行参数 向shell脚本传递数据的最基本方式是使用命令行参数. (1) 读取参数 读取输入的参数的变量为位置参数,位置参数通过标准数字表示, 其中$0为程序名称,$1为第一个参数,$2为第二个 ...

  2. linux 读取命令行输入参数,shell脚本读取文件+读取命令行参数+读取标准输入+变量赋值+输出到文件...

    读取url_list文件批量下载网页 url_list http://www.tianyancha.com/company/2412078287 http://www.4399.com/special ...

  3. shell脚本第一篇——自定义创建用户和批量创建用户

    shell脚本第一篇--自定义创建用户和批量创建用户 1.用shell脚本建立Linux用户 # vim /root/user.sh #!/bin/bash #通过脚本自定义创建用户 read -p ...

  4. Shell脚本传递带有空格的参数

    在另一博文<Shell脚本实现DB2数据库表导出到文件>中实现了通过脚本实现将DB2数据库导出到文件,需要传入七个参数,最后一个是一个带有空格字符串,所以传入的时候有点问题,会自动识别空格 ...

  5. linux shell脚本 报错dirname:无效选项 -- b 错误原因 解决方法

    今天在写一个Shell脚本的时候,发现调试的时候会报一个错 [oracle@smidb11 autoawrrpt]$ . a.sh dirname:无效选项 -- b 请尝试执行"dirna ...

  6. Shell脚本对ps命令隐藏参数

    缘起 我有一个备份的Shell脚本,传入用户名,密码,然后脚本开始备份数据库. 模拟备份的脚本 [lihuilin@lihuilin ~]$ cat backup.sh #!/bin/bash ech ...

  7. linux判断参数是否存在,检查bash shell脚本中是否存在输入参数

    我需要检查输入参数的存在性.我有下面的剧本 if ["$1" -gt"-1" ] then echo hi fi 我得到 [: : integer expres ...

  8. linux 脚本 变量为空,Shell脚本中判断输入变量或者参数是否为空的方法

    1.判断变量 复制代码 代码如下: read -p "input a word :" word if  [ ! -n "$word" ] ;then echo ...

  9. shell脚本中if的相关参数

    转自:http://blog.csdn.net/aaaaatiger/article/details/1713611 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 ...

  10. shell脚本触发java程序传参数

    eods.sh nohup java -cp "./xxx.war/WEB-INF/lib/*:./xxx.war/WEB-INF/classes" com.gblfy.datat ...

最新文章

  1. lua编程简单实用入门教程,用NodeMCU在OLED上显示温湿度
  2. 十年,我的计算机生涯
  3. ConneR and the A.R.C. Markland-N CodeForces - 1293A(暴力)
  4. AliOS-Things Visual studio code helloworld 入门
  5. WebService生成客户端代理的工具WSDL参数介绍
  6. L2-004. 这是二叉搜索树吗?-PAT团体程序设计天梯赛GPLT
  7. Tasker to stop Poweramp control for the headset while there is an incoming SMS - frozen
  8. 语义化标签——HTML
  9. iText操作PDF基础
  10. AutoML之锦标赛选择
  11. 模拟电子技术基础第五版习题 视频讲解 模拟电子技术基础第五版答案
  12. 综合评价方法之秩和比法(RSR)
  13. 计算机数字模拟仿真软件,实时数字仿真系统
  14. 【Mark工具】一些好用的图片标注工具
  15. Ubuntu 20.04桌面文件夹图标消失及文件系统无法打开
  16. MPB:湖南师大尹佳组-抑菌圈和药敏实验研究益生菌拮抗病原菌和抗生素敏感性的方法...
  17. Metro 风格应用的导航设计
  18. 虚拟主机3种方式nginx/apache+跨域知识点整理
  19. Unity2d 坦克大战 (一)坦克移动、转向、皮肤切换
  20. 电脑应用·桌面设置面面观·各取所需(快速启动任务栏 右移问题)

热门文章

  1. eclipse安装activiti 工作流插件
  2. JavaMail简单版实验测试
  3. SQLServer 分组查询相邻两条记录的时间差
  4. R12-表详解-总帐
  5. 三层架构(命名规则)
  6. centos7.2 部署k8s集群
  7. 十分钟教你使用NoteExpress
  8. 使用SQL语句操作数据
  9. Error:Could not find common.jar (android.arch.core:common:1.0.0)
  10. git最简单直接粗爆与github教程