Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
dict:terms:end_of_options [2011/03/20 08:47] thebonsai [See also] |
dict:terms:end_of_options [2020/01/02 16:21] ftheile Add link to mentioned POSIX spec. |
||
---|---|---|---|
Line 5: | Line 5: | ||
This is problematic when a non-option argument has to be specified that begins with a dash. A common example for this are filenames. | This is problematic when a non-option argument has to be specified that begins with a dash. A common example for this are filenames. | ||
- | Many utilities use the convention to specify two consecutive dashes (''<nowiki>--</nowiki>'') to signal "end of options at this point". Beyond this tag, no options are are processed anymore, even if an argument begins with a dash. | + | Many utilities use the convention to specify two consecutive dashes (''<nowiki>--</nowiki>'') to signal "end of options at this point". Beyond this tag, no options are processed anymore, even if an argument begins with a dash. |
Example: You want to list (''ls'') the file with the name ''-hello''. With common option processing, this could end up in the ls-options ''-h'', ''-e'', ''-l'' and ''-o'' and probably in an error message about invalid options. You use this to avoid the wrong option processing: | Example: You want to list (''ls'') the file with the name ''-hello''. With common option processing, this could end up in the ls-options ''-h'', ''-e'', ''-l'' and ''-o'' and probably in an error message about invalid options. You use this to avoid the wrong option processing: | ||
<code> | <code> | ||
- | ls -- hello | + | ls -- -hello |
</code> | </code> | ||
- | POSIX(r) specifies that every utility should follow this rule ("utility syntax guidelines"), except | + | POSIX(r) specifies that every utility should follow this rule (see ch. [[https://pubs.opengroup.org/onlinepubs/9699919799.2013edition/basedefs/V1_chap12.html|12.2 Utility Syntax Guidelines]]), except |
* ''echo'' (historical reasons) | * ''echo'' (historical reasons) | ||
* ''test'' (obvious parsing reasons) | * ''test'' (obvious parsing reasons) |