位置: 编程技术 - 正文

shell脚本命令行参数简介(shell脚本命令行参数)

编辑:rootadmin

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

1、命令行参数向shell脚本传递数据的最基本方式是使用命令行参数。

1)读取参数读取输入的参数的变量为位置参数,位置参数通过标准数字表示,其中$0为程序名称,$1为第一个参数,$2为第二个参数,依次类推,直到$9为第九个参数。shell脚本自动将命令行参数赋值给各个位置变量。同时输入多个参数可以是数值也可以是字符串)时,必须使用空格分隔要想在参数值中包含空格,就必须使用单引号或双引号)当参数多于9个后,必须在shell脚本内使用大括号将变量括起来,如${}。从而可以使用任意个参数。

2)读取程序名称传递给变量$0的字符串实际上是程序的路径根据调用方法决定是相对还是绝对路径)。使用basename命令可以去掉路径前缀,只获得程序名称名字中不 可以有空格)。

3)测试脚本当脚本认为应该包含参数,却实际上没有数据时,就会出错。好的方法是对参数进行检查来保证使用参数前确实存在数据,可以使用-n参数来检查。例子:if [ ?n “$1” ] then .. else .. fi

2、特殊的参数变量用于跟踪命令行参数

1)参数计数使用特殊变量$#测试执行脚本时包含的命令行参数个数。脚本中任何位置都可以 使用$#例子:if [ $# ?ne 2 ] 即可测试参数个数可以使用${!#}来返回最后一个命令行参数当无参数时,$#为0,而${!#}为程序名)

2)获取所有数据变量$*将命令行中提供的所有参数作为一个单词处理,它将多个参数看成 一个参数。变量$@将命令行中提供的所有参数作为同一个字符串中的多个单词处理。 允许对其中的值进行迭代一般使用for),分隔开不同参数

3、移位shift命令能够改变命令行参数的相对位置。默 认将每个参数变量左移一个位置变量$0不变,把$1丢弃,注意不可以恢复了!)在不清楚参数数目情况下,这是一个迭代参数的好办法。可以为shift提供一个参数,来实现多位移变化。

4、处理选项选项是由破折号引导的单个字母,用于更改命令的行为。

1,找出选项1)处理简单选项可以使用处理命令行参数相同的方法处理选项,抽取时使用case语句进行判断是否符合选项格式。2)从参数中分离选项同时使用选项和参数时,可以使用--指示选项列表的结束。发现--后,shell就知道后面的是普通参数了,停止使用case处理选项。3)处理带值的选项选项后紧跟参数值,一种方法是在case中对应选项后使用shift和读后一位参数的方法处理。更好的方法如 下:

2,使用getopt命令getopt命令在处理选项和参数时非常方便。它对参数进行重新组 织,以便于解析1)命令格式getopt可以接受任意形式的选项和参数列表,并自动将它们转换为适当的格式。命令格式为: getopt options optstring parameters选项字符串(opstring)用于定义命令行中的有效选项字母,以及哪些选项字母需要参数值。2)脚本中使用getopt需要使用set命令将现有的命令行选项和参数替换为getopt命令生成的 格式化形式。需要将原始脚本命令行参数送给getopt命令,然后将getopt命令输出送给set命令,如下:set ? `getopts ?q ab:cd “$@”`但是getopt命令不能很好的处理带有空格的参数值,它将空格解析为参数分隔符,而不是将双引号引起来的两个 值合并成一个参数。解决办法如下:3)更高级的getopts命令getopts命令顺序的对现有的shell参数变量进行处理,每调用一次,只处理命令中检测到的参数中的一个。处理完所有参数后,以大于0的退出 状态退出。非常适宜于在循环中解析所有命令行参数格式为: getopts optstring variable$optarg包含需要参数值的选项要使用的值,$optind包含getopts停止处理时在参数列表中的位置。注意:当getopts处理时,会将选项前的-去掉,所以对应的case中不需要破折号。

好的特性:1)可以在参数值中包含空格2)选项字母和参数值中间可以没有空格3)将在命令行中找到的未定义的选项都绑定为单一的输出——问号

5、标准化选项有一些字母选项具有标准含义。最好按照标准含义定义选项意义-a ?c ?d ?e ?f ?h ?i ?l ?n ?o ?q ?r ?s ?v- x ?y

6、获取用户输入当需要在执行过程中获得执行脚本人员的输入,使用read命令1)基本读取read命令接受标准输入或其他文件描述符输入。读入后将数据放入 一个标准变量中。-p 允许在read命令行中直接指定一个提示。可以指定多个变量,也可以不指定将放置在reply环境变量中)2)计时使用-t指定一个计时器,计时数满还未输入,read返回一个非0的退出状态。使用-n指定输入的字符个数,输入达到预定数目时,就自动结束输入3)默读使用-s使输入不显示在终端例如输入密码)4)读取文件最常用的方法是使用cat命令,并通过管道传给包含read的while语句。例子:复制代码 代码示例:

