广告
返回顶部
首页 > 资讯 > 精选 >shell脚本怎么使用两个横杠接收外部参数
  • 189
分享到

shell脚本怎么使用两个横杠接收外部参数

2023-06-09 11:06:08 189人浏览 安东尼
摘要

小编给大家分享一下shell脚本怎么使用两个横杠接收外部参数,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!首先,效果是这样的:既可以处理短选项(-)又可以处理长选项(--)[developer@hadoop-cluster

小编给大家分享一下shell脚本怎么使用两个横杠接收外部参数,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

首先,效果是这样的:

既可以处理短选项(-)又可以处理长选项(--)

[developer@hadoop-cluster-manager shell]$ ./demo.sh --helpsqoop程序开始运行: demo.shUsage: ./demo.sh [options] Options: --append, -a:   追加导入(默认为追加模式) --overwrite, -o: 覆盖导入   --method, -m:   single-单日导入          interval-区间导入          all-全表导入  --date, -d:    单日导入,某一日期数据(格式为yyyymmdd)  --startdate, -s: 区间导入,开始日期 --enddate, -e:  区间导入,结束日期  --help, -h     帮助

shell脚本接外部参数有一种很简单的办法,在脚本中使用$0,$1,$2...指代执行脚本时传入的第几个参数($0是脚本名)。

但是,这样做毕竟不够优雅,

另一种方法shell脚本内使用getopts命令,只可以接短选项(eg:-d,-s,-h),很方便,比较简单,可以自己去搜一搜。

但如果想要达成上面这种效果同时支持长选项和短选项(eg:--date,-d,--startdate,-s,--help,-h),

就只能使用getopt命令了:

# 定义命令执行选项if ! ARGS=$(getopt -o aom:d:s:e:h --long append,overwrite,method:,date:,startdate:,enddate:,help -n "$0" -- "$@"); then  echo "Terminating..."  echo -e "Usage: ./$SCRIPT_NAME [options]\n"  echo -e "Options:\n --append, -a:   追加导入(默认为追加模式)\n --overwrite, -o: 覆盖导入 \n\n --method, -m:   single-单日导入\n          interval-区间导入\n          all-全表导入\n\n --date, -d:    单日导入,某一日期数据(格式为yyyymmdd)\n\n --startdate, -s: 区间导入,开始日期\n --enddate, -e:  区间导入,结束日期\n\n --help, -h     帮助"  exit 1fi # 将规范化后的命令行参数分配至位置参数($1,$2,...)# The -- ensures that whatever options passed in as part of the script won't get interpreted as options for set, but as options for the command denoted by the $progname variable.eval set -- "${ARGS}" # 接受执行选项;赋值给变量while true; do case "$1" in  -a|--append)   mode='append'   shift   ;;  -o|--overwrite)   mode='overwrite'   shift   ;;  -m|--method)   method=$2   shift 2   ;;  -d|--date)   date=$2   shift 2   ;;  -s|--startdate)   startdate=$2   shift 2   ;;  -e|--enddate)   enddate=$2   shift 2   ;;  --)   shift   break   ;;  -h|--help)   echo -e "Usage: ./$SCRIPT_NAME [options]\n"   echo -e "Options:\n --append, -a:   追加导入(默认为追加模式)\n --overwrite, -o: 覆盖导入 \n\n --method, -m:   single-单日导入\n          interval-区间导入\n          all-全表导入\n\n --date, -d:    单日导入,某一日期数据(格式为yyyymmdd)\n\n --startdate, -s: 区间导入,开始日期\n --enddate, -e:  区间导入,结束日期\n\n --help, -h     帮助"   exit 0   ;;  ?)   echo "missing options, pls check!"   exit 1   ;; esacdone

看完了这篇文章,相信你对“shell脚本怎么使用两个横杠接收外部参数”有了一定的了解,如果想了解更多相关知识,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: shell脚本怎么使用两个横杠接收外部参数

本文链接: https://www.lsjlt.com/news/255783.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作