From man bash
:
--
A--
signals the end of options and disables further option processing. Any arguments after the--
are treated as
filenames and arguments. An argument of-
is equivalent to--
.
In other words, --
is used to signify the end of command options. After it, only positional parameters are accepted.
For example, we want to look for the "--color" string using grep
:
$ echo "hello --color" | grep --color
usage: grep [-abcDEFGHhIiJLlmnOoqRSsUVvwxZ] [-A num] [-B num] [-C[num]]
[-e pattern] [-f file] [--binary-files=value] [--color=when]
[--context[=num]] [--directories=action] [--label] [--line-buffered]
[--null] [pattern] [file ...]
We got an error, since --color
expect a value. We can fix by signaling the end of options to the grep command using --
:
$ echo "hello --color" | grep -- --color
hello --color
It's important to note that not all bash builtin commands accept the --
as an end-of-options marker.
Top comments (0)