Declare variable(s) and/or give them attributes.

      declare [-afFirtx] [-p] [name[=value] ...]

typeset [-afFirtx] [-p] [name[=value] ...] Key -a Each name is an array variable.
-f Use function names only. -F Inhibit the display of function definitions (implies -f) only the function name and attributes are printed.
-i The variable is treated as an integer; arithmetic evaluation (see ARITHMETIC EVALUATION) is performed when the variable is assigned a value.
-r Make names readonly. These names cannot then be assigned values by subsequent assignment
statements or unset.
-t Give each name the trace attribute. Traced functions inherit the DEBUG and RETURN traps from the calling shell. The trace attribute has no special meaning for variables.
-x Mark names for export to subsequent commands via the environment. -p Display the attributes and values of each name. When -p is used, additional options are ignored.

If no names are given then display the values of variables.

Using `+' instead of `-' turns off the attribute instead, e.g. +i means don't treat as an integer - one exception is that +a can not be used to destroy an array variable.

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

If a variable name is followed by =value, the value of the variable is set to value

The return value is 0 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 (see Arrays above), 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.

If the extdebug shell option is enabled using shopt, the source file name and line number where the function is defined are displayed as well.

declare is a bash builtin command

“I have nothing to declare but my genius” - Oscar Wilde

Related macOS commands:

for - Expand words, and execute commands.
while - Loop to execute commands.
until - Loop to execute commands.

Copyright © 1999-2020
Some rights reserved