shell 命令行参数(getopt和getopts)】的更多相关文章

getopt 与 getopts 都是 Bash 中用来获取与分析命令行参数的工具,常用在 Shell 脚本中被用来分析脚本参数. 两者的比较 (1)getopts 是 Shell 内建命令,getopt 是一个独立外部工具 (2)getopts 使用语法简单,getopt 使用语法较复杂 (3)getopts 不支持长参数(如:--option ),getopt 支持 (4)getopts 不会重排所有参数的顺序,getopt 会重排参数顺序(这里的区别下面会说明) (5)getopts 出现…
getopt 命令 使用getopt命令,可以解析任何命令行选项和参数,但是用法比较复杂.getopt的命令用法如下: $ getopt --help 用法: getopt optstring parameters getopt [options] [--] optstring parameters getopt [options] -o|--options optstring [options] [--] parameters 选项: -a, --alternative 允许长选项以 - 开始…
命令行参数 $0 表示程序名.$1 至 \$9则是位置参数.$# 表示参数的个数.$* 将所有参数当做一个整体来引用$@ 把每个参数作为一个字符串返回,可以使用for循环来遍历$? 最近一个执行的命令的退出状态.0表示执行成功$_ 上一个命令的最后一个参数.使用快捷键 ESC+. 也是这个效果 位置参数 位置参数不止9个,更多的参数也是一样支持的.只是要使用${10}这样的形式引用.$1 和 ${1}的效果是一样的.不用花括号的话,$10 会被认为是 $1 和一个字符 0. 带空格的参数值每个参…
# -*- coding:utf-8 -*- import sys def test(): """ 参数列表:sys.argv 参数个数:len(sys.argv) 脚本名: sys.argv[0] 参数1: sys.argv[1] 参数2: sys.argv[2] """ print "参数个数为:"+ str(len(sys.argv)) print "参数列表为:"+ str(sys.argv) pr…
一.如何让python脚本支持命令行参数 1.使用click模块 如何使用这个模块,在我前面的博客已经写过了,可参考:https://www.cnblogs.com/Zzbj/p/11309130.html 2.使用getopt模块 getopt模块可短选项和长选项两种格式.短选项格式为"-"加上单个字母选项:长选项为"--"加上一个单词 3.click和getopt的不同点 click模块是第三方的模块,而getopt是内置的模块 click模块的功能比较强大,自…
getopt中的函数: getopt.getopt(sys.argv[1:], shortopts, longopts=[]) args指的是当前脚本接收的参数,它是一个列表,可以通过sys.argv获得 shortopts 是短参数 longopts 是长参数 如果不知道长参数, 短参数是什么的话,看下面这个例子: # test.py import getoptimport sys def usage(): print("This is a help message") def te…
getopt(分析命令行参数) getopt(分析命令行参数) 短参数的定义 返回值 范例 getopt_long 相关函数表头文件#include<unistd.h> 函数声明int getopt(int argc,char * const argv[ ],const char * optstring); 全局变量 extern char *optarg; extern int optind, opterr, optopt;  //索引/错误输出标志/最后一个未知选项 函数说明getopt(…
在编写需要命令行参数的C程序的时候,往往我们需要先解析命令行参数,然后根据这些参数来启动我们的程序. C的库函数中提供了两个函数可以用来帮助我们解析命令行参数:getopt.getopt_long. getopt可以解析短参数,所谓短参数就是指选项前只有一个“-”(如-t),而getopt_long则支持短参数跟长参数(如"--prefix"). getopt函数 #include<unistd.h> int getopt(int argc,char * const arg…
一.说明 shell中获取参数可以直接使用$1.$2等形式来获取,但这种方式有明显的限制:每个参数的位置是固定的.比如如果在设计上$1是ip地址$2是端口,那在执行时就必须第一个参数是ip第二个参数是端口而不能反过来. shell提供了getopt和getopts来解析参数,getopt比getopts功能强一些getopts比getopt简单一些:总体而言getopt和getopts都差强人意. 二.使用getopt解析参数 getopt比getopts强一些复杂一些:能在命令行中单独使用.支…
特殊变量列表 变量 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数.例如,第一个参数是$1,第二个参数是$2. $# 传递给脚本或函数的参数个数. $* 传递给脚本或函数的所有参数. $@ 传递给脚本或函数的所有参数.被双引号(" ")包含时,与 $* 稍有不同,下面将会讲到. $? 上个命令的退出状态,或函数的返回值. $$ 当前Shell进程ID.对于 Shell 脚本,就是这些脚本所在的进程ID. 命令行参数 运行脚本时传递给脚本的参数…