Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
howto:getopts_tutorial [2018/03/20 22:55]
ffox8 [Description] clear English rather than (s)()()()((((s)))s)) bs
howto:getopts_tutorial [2018/03/20 23:57]
ffox8 [See also] link
Line 4: Line 4:
  
 ===== Description ===== ===== Description =====
- +**Note that** ''​getopts''​ is neither able to parse GNU-style long options (''<​nowiki>​--</​nowiki>​myoption''​) nor XF86-style long options (''​-myoption''​). So, when you want to parse command line arguments in a professional ​;-) way, ''​getopts'' ​may or may not work for you. Unlike its older brother ''​getopt''​ (note the missing //s//!), it's a shell builtin command. The advantages are:
-When you want to parse command line arguments in a professional way, ''​getopts'' ​is the tool of choice. Unlike its older brother ''​getopt''​ (note the missing //s//!), it's a shell builtin command. The advantages are:+
   * No need to pass the positional parameters through to an external program.   * No need to pass the positional parameters through to an external program.
   * Being a builtin, ''​getopts''​ can set shell variables to use for parsing (impossible for an //​external//​ process!)   * Being a builtin, ''​getopts''​ can set shell variables to use for parsing (impossible for an //​external//​ process!)
   * There'​s no need to argue with several ''​getopt''​ implementations which had buggy concepts in the past (whitespace,​ ...)   * There'​s no need to argue with several ''​getopt''​ implementations which had buggy concepts in the past (whitespace,​ ...)
   * ''​getopts''​ is defined in POSIX(r).   * ''​getopts''​ is defined in POSIX(r).
 +
 +----
  
 Some other methods to parse positional parameters - using neither **getopt** nor **getopts** - are described in: [[scripting:​posparams | How to handle positional parameters]]. Some other methods to parse positional parameters - using neither **getopt** nor **getopts** - are described in: [[scripting:​posparams | How to handle positional parameters]].
  
-**Note that** ''​getopts''​ is not able to parse GNU-style long options (''<​nowiki>​--</​nowiki>​myoption''​) or XF86-style long options (''​-myoption''​)! 
  
 ==== Terminology ==== ==== Terminology ====
Line 296: Line 296:
   * Internal: [[syntax:​ccmd:​while_loop]]   * Internal: [[syntax:​ccmd:​while_loop]]
   * POSIX [[http://​pubs.opengroup.org/​onlinepubs/​9699919799/​utilities/​getopts.html#​tag_20_54|getopts(1)]] and [[http://​pubs.opengroup.org/​onlinepubs/​9699919799/​functions/​getopt.html|getopt(3)]]   * POSIX [[http://​pubs.opengroup.org/​onlinepubs/​9699919799/​utilities/​getopts.html#​tag_20_54|getopts(1)]] and [[http://​pubs.opengroup.org/​onlinepubs/​9699919799/​functions/​getopt.html|getopt(3)]]
 +  * [[https://​stackoverflow.com/​questions/​192249/​how-do-i-parse-command-line-arguments-in-bash| parse CLI ARGV ]]
  • howto/getopts_tutorial.txt
  • Last modified: 2018/03/21 00:07
  • by ffox8