Declare variables and give them attributes.

declare [-afFrxi] [-p] [name[=value]]


-a Each name is an array variable.

-f Use function names only.
-F Inhibit the display of function definitions;
only the function name and attributes are printed.
(implies -f)

-i The variable is to be treated as an integer;
arithmetic evaluation is performed when the
variable is assigned a value.
-p Display the attributes and values of each name.
When &qt;-p&qt;&qt; is used, additional options are ignored.

-r Make names readonly. These names cannot then be assigned values by subsequent assignment statements
or unset.
-x Mark each name for export to subsequent commands via the environment.If no names are given, then &qt;declare&qt;&qt; will display the values of variables instead.

Using &qt;+&qt;&qt; instead of &qt;-&qt;&qt; turns off the attribute instead.

When used in a function, declare makes each name local, as with the local command.

The typeset command is supplied for compatibility with the Korn shell; however, it has been deprecated in favor of the declare builtin command.

The return status is zero unless an invalid option is encountered, an attempt is made to define a function using &qt;-f foo=bar&qt;&qt;, an attempt is made to assign a value to a readonly variable, an attempt is made to assign a value to an array variable without using the compound assignment syntax , one of the names is not a valid shell variable name, an attempt is made to turn off readonly status for a readonly variable, an attempt is made to turn off array status for an array variable, or an attempt is made to display a non-existent function with &qt;-f&qt;&qt;.