用bash解析命令行参数时,可以调用外部程序getopt也可以用内部命令getopts。尽管两者在使用时在很多地方相似,但是细节部分还是有很多不同的,两者的功能也不尽相同。这里提供一个我认为几近完美的解决方案,它支持的功能有: 对短选项(如 "-a foo")和长选项(如 "--input-file foo.txt")都支持,只有getopt支持
1. getopts是bash内建命令的, 而getopt是外部命令 2. getopts不支持长选项, 比如: --date 3. 在使用getopt的时候, 每处理完一个位置参数后都需要自己shift来跳到下一个位置, getopts只需要在最后使用shift $(($OPTIND - 1))来跳到parameter的位置。 4. 使用getopt时, 在命令行输入的位置参数是什么, 在ge...
1. getopts是bash内建命令的, 而getopt是外部命令 2. getopts不支持长选项, 比如: --date 3. 在使用getopt的时候, 每处理完一个位置参数后都需要自己shift来跳到下一个位置, getopts只需要在最后使用shift $(($OPTIND - 1))来跳到parameter的位置。 4. 使用getopt时, 在命令行输入的位置参数是什么, 在ge...
1. getopts是bash内建命令的, 而getopt是外部命令 2. getopts不支持长选项, 比如: --date 3. 在使用getopt的时候, 每处理完一个位置参数后都需要自己shift来跳到下一个位置, getopts只需要在最后使用shift $(($OPTIND - 1))来跳到parameter的位置。 4. 使用getopt时, 在命令行输入的位置参数是什么, 在ge...
以前我总想知道如何为我的Bash脚本创建命令行参数。经过搜索,我发现了2个函数可以处理这个问题,getopt 函数和 getopts 函数。我无意争论哪一个函数更好的。getopts 是一个shell内建命令,而且似乎比 getopt 更容易实现这个功能,所以在这篇文章里我准备讲讲getopts。
在python 中有个获取命令行参数的函数叫 getopt(args, shortopts, longopts=[]) 通常我们使用的时候是如下的形式: import sys import getopt opts,args=getopt.getopt( sys.args[1:], "ab:", ["help","name="] ) 如果我们输入的命令参数是 -a -b1 --name=12 --help ...
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/getopts.html“getops”和“getopt”非常...
getoptvsgetoptsvsgetoptions getoptgetoptsgetoptions Implementationexternal commandshell builtin commandshell script PortabilityNoYesYes Short option beginning with-✔️✔️✔️ Short option beginning with+❌⚠ zsh, ksh, mksh only✔️ ...
每个人或多或少总会碰到要使用并且自己完成编写一个最基础的Bash脚本的情况。真实情况是,没有人会说“哇哦,我喜欢写这些脚本”。所以这也是为什么很少有人在写的时候专注在这些脚本上。 我本身也不是一个Bash脚本专家,但是我会在本文中跟你展示一个最基础最简单的安全脚本模板,会让你写的Bash脚本更加安全实用,你...
getopt命令并不是bash的内建命令,它是由util-linux包提供的外部命令。 getopt 与 getopts 的区别 getopts 是 shell 内建命令, getopt 是一个独立外部工具 getopts 使用语法简单,getopt 使用语法复杂 getopts 不支持长参数(长选 bash 获取参数 可选参数