Shell内建命令之declare

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/asty9000/article/details/88564761

declare [-aAfFgilnrtux] [-p] [name[=value] …],声明变量并设置属性。如果没有任何参数,则显示所有参数及其对应的值。-p选项,显示每个name变量对应的属性和值。当-p与name一起使用时会忽略除-f和-F之外的其他选项。当只有-p选项没有指定name时,将显示具有附加选项指定的属性的所有变量的属性和值。如果也没有其他附加选项,则显示所有变量的属性和值。

可选的附加选项如下:

-a:表示每个name都是一个索引数组变量。

-A:表示每个name都是一个关联数组变量。

-f:表示每个name都是一个函数名,此选项会打印函数定义。

-F:表示每个name都是一个函数名,此选项不会打印函数定义,只打印函数名和属性。如果使用内建命令shopt启用extdebug,还会显示定义每个name的源文件名和行号。

-g:强制在全局范围内创建或修改变量,即使是在shell函数中执行declare。

-i:变量将被当做整数。当为变量赋值时执行算术运算。

-l:当为变量赋值时,所有大写字符都转换为小写。

-n:为name设置namref属性,使其成为对另一个变量的名称引用,另一个变量由name的值value定义。name的所有引用、赋值和属性修改都是对name的值value引用的变量执行的,除非使用或更改-n属性本身。不能将nameref属性应用于数组变量。

-r:使每个name变量为只读的。这些变量后续不能进行修改或取消。

-t:为name设置trace属性,跟踪函数从调用shell继承DEBUG和RETURN类型的trap。trace属性对变量没有特殊意义。

-u:当为变量赋值时,所有小写字符都转换为大写。

-x:将每个name导出到后续的命令或子进程,相当于对name执行了export

declare
declare -p BASH PS2
declare -a
declare -x -a test
declare -p test

 

猜你喜欢

转载自blog.csdn.net/asty9000/article/details/88564761