http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html - [x] Parser - [x] Basic line parser - [x] Comments - [x] Quoting, escaping - [x] Aliases - [x] Parameters, variables - [x] Word expansions - [x] Parameter expansion - [x] Variables - [x] Expressions - [x] Command substitution - [x] `` `…` `` - [x] `$(…)` - [x] Arithmetic expansion - [x] Redirections - [x] Redirecting IO - [x] Here-document - [x] Pipelines - [x] Async lists - [x] Compound commands - [x] `{…}` - [x] `(…)` - [x] Control structures - [x] `if`, `elif`, `else`, `fi` - [x] `while`, `for`, `until`, `do`, `done` - [x] `case`, `in`, `esac` - [x] Function definition - [ ] Shell - [x] Simple commands - [x] Redirections - [x] Redirecting IO - [x] Here-document - [x] Pipelines - [x] and-or lists - [x] Async lists - [x] Compound commands - [x] `{…}` - [x] `(…)` - [x] Parameters, variables - [x] Shell variables - [x] Positional parameters, special parameters - [x] Word expansions - [x] Tilde expansion - [x] Parameter expansion - [x] Variables - [x] Expressions - [x] Command substitution - [x] Arithmetic expansion - [x] Field splitting - [x] Pathname expansion - [x] Quote removal - [x] Control structures - [x] Conditions - [x] Loops - [x] Case - [x] Aliases - [x] Function definition - [x] CLI flags - [x] Job control - [ ] Exit status and errors - [x] Signals and error handling - [x] Pattern matching - [x] POSIX build system - [x] Special builtins - [x] `break` - [x] `:` (colon) - [x] `continue` - [x] `.` (dot) - [x] `eval` - [x] `exec` - [x] `exit` - [x] `export` - [x] `readonly` - [x] `return` - [x] `set` - [x] `shift` - [x] `times` - [x] `trap` - [x] `unset` - [x] Regular builtins - [x] `type` - [x] `ulimit` - [x] `alias` - [x] `bg` - [x] `cd` - [x] `command` - [x] `false` - [x] `fg` - [x] `getopts` - [x] `hash` - [x] `jobs` - [x] `pwd` - [x] `read` - [x] `true` - [x] `umask` - [x] `unalias` - [x] `wait`
http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html
`…`$(…){…}(…)if,elif,else,fiwhile,for,until,do,donecase,in,esac{…}(…)break:(colon)continue.(dot)evalexecexitexportreadonlyreturnsetshifttimestrapunsettypeulimitaliasbgcdcommandfalsefggetoptshashjobspwdreadtrueumaskunaliaswait