美文网首页
Bash变量的类型

Bash变量的类型

作者: CodingCode | 来源:发表于2021-09-19 07:19 被阅读0次

Bash变量的类型
通常理解shell变量是弱类型的,或者无类型的,其实Bash变量是有类型的。

Bash变量一共有三类:

  1. string
  2. array
  3. map (i.e, associative array)
  1. 如何定义一个string变量

直接赋值一个普通变量就是定义一共string变量。

VAR1="abc"
  1. 如何定义一共array变量
VAR2=("aa" "bb" "cc")

VAR2就是一个array变量。

  1. 如何定义一个map变量
declare -A VAR3=(["AA"]="aaa" ["BB"]="bbb" ["CC"]="ccc")

对于定义map变量必须要显式的申明(declare -A),'-A'表示这是一个map变量;而这个显式的申明并不需要作用给字符串变量和普通array变量(虽然显式的申明declare -a,小写的'-a'表示这是一个array变量),对程序的规范性和可阅读都有很好的帮助,但不是必须的,只有map才是必须显式申明。

如果不显示的申明-A,那么Bash会把变量VAR3解释成一个普通array变量,并且只包含一个元素,即最后一个,即上述:

declare VAR3=(["AA"]="aaa" ["BB"]="bbb" ["CC"]="ccc")
==
declare VAR3=("ccc")
  1. 关于数字变量

定义数字变量很常见,经常用到:

declare -i VAR4=123

有同学就会问了,这不是定义一个数字变量吗,怎么说只有三种变量类型,没有数字类型呢;其实Bash内部使用的还都是字符串,只不过是数字字符串而已。

也就是只能给这个变量赋值数字字符,不能赋值字母字符, 例如

declare -i VAR4="123"
VAR4="567"

而如果强行给赋值非数字字符,那么相当于赋值了"0":

VAR4="abcd"

这个命令等同于:

VAR4="0"  # or VAR4=0
  1. 如何查看变量的类型

命令declare -p <var>可以打印出变量类型以及值。

declare -p VAR1
declare -p VAR2
declare -p VAR3
declare -p VAR4

输出结果如下:

declare -- VAR1="abc"
declare -a VAR2='([0]="aa" [1]="bb" [2]="cc")'
declare -A VAR3='([AA]="aaa" [BB]="bbb" [CC]="ccc" )'
declare -i VAR4="123"

字符串变量的类型declare使用--标识。

相关文章

  • Bash变量的类型

    Bash变量的类型通常理解shell变量是弱类型的,或者无类型的,其实Bash变量是有类型的。 Bash变量一共有...

  • bash脚本编程-变量,变量类型

    bash变量类型: 环境变量,本地变量,位置变量,特殊变量。 本地变量: bash: VARNAME=value ...

  • Bash脚本编程(2)——编程入门

    @(Bash)[编程入门] 1. Bash中的变量 1.1 变量类型 字符型 数值型 整型 浮点型 语言类型: 强...

  • bash 变量类型

    2021-01-12 变量分类:预定义变量、环境变量、自定义变量、位置变量 1.预定义变量:在shell一开始就定...

  • Shell脚本介绍

    1. bash的基础特性 1.1 变量类型 1.2 bash中的变量的种类 根据变量的生效范围等标准 1.2.1 ...

  • shell编程基础

    Bash变量 · 在Bash中,变量的默认类型都是字符串型 如果需要要转换,用declare命令 decl...

  • bash编程-Shell变量

    bash中,所有变量的值默认均为字符串。 1. 变量操作 调用变量 查看变量(所有类型) 删除变量 2. 变量分类...

  • Shell进阶脚本-内部变量

    内建变量 影响 Bash 脚本行为的变量 $BASH Bash程序的路径 $BASH_ENV 这个环境变量会指向一...

  • bash脚本内部变量

    bash脚本内部变量 $BASH bash的程序文件的路径,如/bin/bash $BASH_ENV 该环境变量保...

  • Shell基础ideago精华版

    hello world #! /bin/bash 声明为bash执行 变量 bash的变量无需声明,可以直接使用,...

网友评论

      本文标题:Bash变量的类型

      本文链接:https://www.haomeiwen.com/subject/ldsugltx.html