推荐整理分享shell脚本命令行参数简介(shell脚本命令行参数),希望有所帮助,仅作参考,欢迎阅读内容。

shell脚本命令行参数简介(shell脚本命令行参数)

文章相关热门搜索词:shell脚本命令行操作注意事项,shell脚本 命令,shell脚本命令行操作注意事项,shell脚本命令行参数,shell 脚本执行命令,shell脚本命令行参数,shell脚本命令行操作注意事项,shell脚本命令行参数,内容如对您有帮助,希望把文章链接给更多的朋友!

linux shell命令行参数用法详解 习惯使用linux命令行来管理linux系统,例如:$date二::CST$用户登录时,实际进入了shell,它遵循一定的语法将输入的命令加以解释并传给系统。

linux shell命令行选项与参数用法详解 问题描述:在linuxshell中如何处理tail-naccess.log这样的命令行选项?在bash中,可以用以下三种方式来处理命令行参数,每种方式都有自己的应用场景。1

shell脚本中执行时提示“没有那个文件或目录”的解决办法 出现badinterpreter:Nosuchfileordirectory的原因,是文件格式的问题。这个文件是在Windows下编写的。换行的方式与Unix不一样,但是在vim下面如果不Set一下又完全

标签: shell脚本命令行参数

本文链接地址:https://www.jiuchutong.com/biancheng/374819.html 转载请保留说明!

上一篇:bash shell命令行选项与修传入参数处理(bash linux命令)

下一篇:linux shell命令行参数用法详解(linux中shell命令)

  • 未交增值税和应交增值税科目怎么调整
  • 外聘专家发生的差旅费
  • 报销费用明细和发票
  • 加计扣除和研发费不一致
  • 以前年度损益调整属于哪类科目
  • 支付货款未收到产品算货值吗
  • 进口奶牛缴纳增值税
  • 应交房产税通过应交税费核算吗
  • 技术转让收入纳税调整
  • 发生销货退回增值税专用发票如何处理
  • 建筑业简易征收差额征税的计算案例
  • 预付的固定资产没有收到发票怎么入账
  • 两个单位同一个法人
  • 17%增值税发票怎么计算成13%
  • 理财收益高的产品
  • 增值税发票增量流程网上怎么申请
  • 建安费增值税怎么算
  • 内销征税是什么意思
  • 一般纳税人的资质在哪里打印
  • 本年利润怎么算利润总额
  • 费用报销审批单填写样本图片
  • 免征房产税是多少
  • 融资租赁不动产税务处理
  • 自营出口与委托代理哪个划算
  • 月末进项税额结转会计分录
  • 轩辕剑3字体
  • 用U盘安装苹果系统
  • 文件类型有几种分类
  • 为什么win10系统更新不了
  • 原材料和加工费能分着开票么
  • 存贷款基准利率和lpr
  • mac语音备忘录文件怎样转换成mp3
  • php7 数组
  • 计算土地增值税时增值额的扣除项目包括
  • sk是什么软件的缩写
  • 应付职工薪酬是负债吗
  • 存货核算方法可以变更吗
  • 报销钱大写数字
  • vue中的$el
  • mkfifo命令
  • 帝国cms功能
  • 收据能抵成本吗
  • 进项大于销项怎么结转增值税
  • 织梦模板转讯睿模板
  • 土石方收据图片
  • 以货换货账务怎么处理
  • 个人捐赠支出税前扣除条件
  • 预付款已经开了发票要怎么做账
  • 企业其他业务收入要交税吗
  • 小规模纳税人企业所得税怎么算
  • 残保金申报常见问题
  • 原材料转固定资产账务处理
  • 进项税认证怎么按税率统计明细
  • 记账凭证附单据数怎么算
  • 拆除费计入哪个科目
  • 财务预算怎么做模板
  • 备查账簿有没有固定的格式
  • sqlserver的分页语句
  • Win10 Build 17035自制64位中国版十合一ISO镜像下载地址
  • windows10关闭usb端口
  • 无光驱是不是放不了光盘
  • 苹果电脑bim
  • windows 10 20h2推送
  • 验证win10
  • win7系统桌面不能新建文件夹
  • linux怎么清除内存
  • Win10系统如何使用虚拟光驱加载ISO镜像文件?
  • 关闭默认共享和共享文件夹
  • 简单的jquery插件实例
  • VectorField2D
  • node优秀库
  • android 图片滚动
  • Windows环境下搭建Python开发环境的方法
  • The method findViewById(int) is undefined for the type FragmentHome报错
  • 详解Python的collections模块中的deque双端队列结构
  • 道路运输业属于工贸行业吗
  • 电子税务局怎么删除办税员
  • 广东省电子税务局登录方式
  • 税务局函调情况说明
  • 西安市地方税务局高新技术产业开发区分局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设