iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么在Shell脚本中使用getopts处理多命令行选项
  • 543
分享到

怎么在Shell脚本中使用getopts处理多命令行选项

2023-06-09 13:06:35 543人浏览 八月长安
摘要

这篇文章给大家介绍怎么在shell脚本中使用getopts处理多命令行选项,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在Linux系统中,许多命令都提供了选项,使用不同的选项就会得到不通的执行结果例如:ls命令,ls

这篇文章给大家介绍怎么在shell脚本中使用getopts处理多命令行选项,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

在Linux系统中,许多命令都提供了选项,使用不同的选项就会得到不通的执行结果

例如:ls命令,ls命令提供了多个选项:-l、-a、-A、-h、-i等等,每个选项具有不同的功能,我们自己写脚本时也可以定义选项,提示用户如何使用,本文介绍如何使用getopts命令来处理命令选项。

1.getopts命令的如何使用:

用getopts命令获取到脚本选项后,getopts会将获取到的选项所对应的参数(选项对应的参数,并不是选项本身,有的命令选项后面是需要跟一个参数的,例如tcpdump 的-w选项,后面需要指定一个文件来保存抓包数据)自动保存到OPTARG这个变量中。

getopts命令格式:getopts   OPTSTRING  VARNAME

  • OPTSTRING:告诉getopts会有哪些选项和参数(用选项后面加“:”来表示选项后面需要加参数)

  • VARNAME:保存getopts获取到的选项

示例:getopts  ahf:   var

告诉getopts查找-a、-h、-f选项,其中f选项后面需要跟一个参数,获取到的选项都保存到变量var中

getopts命令支持两种错误报告模式,详细错误报告模式和抑制错误报告模式。

在详细错误报告模式下:如果getopts检测到一个无效的选项,var的值会被设置为(?);如果getopts检测到一个后面需要跟参数的选项,后面没有参数,var的值也会被设置为(?)

在抑制错误报告模式下:如果getopts检测到一个无效的选项,var的值会被设置为(?),变量OPTARG会被设置为这个无效的选项;如果getopts检测到一个后面需要跟参数的选项,后面没有参数,var的值会被设置为(:),变量OPTARG会被设置为这个无效的选项

2.通过脚本来讲解getopts如何获取选项,如何赋值给变量VARNAME和OPTSTRING:

示例:

#!/bin/bashstatus=off         #定义变量status,初始值设置为offfilename=""       #定义变量filename,用于保存选项参数(文件)output=""         #定义变量output,用于保存选项参数(目录)Usage () {         #定义函数Usage,输出脚本使用方法  echo "Usage"  echo "myscript [-h] [-v] [-f <filename>] [-o <filename>]"  exit -1}while getopts :hvf:o: varname  #告诉getopts此脚本有-h、-v、-f、-o四个选项,-f和-o后面需要跟参数(没有选项时,getopts会设置一个退出状态FALSE,退出循环)do  case $varname in  h)   echo "$varname"   Usage   exit   ;;  v)   echo "$varname"   status=on   echo "$status"   exit   ;;  f)   echo "$varname"   echo "$OPTARG"   filename=$OPTARG          #将选项的参数赋值给filename   if [ ! -f $filename ];then        #判断选项所跟的参数是否存在且是文件     echo "the source file $filename not exist!"     exit   fi   ;;  o)   echo "$varname"   echo "$OPTARG"   output=$OPTARG           #将选项参数赋值给output   if [ ! -d $output ];then        #判断选项参数是否存在且是目录     echo "the output path $output not exist"     exit   fi   ;;  :)                        #当选项后面没有参数时,varname的值被设置为(:),OPTARG的值被设置为选项本身   echo "$varname"   echo "the option -$OPTARG require an arguement"    #提示用户此选项后面需要一个参数   exit 1   ;;  ?)                  #当选项不匹配时,varname的值被设置为(?),OPTARG的值被设置为选项本身   echo "$varname"   echo "Invaild option: -$OPTARG"      #提示用户此选项无效   Usage   exit 2   ;;  esacdone

怎么在Shell脚本中使用getopts处理多命令行选项

怎么在Shell脚本中使用getopts处理多命令行选项

关于怎么在Shell脚本中使用getopts处理多命令行选项就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

--结束END--

本文标题: 怎么在Shell脚本中使用getopts处理多命令行选项

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

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

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

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

