It returns the current shell flags. The variable $-contains shell flags that are currently active in your terminal. These flags determine how your shell will work for you. In your case, these flags have the following meaning (note that they are all by default):
h : short for "hashall" (read that "hash all"), this tells bash to remember the location of the commands that it found by querying your PATH.
i: "", ,
Im ( )! 1
m: "", bash (
, bg).
B: "braceexpand" ( " " ),
bash2.
H: "histexpand" ( "hist [history] expand" ),
,
3.
set. :
set +H
echo $-
himB
H. -
set -H
echo $-
himBH
. , + , - .
: