参考:《Linux命令 / 编辑器与Shell编程》
################################################
note that :与其他编程语言不同,Bash中的变量没有数据类型的区别,变量中的值都是以字符串的形式保存的,如果要进行数值计算,需要进行特殊转换
Linux Shell下的变量按其使用目的可分为3种类型:
环境变量:用于保存操作系统运行时使用的环境参数
位置变量:Bash将传递给脚本的参数保存在位置变量中,以便于在脚本中引用这些参数
预定义变量:由系统保留和维护的一组特殊的变量,这些变量通常用于保存程序运行状态等
自定义变量:由用户自行定义的变量,可用于用户编写的脚本,多个命令间的值传递等
#########################################################
用户自定义变量
Bash中的变量没有数据类型(即任何变量都可以存放数字 / 字符串等)
自定义变量的命名规则
1.由于变量没有具体的数据类型,因此在定义变量时可以不必定义其类型,直接赋值即可使用
2.在Shell中变量名称可以由大写字母 / 小写字母 / 下划线 / 数字等符号组成
3.定义变量时,建议使用大写字母 / 下划线和数字组成变量名,以免引起不必要的误解。
4.变量对大小写敏感。Mail和mail是两个不同的变量
变量的作用域
变量的作用域是指变量的引用范围,也可以理解为变量在哪个区域起作用。
1.除非使用export命令,否则在脚本中定义的变量(包括函数中定义的变量)的作用域是整个脚本。
2.在命令提示符中定义的变量和使用export定义的变量都是全局变量。全局变量可以在当前用户的任何脚本 / 命令中引用
用法示例
1.定义一个名为NAME的变量,并为其赋值为Jhon:
#直接为变量赋值即可声明变量
#变量的值可以不必放入引号内,除非值中含有特殊字符
# NAME=Jhon
2.如果用户需要经常使用一个变量,可以将这个变量定义为一个环境变量。
例如要使用变量保存备份目录:
# BACKUP_DIR=/file/backup
# export BACKUP_DIR
#定义变量PI
# PI=3.14
#使用命令readonly讲变量PI转换为只读变量,然后验证
# readonly PI
5.当变量不再使用时,使用unset命令可以释放其占用的系统资源
note that:如果用户编写了数个脚本,并且需要使用许多变量,可以为这些变量编写单独的变量文件,或将变量设置为全局变量,需要使用时引用这些变量即可。这样即可以方便脚本的编写,又方便维护变量