bash变量

变量类型

变量一旦设置了类型,那么该变量的存储格式、存储空间大小和可参与的运算、以及运行机制就已被限定(不一样)了。基本的变量类型主要有:

  • 字符型变量

  • 数值型变量

    • 整型
    • 浮点型

    不同的编程语言对类型的要求是不一样的,包括:

    强类型语言: 定义变量时必须指定变量类型,从而决定了该变量的存储格式、存储空间大小和可参与的运算、以及运行机制,调用未声明的变量会报错
    弱类型语言: 定义变量时无需指定变量类型,默认尾字符类型。参与运算时会自动进行类型转换。

bash中的变量

   根据变量的生效范围分为:

  • 本地变量: 仅仅对当前shell 有效,其他shell或是父子shell均无效
  • 环境变量: 当前shell及其子shell均有效
  • 局部变量: 仅仅对shell进程的某个代码片段中
  • 位置变量: 用于通过命令行向脚本代码传递参数的变量
  • 特殊变量: $@,$#,$0, 有特殊用法,没有生效范围

本地变量

变量声明|赋值:

variableName = variableValue   
变量值可以值字面量或是命令结果引用,例如:  
(1) 字面量赋值  a = "abc"
(2) 引用其他变量 b = ${a}
(3) 命令结果引用 c = $(ls -l) / c = `ls -l`

变量引用:$variavleName/${variavleName} 如果变量含在一个单词中必须使用{}界定
弱引用: "" 变量名会被替换未变量值
强引用: '' 变量名不会被替换未变量值,保持原样

查看所有已经声明的变量: set

** 只读变量
只读变量的值不能被修改和销毁,直到shell进程终止
readonly variableName=variableValue
declare -r name=variableValue

环境变量

变量声明|赋值:

export variableName = variableValue  
或者  declare -x variableName = variableValue  

变量引用:
$variavleName/${variavleName}
显示所有环境变量:
export
env
printenv
销毁环境变量: unset envVariableName
bash内建环境变量: PATH SHELL UID HISTORY HOME PWD OLD HISTFILE PS1

位置变量

可以在脚本中获取到通过命令行传入的参数值
$1,$2,$3...$n 对应第1\2\3..\n个参数
可以使用shift 来向左溢出参数
$0: 命令本身
$*: 传递给脚本的所有参数,把有参数当做一个字符串
$@: 传递给脚本的所有参数
$#: 传递给脚本的参数个数

变量命名规则:

(1) 不能使用程序的保留字  
(2) 不能使用数字、字母、下划线,不能以数字开头  
(3)  容易理解,见名知意  

销毁变量: unset variableName

你可能感兴趣的:(bash变量)