5

Can I use getopts for parsing command-line arguments in my bash scripts(not sh) without worrying about another depedency?

7
$ type getopts
getopts is a shell builtin

getopts is built in, so it's present anywhere bash is.

To be sure of that you'd need to check the bash documentation to see whether it's an optional feature — it isn't.

More precisely, this tells you that getopts is available in this particular version of bash. You need to check the release notes for older versions to see when getopts was introduced; that happened before the dawn of time (it was already present in bash 1.14 and you'd have a hard time finding a version that old).

Even better, you can count on getopts even in shells that aren't bash, since it's required by POSIX.

  • Note that getopt is not the same as getopts. getopt is a standalone program. – Bryce Guinta Feb 24 '17 at 16:39
1

Yes, check man getopts. Even though getopts is a program in /usr/bin You can see that it redirects you to a list of builtin bash commands BASH_BUILTINS(1) and that the bash documentation specifically refers to getopts.

    getopts optstring name [args]
        ...

For more detailed usage of how to use getopts see "example of how to use getopts in bash"

  • 1
    Woud you mind detailing more the answer, man page quotation, how to use? There is nothing against you answering you own posts, however I would advise you to write answers of better quality. – Rui F Ribeiro Jul 6 '16 at 15:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.