See [declare](https://www.gnu.org/software/bash/manual/bash.html#:~:text=zero%20if%20not.-,declare,-%C2%B6) in the [GNU bash manual](https://www.gnu.org/software/bash/manual/bash.html). ```plaintext declare [-aAfFgiIlnrtux] [-p] [name[=value] …] ``` ```plaintext -a Each name is an indexed array variable (see Arrays). -A Each name is an associative array variable (see Arrays). -f Use function names only. -i The variable is to be treated as an integer; arithmetic evaluation (see Shell Arithmetic) is performed when the variable is assigned a value. -l When the variable is assigned a value, all upper-case characters are converted to lower-case. The upper-case attribute is disabled. -n Give each name the nameref attribute, making it a name reference to another variable. That other variable is defined by the value of name. All references, assignments, and attribute modifications to name, except for those using or changing the -n attribute itself, are performed on the variable referenced by name’s value. The nameref attribute cannot be applied to array variables. -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. -u When the variable is assigned a value, all lower-case characters are converted to upper-case. The lower-case attribute is disabled. -x Mark each name for export to subsequent commands via the environment. ``` ``` -p option will display the attributes and values of each name. When -p is used with name arguments, additional options, other than -f and -F, are ignored. When -p is supplied without name arguments, declare will display the attributes and values of all variables having the attributes specified by the additional options. If no other options are supplied with -p, declare will display the attributes and values of all shell variables. The -f option will restrict the display to shell functions. The -F option inhibits the display of function definitions; only the function name and attributes are printed. If the extdebug shell option is enabled using shopt (see The Shopt Builtin), the source file name and line number where each name is defined are displayed as well. -F implies -f. ```