当前位置:香港六合彩2019年全年资料 > 取命令行 >

linux中设计一个shell脚本程序可以接受命令行输入的参数执行相应

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部之所以用到命令行参数,关键在于shell脚本需要与运行脚本的人员进行交互。

  bash shell提供了命令行参数添加在命令后面的数据值)、命令行选项修改命令行为的单字符值)和直接读取键盘输入。

  其中$0为程序名称,$1为第一个参数,$2为第二个参数,依次类推,直到$9为第九个参数。

  同时输入多个参数可以是数值也可以是字符串)时,必须使用空格分隔要想在参数值中包含空格,就必须使用单引号或双引号)

  当参数多于9个后,必须在shell脚本内使用大括号将变量括起来,如${10}。从而可以使用任意个参数。

  传递给变量$0的字符串实际上是程序的路径根据调用方法决定是相对还是绝对路径)。

  使用basename命令可以去掉路径前缀,只获得程序名称名字中不 可以有空格)。

  好的方法是对参数进行检查来保证使用参数前确实存在数据,可以使用-n参数来检查。

  使用特殊变量$#测试执行脚本时包含的命令行参数个数。脚本中任何位置都可以 使用$#

  可以使用${!#}来返回最后一个命令行参数当无参数时,$#为0,而${!#}为程序名)

  变量$*将命令行中提供的所有参数作为一个单词处理,它将多个参数看成 一个参数。

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

  shift命令能够改变命令行参数的相对位置。默 认将每个参数变量左移一个位置变量$0不变,把$1丢弃,注意不可以恢复了!)

  可以使用处理命令行参数相同的方法处理选项,抽取时使用case语句进行判断是否符合选项格式。

  同时使用选项和参数时,可以使用--指示选项列表的结束。发现--后,shell就知道后面的是普通参数了,停止使用case处理选项。

  选项后紧跟参数值,一种方法是在case中对应选项后使用shift和读后一位参数的方法处理。更好的方法如 下:

  getopt命令在处理选项和参数时非常方便。它对参数进行重新组 织,以便于解析

  getopt可以接受任意形式的选项和参数列表,并自动将它们转换为适当的格式。

  选项字符串(opstring)用于定义命令行中的有效选项字母,以及哪些选项字母需要参数值。

  需要使用set命令将现有的命令行选项和参数替换为getopt命令生成的 格式化形式。

  但是getopt命令不能很好的处理带有空格的参数值,它将空格解析为参数分隔符,而不是将双引号引起来的两个 值合并成一个参数。解决办法如下:

  getopts命令顺序的对现有的shell参数变量进行处理,每调用一次,只处理命令中检测到的参数中的一个。处理完所有参数后,以大于0的退出 状态退出。

  $optarg包含需要参数值的选项要使用的值,$optind包含getopts停止处理时在参数列表中的位置。

  注意:当getopts处理时,会将选项前的-去掉,所以对应的case中不需要破折号。

  read命令接受标准输入或其他文件描述符输入。读入后将数据放入 一个标准变量中。

  使用-t指定一个计时器,计时数满还未输入,read返回一个非0的退出状态。

  最常用的方法是使用cat命令,并通过管道传给包含read的while语句。

http://mjlynchlaw.com/quminglingxing/423.html
点击次数:??更新时间2019-07-03??【打印此页】??【关闭
  • Copyright © 2002-2017 DEDECMS. 织梦科技 版权所有  
  • 点击这里给我发消息
在线交流 
客服咨询
【我们的专业】
【效果的保证】
【百度百科】
【因为有我】
【所以精彩】