Syntaxs 

:case 

 case @$1 in @-*) flag=$1; shift;; esac

:loop 

while list do list done
until list do list done

The while command continuously executes the do list as long as the last command in list returns an exit status of zero. The until command is identical to the while command, except that the test is negated; the do list is executed as long as the last command in list returns a non-zero exit status. The exit status of the while and until commands is the exit status of the last do list command executed, or zero if none was executed.

documented on: 1999.12.01