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 [2015/06/09 20:07]
ogryzek Correct typo: change "an" to "and"
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!)
Line 11: Line 10:
   * ''​getopts''​ is defined in POSIX(r).   * ''​getopts''​ is defined in POSIX(r).
  
-Some other methods to parse positional parameters ​(without ''​getopt(s)''​) ​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