本文目录
shell getopts里的参数必须输入吗
在linux系统下可以使用man命令查看当前运行版本详细信息。 1、Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行。
shell 脚本参数解析之 getopt getopts
shell中获取参数可以直接使用$1、$2等形式来获取,但这种方式有明显的限制: 每个参数的位置是固定的。 比如如果在设计上 $1是ip地址$2是端口,那在执行时就必须第一个参数是ip第二个参数是端口而不能反过来。
shell提供了getopt和getopts来解析参数, getopt比getopts功能强一些getopts比getopt简单一些; 总体而言getopt和getopts都差强人意。
getopt比getopts强一些复杂一些:能在命令行中单独使用、支持长选项格式、支持选项值可选。更多说明见注释。
执行结果:
参考:***隐藏网址******隐藏网址***
三、使用getopts解析参数 getopts比getopt弱一些简单一些:不能在命令行中单独使用、不支持长选项格式、不支持选项值可选。更多说明见注释。
执行结果:
参考:***隐藏网址***
shell编程如何迅速枚举
while getopts ":l:c:" opt;do case $opt in l) dict_length=$OPTARG;; c) dict_char=$OPTARG;; \?) echo ’Usage: dict.sh -l dict_length -c "dict_char"’ exit 1;; esacdoneshift $(($OPTIND - 1)) #根据字典的长度产生单词,象这样:${pi}${pi-1}.....${p1}key_str(){ for((i=$1;i!=0;i--));do pswd=$pswd\${p$i} done} #用字典替换${pi}char_sub(){ idx=$1 for char in $dict_char;do eval p${idx}=$char if ;then ((--idx)) char_sub $idx ((++idx)) continue fi eval echo $pswd done}
shell 脚本中getopt 和 getopts 的区别
1)getopts 是bash的内置命令,用命令help getopts查看其帮助。2)getopt是外部命令,用命令which getopt查看其安装的位置,例如:$ which getopt/usr/bin/getopt用getopt --help或者getopt -h查看简要帮助或者用man getopt查看详细帮助(按空格显示下一页,按q退出)。以上是简洁回答,仅供参考,谢谢!