Shell 变量
Shell 语言是一种动态类型和弱类型语言, 因此,在Shell中无需显示地声明变量, 且变量的类型会根据不同的操作符而发生变化.
- 静态类型语言: 在程序编译期间就确定变量类型的语言, 如java, C++等
- 动态类型语言: 在程序运行期间才确定变量类型的语言, 如PHP, Python等.
1. 变量简介
1.1 变量分类
- 环境变量: 主要保存的是和系统操作环境相关的变量, 可以新增和修改
- 预定义变量: 系统预设的一些变量
- 脚本变量: 调用脚本时, 传入的参数, 又称位置参数变量
- 用户自定义变量: 脚本中设置的变量
1.2 变量名命名
- 变量名区分大小写
- 变量名可以由字母,下划线,数字组成, 但是不能以数字开头.
- 变量名和=号直接不能有空格
- 变量名不能以数字开头, 首个字符只能为字母(A-Z, a-z)
- 变量名直接不能有空格, 可以使用下划线
- 变量名不能使用标点符号
- 环境变量名建议全部大写
1.2 变量赋值
- 变量值与=号直接不能有空格
- 变量类型默认都是字符串类型
- 变量值可以使用特殊符号,转义符号, 如: name=“zhang\nsan”
- 变量值可以是命令执行的结果, 用反引号, 如:dt=
date
- 变量值可以是包含其他变量的表达式, 如:result=“hello,$name”
2. 变量的声明
- 通常Shell中的变量无须事先声明, 但对于需要限制变量类型或读写设置时,就需要实现声明了.声明变量使用 declare 命令
- 命令格式: declare [-irA] varName
# 默认为字符串类型变量, 会将6/3设置为一个字符串
a=6/3
echo "$a"
# 声明数字类型变量
declare -i a
a=6/3
echo "$a"
# 声明关联数组变量
declare -A hash
hash[A]="aaa"
hash[B]="bbb"
hash[C]="ccc"