Bash 中的 declare 命令
-
declare
命令的语法使用 Bash -
选项作为 Bash 中
declare
命令的一般参数 -
Bash 中
declare
命令中使用的整数类型 - 在 Bash 中声明只读变量
-
在 Bash 中分配变量时使用
小写
和大写
转换 -
在 Bash 中使用
Subshells
导出变量 -
在 Bash 中检查是否指定了任何
属性
-
检查 Bash 中的
函数
定义
Bash 使用可以通过命令设置的属性来允许类似类型的行为,因为 bash 类型系统不健壮。
declare
是一个内置的 Bash 命令,允许你在 shell 范围内更改变量的特征。
它还可以对变量进行速写
声明。最后,它使你可以访问变量。
declare -A
创建一个 associative array
变量,一个键值对数组,其值由关键字索引。
除了影响其行为的变量之外,还可以为 Bash
函数赋予属性。
declare
命令的语法使用 Bash
$ declare [-a] [-A] [-f] [-F] [-g] [-i] [-l] [-n] [-r]
[-t] [-u] [-x] [-p] [name[=value]] [name[=value]] ...
选项作为 Bash 中 declare
命令的一般参数
declare
内置命令接受以下选项作为通用参数:
$ bash -c "help declare"
输出:
declare: declare [-aAfFgilnrtux] [-p] [name[=value] ...]
Set variable values and attributes.
Declare variables and give them attributes. If no NAMEs are given,
display the attributes and values of all variables.
Options:
-f restrict action or display to function names and definitions
-F restrict display to function names only (plus line number and
source file when debugging)
-g create global variables when used in a shell function; otherwise
ignored
-p display the attributes and value of each NAME
Options which set attributes:
-a to make NAMEs indexed arrays (if supported)
-A to make NAMEs associative arrays (if supported)
-i to make NAMEs have the `integer` attribute
-l to convert the value of each NAME to lower case on assignment
-n make NAME a reference to the variable named by its value
-r to make NAMEs `readonly`
-t to make NAMEs have the `trace` attribute
-u to convert the value of each NAME to upper case on assignment
-x to make NAMEs export
Using `+` instead of `-` turns off the given attribute.
Variables with the integer attribute have arithmetic evaluation (see
the `let` command) performed when the variable is assigned a value.
When used in a function, `declare` makes NAMEs local, as with the `local`
command. The `-g` option suppresses this behavior.
Exit Status:
Returns success unless an invalid option is supplied or a variable
assignment error occurs.
下面是一些 help
命令的示例,以查看它们在终端中的显示方式。值得注意的是,最后一个对于我们的 Windows Git Bash
用户来说是一个故障保护。
现在你已经阅读了 bash declare
的介绍和手册页,是时候查看一些使用 bash declare
的实际示例了。
Bash 中 declare
命令中使用的整数类型
使用 -i
标志将变量声明为整数。你可以在下面的示例中看到变量 age
被指定为 integer
类型。
当你分配不同类型的字符串
值时,你可能会看到一条错误消息,上面写着 Not the correct type
;而不是抛出错误,错误变量将设置为零。
$ declare -i num=7
$ echo $num
输出:
7
结果,将整数类型重新分配给字符串会产生 0
。
$ num=string
$ echo $num
输出:
0
在 Bash 中声明只读变量
这个编码词描述了一个变量如何被赋予一个值并且不能被程序员或机器修改。它在整个程序的生命周期内保持不变。
使用 -r
标志使你的变量常量为只读。
$ declare -r num=7
输出:
bash: declare: num: readonly variable
如你所见,输出结果显示 readonly
变量。
在 Bash 中分配变量时使用小写
和大写
转换
将变量分配给 bash 时,可以使用 -l
小写和 -u
大写标志将其从小写更改为大写,反之亦然。
$ declare -l name="THANOS"
$ declare -u name1="thanos"
$ echo $name $name1
输出:
thanos THANOS
在 Bash 中使用 Subshells
导出变量
如果你以前使用过 bash
,你可能已经注意到人们使用 export 命令将声明的变量导出到脚本或 shell
会话中的子 shell。我们可以用 declare
命令做同样的事情。
-x
标志应该用于导出,而+x
标志将阻止属性被导出。
$ declare -x name=thor
$ sh -c "echo $name"
输出:
thor
在 Bash 中检查是否指定了任何属性
使用 -p
标志,我们可以查看属性 variable
是否已定义。
$ a=5;b=6;c=7
$ declare -p a b c
输出:
declare -- a="5"
declare -- b="6"
declare -- c="7"
指定关键字后,将有两个破折号 --
。声明 -a
数组。声明 -n
数字。它用于显示变量的类型 nameref
。
如果没有声明,它只会显示。
检查 Bash 中的函数
定义
-F
和 -f
标志可用于检查函数是否已声明和定义。我正在制作一个简单的 inevitable_thanos
功能。
$ function inevitable_thanos(){ echo "ironman"; }
$ declare -f
输出:
inevitable_thanos ()
{
echo "ironman"
}
quote ()