您的位置:首页 > 运维架构 > Shell

Linux Shell中的变量-自定义变量

2015-10-07 15:39 274 查看
参考:《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


3.如果用户希望定义一个不能更改值的变量,可以先定义变量,然后使用readonly命令将变量转换为只读变量:

#定义变量PI
# PI=3.14
#使用命令readonly讲变量PI转换为只读变量,然后验证
# readonly PI


4.使用变量时,无论是引用变量,还是变量间的运算,都应该使用变量引用符"$"

5.当变量不再使用时,使用unset命令可以释放其占用的系统资源

note that:如果用户编写了数个脚本,并且需要使用许多变量,可以为这些变量编写单独的变量文件,或将变量设置为全局变量,需要使用时引用这些变量即可。这样即可以方便脚本的编写,又方便维护变量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: