Bash 中的 declare 命令
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 ()
相关文章
如何在 CentOS 中获取 IP 地址
发布时间:2023/05/04 浏览次数:108 分类:操作系统
-
这篇简短的文章是对 CentOS 的一个简短介绍,然后简要讨论了我们如何使用命令行界面 (CLI) 在 CentOS 中获取服务器 IP 地址。
在 Linux 中更新 YUM
发布时间:2023/05/04 浏览次数:82 分类:操作系统
-
本文介绍了 Linux 中的 yum update 命令。本文将教我们如何在 Linux 中更新 YUM,以及如何在 Linux 系统上安装、更新、删除、查找和管理包。
在 Linux 中安装 Deb 文件
发布时间:2023/05/04 浏览次数:130 分类:操作系统
-
本文介绍如何在 Linux 中安装 deb 文件。在这篇 Linux 文章中,我们将学习如何在 Linux 系统上安装 .deb(Debian 软件包)文件。 我们还将看到如何在安装后删除 .deb 文件。
Linux 中的 lsof 命令
发布时间:2023/05/04 浏览次数:82 分类:操作系统
-
在这篇 Linux 文章中,我们将了解 Linux 操作系统中的 lsof 命令。 我们将看到如何在 Linux 中将此命令用于不同目的。
Linux 解决不能执行二进制文件问题
发布时间:2023/05/04 浏览次数:187 分类:操作系统
-
在本文中,我们将学习如何在 Linux 中执行二进制文件。 如果 Linux 无法执行二进制文件,我们还将学习如何解决错误。
Linux 中错误 Mesg: Ttyname Failed: Inappropriate Ioctl for Device Error
发布时间:2023/05/04 浏览次数:145 分类:操作系统
-
本文介绍如何在 Linux 中解决 mesg: ttyname failed: inappropriate ioctl for device 错误。在 Linux 中,这个错误是由于默认的 vagrant 配置 config.ssh.shell 与 bash -l 交互导致的。
Linux 中的 ps aux 命令
发布时间:2023/05/04 浏览次数:69 分类:操作系统
-
本篇文章将讨论 Linux 中的 ps aux 命令。如果将 aux 快捷方式与 ps 命令一起使用,它将显示用户需要的最多信息,并可以为您提供系统运行进程的当前状态。
Linux 中的 NTP
发布时间:2023/05/04 浏览次数:137 分类:操作系统
-
本篇文章将讨论 Linux 中的 ntp。NTP 是大多数 IT 基础设施使用的核心协议。 使用它的目的是同步日期和时间信息。
在 Bash 中创建进度条
发布时间:2023/05/04 浏览次数:164 分类:操作系统
-
这是有关在 Bash 中创建进度条以显示正在运行的命令或进程的进度的指南。本文将探讨在 Bash(Linux 和 macOS 的默认 shell)中向 shell 脚本添加进度条的几种方法。使用 pv 命令在 Bash 中创建进度条