getopts 总是可用于 Bash 吗?

getopts 总是可用于 Bash 吗?

我可以使用它getopts来解析脚本中的命令行参数bash(而不是sh)而不用担心其他依赖性吗?

答案1

$ type getopts
getopts is a shell builtin

getopts是内置的,所以它存在于 bash 所在的任何地方。

为了确定这一点,您需要检查 bash 文档以查看它是否是可选功能 - 事实并非如此。

更准确地说,这告诉您getopts在这个特定版本的 bash 中可用。您需要检查旧版本的发行说明以了解何时getopts推出;这发生在黎明之前(它已经存在于 bash 1.14 中,你很难找到那么旧的版本)。

getopts更好的是,即使在非 bash 的 shell 中您也可以信赖,因为它是POSIX 要求

答案2

是的,检查一下man getopts。即使getopts是 中的程序,/usr/bin您也可以看到它会将您重定向到内置 bash 命令列表BASH_BUILTINS(1),并且 bash 文档专门引用了getopts.

    getopts optstring name [args]
        ...

有关如何使用 getopts 的更详细用法请参见“如何在 bash 中使用 getopts 的示例”

相关内容