变量类型
- 变量类型决定数据存储格式、存储空间大小和参与运算种类
- 字符型:
- 数值型:
- 整型
- 浮点型
- 强类型:定义变量时必须指定类型,参与运算必须符合类型要求,调用未声明变量会产生错误
- 弱类型:无需指定类型,默认均为字符型,参与运算会自动进行隐式类型转换,变量无须实现定义可直接调用
bash中的变量的种类:
- 根据变量的生效范围等标准:
- 本地变量:生效范围为当前shell进程:对当前shell之外的其他shell进程,包括当前shell的子shell进程均无效
- 环境变量:生效范围为当前shell进程及其子进程
- 局部变量:生效范围为当前shell进程中某代码片段(通常指函数)
- 位置变量: 1, 2,…来表示,用于让脚本在脚本代码中调用通过命令行传递传递给它的参数
- 特殊变量: ?, 0, ∗, @,$#
- 本地变量:
- 变量赋值:name = ‘VALUE’
- 可以使用引用:
- value:
- (1) 可以是直接字串:name = username
- (2) 变量引用:name = $username
- (3) 命令引用:name =
COMMAND
(反引号), name = $(COMMAND)
- value:
- 可以使用引用:
- 变量引用:=
name,
name
- ”“:弱引用,其中的变量引用会被替换为变量值
- ”:强引用,其中的变量引用不会被替换为变量值,而保持字符串
- 注:以上name及{name}前均有$,因特殊字符未显示
- 显示已定义的所有变量
- set
- 销毁变量
- unset name
- 变量赋值:name = ‘VALUE’
- 环境变量:
- 变量声明,赋值:
- export name = VALUE
- declare -x name = VALUE
- 变量引用:
name,
{name}
- 注:以上name及{name}前均有$,因特殊字符未显示
- 显示所有环境变量
- export
- env
- printenv
- 销毁变量:
- unset name
- bash有许多内建的环境变量:PATH,SHLL,UID,HISTSIZE,HOME,PWD,OLD,HISTFILE,PSI
- 变量声明,赋值:
- 变量命名法则:
- 1、不能使用程序中的保留字,例如if,for;
- 2、只能使用数字、字母及下划线,且不能以数字开头
- 3、见名知义
- 只读变量:
- readonly name
- declare -r name
- 位置变量:
- 在脚本代码中调用通过命令行传递给脚本的参数
-
1,
2,$3,…:对那个调用第1,第2,第3等参数
- shift [n]:轮替,n表示数字 把后面第n个参数轮替到第一个参数
- 注:1,2前均有$
- $0:命令本身
- $*:传递给脚本的所有参数(将所有参数当作一个字符串)
- $@:传递给脚本的所有参数(将所有参数分为多个字符串)
- $#:传递给脚本的参数的个数
-
1,
2,$3,…:对那个调用第1,第2,第3等参数
- 在脚本代码中调用通过命令行传递给脚本的参数