1. getopts

getopts是linux系统中的一个内置变量,一般用在循环中。每当执行循环时,getopts都会检查下一个命令选项,如果这些选项出现在option中,则表示是合法选项,否则不是合法选项。并将这些合法选项保存在VARIABLE这个变量中。

1.1. 使用方法

getopts [option[:]] [DESCPRITION] VARIABLE

option:表示为某个脚本可以使用的选项
":" 冒号如果某个选项(option)后面出现了冒号(":"),则表示这个选项后面可以接参数(即一段描述信息DESCPRITION)
getopts还包含两个内置变量,及OPTARG和OPTIND
OPTARG 就是将选项后面的参数(或者描述信息DESCPRITION)保存在此变量当中。
OPTIND 这个表示命令行的下一个选项或参数的索引(文件名不算选项或参数)

while getopts ":a:bc:" opt
第一个冒号表示忽略错误;字符后面的冒号表示该选项必须有自己的参数。
$OPTARG 存储相应选项的参数,如下例中的11、5;
$OPTIND 总是存储原始$*中下一个要处理的选项(不是参数,而是选项,此处指的是a,b,c这三个选项,而不是那些数字,当然数字也是会占有位置的)位置。

1.2. 使用示例

#!/bin/bash
echo $*
while getopts ":a:bc:" opt
docase $opt ina)echo $OPTARG $OPTIND;;b)echo "b $OPTIND";;c)echo "c $OPTIND";;?)echo "error"exit 1;;esac
done

2. getopt

#/bin/bash
###################################
# Extract command line options & values with getopt
#
set -- $(getopt -q ab:cd "$@")
#
echo
while [ -n "$1" ]
docase "$1" in-a) echo "Found the -a option" ;;-b) param="$2"echo "Found the -b option, with parameter value $param"shift ;;-c) echo "Found the -c option" ;;--) shiftbreak ;;*) echo "$1 is not option";;
esacshift
done
#
count=1
for param in "$@"
do echo "Parameter #$count: $param"count=$[ $count + 1 ]
done
#

参考文献

  • shell的getopts命令 - 迷你淘 - 博客园
  • Shell中使用getopt、getopts命令_ 静静是我女朋友-CSDN博客

Shell脚本读取命令行参数相关推荐

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

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

  2. linux下bash脚本常用的十个技巧:显示执行脚本花费的时间,在脚本退出时杀死后台运行的程序,在脚本退出时跳出循环,读取命令行参数来决定循环次数

    文章目录 1.显示执行脚本花费的时间 2.在脚本退出时杀死后台运行的程序 3.在脚本退出时跳出循环 4.读取命令行参数来决定循环次数 1.显示执行脚本花费的时间 网址:bash - How to ge ...

  3. linux读取命令行参数,Linux学习笔记(五)—— Linux命令行参数

    一.客户端输入 脚本执行的过程是对数据变量进行处理的过程,之前在脚本中处理的数据都是静态数据,而不是和客户端交互的动态数据.在大多数情况下脚本执行过程需要和客户端进行交互,用来获得脚本处理的数据,这些 ...

  4. python 命令行参数-python实现读取命令行参数的方法

    本文实例讲述了python读取命令行参数的方法.分享给大家供大家参考.具体分析如下: 如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块 ...

  5. python求两数之和的命令_python实现读取命令行参数的方法

    本文实例讲述了python读取命令行参数的方法.分享给大家供大家参考.具体分析如下: 如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块 ...

  6. shell脚本传可选参数 getopts 和 getopt的方法

    写了一个shell脚本,需要向shell脚本中传参数供脚本使用,达到的效果是传的参数可以是可选参数 下面是一个常规化的shell脚本: echo "执行的文件名为: $0";ech ...

  7. 【shell】shell脚本读取给定参数|参数个数

    目录 实例脚本 脚本 使用方法 数组获取参数 字符截取方法 解决类型 汇总 实例脚本 参数 $1, $2,..., $N代表了命令行的第1.2--N个参数,$0代表了本脚本的名字,$#代码参数个数,@ ...

  8. linux shell运行脚本命令行参数,shell脚本命令行参数简介

    之所以用到命令行参数,关键在于shell脚本需要与运行脚本的人员进行交互. bash shell提供了命令行参数添加在命令后面的数据值).命令行选项修改命令行为的单字符值)和直接读取键盘输入. 1.命 ...

  9. Linux下Shell脚本命令行参数:getopt、getopts用法

    目录 简介 getopt 简介 支持选项 用法 getopt optstring parameters getopt [options] [--] getopt [options] -o|--opti ...

最新文章

  1. cvReleaseImage出错
  2. matplotlib如何绘制两点间连线_如何用 Python 快速揭示数据之间的各种关系
  3. iOS之实现图片的压缩、解压缩、模糊、置灰、马赛克、黑白化、调色等处理
  4. arm linux 添加ntp服务,嵌入式linux添加NTP服务
  5. Symbol Mc1000 Text文本阅读器整体代码
  6. php 代码格式化命令,go fmt命令——格式化代码文件
  7. 20200114每日一句
  8. 个人博客网站搭建详细视频教程和源码
  9. Activity启动模式之SingleTask
  10. matlab的wthcoef函数,小波去噪及其MATLAB中的函数.pdf
  11. keras中的后端backend及其相关函数(K.prod,K.cast)
  12. python设置中文字体_python-docx设置中文字体
  13. 关于计算机学院 公众号的名字,好听的微信公众号名字
  14. Flink 多流转换
  15. vite使用vite-aliases插件配置路径别名
  16. 从VIVO到华为,让人目瞪口呆的“未来SMT智能工厂”亮相
  17. 4:Qt Ui遇到高分屏字体显示问题
  18. php 用户名长度,Discuz! X2修改注册用户名长度限制解决方案
  19. 磊科路由器信号按键_磊科无线路由器参数设置教程
  20. 谷歌地图街景服务涉嫌侵犯隐私遭起诉

热门文章

  1. 深入理解C语言的define
  2. Ali RocketMQ与Kafka对照
  3. SPOJ 694 不同子串个数
  4. Github 树形菜单插件
  5. redis 常用配置
  6. SQL 自学笔记1(W3School)
  7. 代理上网环境下配置TortoiseCVS
  8. 计算机本科学位有用吗_我应该回到学校获得计算机科学学位吗?
  9. 利用kickstart自动安装虚拟机
  10. Oracle字符串转BooIean,利用Java的多线程技术实现数据库的访问.pdf