[[using-shell-options]] = Options ifndef::snippets[:snippets: ../../test/java/org/springframework/shell/docs] Command line arguments can be separated into options and positional parameters. Following sections describes features how options are defined and used. We first go through some basics about using options and then go into details about various ways how options and arguments works. Generally speaking an _option_ is something after a commands prefixed with either `-` or `--`. An _option_ can either have a value or not depending on its context. Options can be defined with a target method using annotations with a method arguments or with programmatically using `CommandRegistration`. NOTE: In below sections `@ShellOption` refer to a _legacy annotation model_ and `@Option` refer to an _annotation model_.