%[DIGITS | WORD] [&]               (( expression ))
 . filename                         :
 [ arg... ]                         [[ expression ]]
 alias [-p] [name[=value] ... ]     bg [job_spec]
 bind [-lpvsPVS] [-m keymap] [-f fi break [n]
 builtin [shell-builtin [arg ...]]  case WORD in [PATTERN [| PATTERN].
 cd [-L|-P] [dir]                   command [-pVv] command [arg ...]
 compgen [-abcdefgjksuv] [-o option complete [-abcdefgjksuv] [-pr] [-o
 continue [n]                       declare [-afFirtx] [-p] name[=valu
 dirs [-clpv] [+N] [-N]             disown [-h] [-ar] [jobspec ...]
 echo [-neE] [arg ...]              enable [-pnds] [-a] [-f filename] 
 eval [arg ...]                     exec [-cl] [-a name] file [redirec
 exit [n]                           export [-nf] [name[=value] ...] or
 false                              fc [-e ename] [-nlr] [first] [last
 fg [job_spec]                      for NAME [in WORDS ... ;] do COMMA
 for (( exp1; exp2; exp3 )); do COM function NAME { COMMANDS ; } or NA
 getopts optstring name [arg]       hash [-lr] [-p pathname] [-dt] [na
 help [-s] [pattern ...]            history [-c] [-d offset] [n] or hi
 if COMMANDS; then COMMANDS; [ elif jobs [-lnprs] [jobspec ...] or job
 kill [-s sigspec | -n signum | -si let arg [arg ...]
 local name[=value] ...             logout
 popd [+N | -N] [-n]                printf format [arguments]
 pushd [dir | +N | -N] [-n]         pwd [-PL]
 read [-ers] [-u fd] [-t timeout] [ readonly [-anf] [name[=value] ...]
 return [n]                         select NAME [in WORDS ... ;] do CO
 set [--abefhkmnptuvxBCHP] [-o opti shift [n]
 shopt [-pqsu] [-o long-option] opt source filename
 suspend [-f]                       test [expr]
 time [-p] PIPELINE                 times
 trap [arg] [signal_spec ...] or tr true
 type [-afptP] name [name ...]      typeset [-afFirtx] [-p] name[=valu
 ulimit [-SHacdflmnpstuv] [limit]   umask [-p] [-S] [mode]
 unalias [-a] [name ...]            unset [-f] [-v] [name ...]
 until COMMANDS; do COMMANDS; done  variables - Some variable names an
 wait [n]                           while COMMANDS; do COMMANDS; done