Shell脚本读取命令行参数
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脚本读取命令行参数相关推荐
- linux 读取命令行输入参数,shell脚本读取文件+读取命令行参数+读取标准输入+变量赋值+输出到文件...
读取url_list文件批量下载网页 url_list http://www.tianyancha.com/company/2412078287 http://www.4399.com/special ...
- linux下bash脚本常用的十个技巧:显示执行脚本花费的时间,在脚本退出时杀死后台运行的程序,在脚本退出时跳出循环,读取命令行参数来决定循环次数
文章目录 1.显示执行脚本花费的时间 2.在脚本退出时杀死后台运行的程序 3.在脚本退出时跳出循环 4.读取命令行参数来决定循环次数 1.显示执行脚本花费的时间 网址:bash - How to ge ...
- linux读取命令行参数,Linux学习笔记(五)—— Linux命令行参数
一.客户端输入 脚本执行的过程是对数据变量进行处理的过程,之前在脚本中处理的数据都是静态数据,而不是和客户端交互的动态数据.在大多数情况下脚本执行过程需要和客户端进行交互,用来获得脚本处理的数据,这些 ...
- python 命令行参数-python实现读取命令行参数的方法
本文实例讲述了python读取命令行参数的方法.分享给大家供大家参考.具体分析如下: 如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块 ...
- python求两数之和的命令_python实现读取命令行参数的方法
本文实例讲述了python读取命令行参数的方法.分享给大家供大家参考.具体分析如下: 如果想对python脚本传参数,python中对应的argc, argv(c语言的命令行参数)是什么呢? 需要模块 ...
- shell脚本传可选参数 getopts 和 getopt的方法
写了一个shell脚本,需要向shell脚本中传参数供脚本使用,达到的效果是传的参数可以是可选参数 下面是一个常规化的shell脚本: echo "执行的文件名为: $0";ech ...
- 【shell】shell脚本读取给定参数|参数个数
目录 实例脚本 脚本 使用方法 数组获取参数 字符截取方法 解决类型 汇总 实例脚本 参数 $1, $2,..., $N代表了命令行的第1.2--N个参数,$0代表了本脚本的名字,$#代码参数个数,@ ...
- linux shell运行脚本命令行参数,shell脚本命令行参数简介
之所以用到命令行参数,关键在于shell脚本需要与运行脚本的人员进行交互. bash shell提供了命令行参数添加在命令后面的数据值).命令行选项修改命令行为的单字符值)和直接读取键盘输入. 1.命 ...
- Linux下Shell脚本命令行参数:getopt、getopts用法
目录 简介 getopt 简介 支持选项 用法 getopt optstring parameters getopt [options] [--] getopt [options] -o|--opti ...
最新文章
- cvReleaseImage出错
- matplotlib如何绘制两点间连线_如何用 Python 快速揭示数据之间的各种关系
- iOS之实现图片的压缩、解压缩、模糊、置灰、马赛克、黑白化、调色等处理
- arm linux 添加ntp服务,嵌入式linux添加NTP服务
- Symbol Mc1000 Text文本阅读器整体代码
- php 代码格式化命令,go fmt命令——格式化代码文件
- 20200114每日一句
- 个人博客网站搭建详细视频教程和源码
- Activity启动模式之SingleTask
- matlab的wthcoef函数,小波去噪及其MATLAB中的函数.pdf
- keras中的后端backend及其相关函数(K.prod,K.cast)
- python设置中文字体_python-docx设置中文字体
- 关于计算机学院 公众号的名字,好听的微信公众号名字
- Flink 多流转换
- vite使用vite-aliases插件配置路径别名
- 从VIVO到华为,让人目瞪口呆的“未来SMT智能工厂”亮相
- 4:Qt Ui遇到高分屏字体显示问题
- php 用户名长度,Discuz! X2修改注册用户名长度限制解决方案
- 磊科路由器信号按键_磊科无线路由器参数设置教程
- 谷歌地图街景服务涉嫌侵犯隐私遭起诉