第一个参数是一个字符串,包括字符和“:”,每一个字符都是一个有效的选项,如果字符后面带有“:”,表示这个字符有自己的参数。 getopts从命令中获取这些参数,并且删去了“-”,并将其赋值在第二个参数中,如果带有自己参数,这个参数赋值在“OPTARG”中。 这里变量$OPTARG存储相应选项的参数,而$OPTIND总是存储原始$*...
手工处理方式能满足大多数的简单需求,配合shift使用也能构造出强大的功能,但在要处理复杂选项的时候建议用下面的两种方法。 2. getopts/getopt 处理命令行参数是一个相似而又复杂的事情,为此,C提供了getopt/getopt_long等函数, C++的boost提供了Options库,在shell中,处理此事的是getopts和getopt. getopts和getopt功能相...
在bash中,可以用以下三种方式来处理命令行参数,每种方式都有自己的应用场景。1.直接处理,依次对$1,$2,...,$n进行解析,分别手工处理;2.getopts来处理,单个字符选项的情况(如:-n 10 -f file.txt等选项);3.getopt,可以处理单个字符选项,也可以处理长选项long-option(如:--prefix=/home等)。总结:一般小...
脚本会通过特殊的变量来处理命令行参数。 1.1 读取参数 bash shell会将一些称为位置参数(positional parameter)的特殊变量分配给输入到命令行中的所有参数。这也包括shell所执行的脚本名称。位置参数变量是标准的数字:$0是程序名,$1是第一个参数,$2是第二个参数,依次类推,直到第九个参数$9。 #!/bin/bash # us...
1.解析选项参数。shell会解析命令行中的选项参数,并根据命令的需求进行处理。一般来说,选项参数可以有多个,也可以没有,可以单独出现,也可以与其他参数一起出现。在解析选项参数时,shell需要识别选项的名称和值,以及选项之间的关系。 2.处理非选项参数。shell会将命令行中的非选项参数提取出来,并根据命令的需求进行处...
复制代码 在这个例子中,getopts命令用来解析命令行选项,:后面跟着的字符表示需要参数的选项,opt保存当前解析到的选项,OPTARG保存选项的参数。case语句用来根据不同的选项做不同的处理。 使用shift $((OPTIND - 1))命令来移除已经解析过的选项,剩下的参数可以通过$@来获取。 0 赞 0 踩...
shell 命令行参数处理 dd文章分类 1.getopts命令 #!/bin/bashwhilegetopts"a:bc"arg#选项后面的冒号表示该选项需要参数docase$argina)echo"a's arg:$OPTARG"#参数存在$OPTARG中;;b)echo"b";;c)echo"c";;?)#当有不认识的选项的时候arg为?echo"unkonw argument"exit1;;esacdone[root@zhu ~]# sh a....
1.1 读取命令行参数 bash shell 中有一些特殊变量, 被称为 位置参数(positional parameter). 位置参数的标准数字是: $0 是程序名; $1 是第一个参数; $2 是第二个参数; 依次类推, $9 是第九个参数. ${10} 是第十个参数… 看一个求 阶乘(factorial) 的例子: ...
1、命令行参数 (1)读取参数 bash shell使用位置参数的特殊变量记录命令行参数,$0是程序名,$1~$9依次为输入参数; 如果脚本需要多余9个变量,需要将变量数字加花括号,如${10}; 命令行输入的参数需要以空格分隔,当空格作为参数的一部分时可以使用引号分开; ...