declare - Unix, Linux Command


declare - Declare variables and give them attributes.


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


If no names are given, then 'declare' will display the values of variables instead. Using + instead of - 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 '-f foo=bar', 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 '-f'.


-aEach name is an array variable.
-fUse function names only.
-FInhibit the display of function definitions; only the function name and attributes are printed. (implies -f)
-iThe variable is to be treated as an integer; arithmetic evaluation is performed when the variable is assigned a value.
-pDisplay the attributes and values of each name. When '-p' is used, additional options are ignored.
-rMake names readonly. These names cannot then be assigned values by subsequent assignment statements or unset.
-xMark each name for export to subsequent commands via the environment.


$ declare | grep HOME

$ zzy=68
$ declare | grep zzy

$ Colors=([0]="purple" [1]="reddish-orange" [2]="light green")
$ echo ${Colors[@]}
purple reddish-orange light green

bash$ declare | grep Colors
Colors=([0]="purple" [1]="reddish-orange" [2]="light green")