迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

Bash 中的 declare 命令

作者:迹忆客 最近更新:2023/03/17 浏览次数:

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 ()

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

如何在 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 中的 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 中创建进度条

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便