下载Word文档
猜你喜欢
  • 怎么在Shell脚本中使用getopts处理多命令行选项
    这篇文章给大家介绍怎么在Shell脚本中使用getopts处理多命令行选项,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在Linux系统中,许多命令都提供了选项,使用不同的选项就会得到不通的执行结果例如:ls命令,ls...
    99+
    2023-06-09
  • Shell脚本中使用getopts处理多命令行选项
    在linux系统中,许多命令都提供了选项,使用不同的选项就会得到不通的执行结果 例如:ls命令,ls命令提供了多个选项:-l、-a、-A、-h、-i等等,每个选项具有不同的功能,我们自己写脚本时也可以定义选项,提示用户如...
    99+
    2022-06-04
    shell脚本getopts用法 shell脚本中使用getopts处理多命令行选项
  • read命令怎么在SHELL脚本中使用
    本篇文章给大家分享的是有关read命令怎么在SHELL脚本中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。1.1 shell read简介要与Linux交互,脚本获取键盘输...
    99+
    2023-06-09
  • 怎么在Shell脚本中使用sed命令删除特定行
    这篇文章将为大家详细讲解有关怎么在Shell脚本中使用sed命令删除特定行,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。sed命令常用到的两个选项:-i : 直接在文件上编辑 (edit f...
    99+
    2023-06-09
  • 怎么在shell脚本中执行hive和sqoop命令
    这篇文章将为大家详细讲解有关怎么在shell脚本中执行hive和sqoop命令,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、test.sh脚本内容如下:#!/bin/bash#CURR_...
    99+
    2023-06-09
  • 如何在shell中使用expect命令进行远程执行命令脚本
    如何在shell中使用expect命令进行远程执行命令脚本?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。expect是用来实现自动交互功能的工具之一,使用expect-send...
    99+
    2023-06-09
  • 使用hbase-shell命令怎么批量执行脚本
    今天就跟大家聊聊有关使用hbase-shell命令怎么批量执行脚本,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。批量执行hbase shell 命令#!/bin/bash ...
    99+
    2023-06-09
  • 使用Spark-shell怎么批量命令执行脚本
    这篇文章给大家介绍使用Spark-shell怎么批量命令执行脚本,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。批量执行spark-shell命令,并指定提交参数#!/bin/bashsource /etc/p...
    99+
    2023-06-09
  • 使用hive-shell命令怎么批量执行脚本
    使用hive-shell命令怎么批量执行脚本?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。如下所示:#!/usr/bin/bashHADOOP_HOME=&qu...
    99+
    2023-06-09
  • linux shell命令行选项与参数怎么使用
    在Linux shell中,命令行选项和参数用于向命令提供额外的信息或配置。下面是一些常用的使用方式:1. 选项使用一个或多个短横线...
    99+
    2023-08-17
    linux shell
  • 怎么在Shell脚本中跟踪调试命令的执行
    这篇文章主要介绍怎么在Shell脚本中跟踪调试命令的执行,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!本系列的前面部分清晰地阐明了另外两种 shell 脚本调试模式:详细模式和语法检查模式,并用易于理解的例子展示了如...
    99+
    2023-06-16
  • Shell脚本中怎么切换用户并执行命令
    这期内容当中小编将会给大家带来有关Shell脚本中怎么切换用户并执行命令,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。系统:centos 5.x脚本内容:cat test.sh代码如下:#!/bin/ba...
    99+
    2023-06-09
  • 怎么在shell中对长命令进行换行处理
    怎么在shell中对长命令进行换行处理?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。前言考察下面的脚本:emcc -o ./dist/tes...
    99+
    2023-06-09
  • 使用Shell脚本怎么逐行处理文本文件
    使用Shell脚本怎么逐行处理文本文件?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。通过read命令完成.read 命令从标准输入中读取一行,并把输入行的每个字...
    99+
    2023-06-14
  • 怎么在Linux中使用shell脚本自动执行脚本文件
    本篇文章为大家展示了怎么在Linux中使用shell脚本自动执行脚本文件,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、定时复制文件  a、在/usr/local/wfjb_web_back目录下...
    99+
    2023-06-09
  • 怎么使用shell脚本执行命令实现自动填充密码
    这篇文章主要介绍“怎么使用shell脚本执行命令实现自动填充密码”,在日常操作中,相信很多人在怎么使用shell脚本执行命令实现自动填充密码问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用shell脚本...
    99+
    2023-07-05
  • 怎么在Linux中使用crontab定时执行Shell脚本
    今天就跟大家聊聊有关怎么在Linux中使用crontab定时执行Shell脚本,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1、crontab执行配置* * *&...
    99+
    2023-06-09
  • 怎么在docker中使用exec执行多个命令
    这篇文章给大家介绍怎么在docker中使用exec执行多个命令,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。docker exec命令的使用格式:docker exec [OPTIONS] ...
    99+
    2023-06-14
  • 怎么在Linux命令行下查询当前所使用的shell版本与种类
    本篇内容主要讲解“怎么在Linux命令行下查询当前所使用的shell版本与种类”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在Linux命令行下查询当前所使用的shell版本与种类”吧!有多...
    99+
    2023-06-12
  • 怎么用Shell脚本中使用for循环和cat命令实现按顺序合并文件
    本篇内容主要讲解“怎么用Shell脚本中使用for循环和cat命令实现按顺序合并文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Shell脚本中使用for循环和cat命令实现按顺序合并文...
    99+
    2023-06-09
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作