You can also do double precision floating point arithmetic. Almost the complete set of C language operators are available with the same syntax and precedence. Arithmetic expressions can be used to as an argument expansion or as a separate command. KSH-93 supports both indexed and associative arrays. The subscript for an indexed array is an arithmetic expression, whereas, the subscript for an associative array is a string.
Functions allow local variables and provide scoping for exception handling.
Functions can be searched for and loaded on first reference the way scripts are. You can also specify attributes, such as upper and lower case, field width, and justification to shell variables. Compound variables can be defined and variables can be passed by reference. In addition, each variable can have one or more disciplines associated with it to intercept assignments and references. This feature allows you to stop and restart programs, and to move programs between the foreground and the background.