ksh Syntax

The following rules do not constitute a formal grammar. They merely describe the common syntactic forms in a simplified manner.

PIPELINE        ::=     CMDLIST [ | CMDLIST ]...

CMDLIST         ::=     COMMAND
                |       CMDLIST [ && PIPELINE ]...
                |       CMDLIST [ || PIPELINE ]...
                |       CMDLIST [ ; PIPELINE ]...
                |       CMDLIST & [ PIPELINE & ]...
                |       ( CMDLIST )
                |       { CMDLIST ; }
                |       FUNCTIONDEF

FUNCTIONDEF     ::=     function IDENT { CMDLIST; }
                |       IDENT () { CMDLIST; }

COMMAND         ::=     if CMDLIST; then CMDLIST;
                        [ elif CMDLIST; then CMDLIST; ]...
                        [ else CMDLIST; ] fi
                |       case WORD in [ PATTERN ) CMDLIST ;; ]... esac
                |       for IDENT [ in WORD... ] ; do CMDLIST; done
                |       select IDENT [ in WORD... ] ; do CMDLIST; done
                |       while CMDLIST; do CMDLIST; done
                |       until CMDLIST; do CMDLIST; done
                |       when WHENARGS { CMDLIST; }
                |       (( EXPRESSION ))
                |       time PIPELINE
                |       IDENT=VALUE... COMMAND
                |       FUNCTIONCALL
                |       BUILTIN
                |       UNIXCMD

[ - `[ expr ]' is shorthand for test expr. The [ expr ] command is an alternative syntax for test expr.