一、简述
变量的用途:数据存储、参与运算
变量类型:
1.强类型:定义变量时必须指定类型、参与运算必须符合变量所定义的类型要求。
2.弱类型:无需指定,默认均为字符型,参与运算时会自动进行隐式类型转换。
变量的定义类型选择:
1.取决于数据存储的格式、存储的空间要求、参与运算的种类。
2.字符型、数值型(整数型、浮点型)。
二、bash变量
根据其生效范围
1)本地变量:生效范围为当前的shell进程,对当前shell之外的其它shell进程无效,对当前shell的子shell进程也无效。
赋值方式
name=‘value’
定义方式
方式 | 案例 |
---|---|
直接 | name=username |
变量引用 | name="$username" |
命令引用 | name=`COMMAND`,name=$(COMMAND) |
变量引用
名称 | 符号 | 功用 |
---|---|---|
弱引用 | “” | 其中存在的变量引用会被替换为变量引用后的值 |
强引用 | ‘’ | 其中存在的变量引用不会被替换,保持原字符串形式 |
显示定义的变量
命令 | 功用 |
---|---|
set | 主要是显示系统中已经存在的shell变量 |
销毁变量:unset name
2)环境变量:生效范围为当前shell进程及其子shell进程。
赋值方式(将自定义变量转换成环境变量)
export name=VALUE
declare -x name=VALUE
变量引用:$name,${name}
显示所有环境变量:export,env,printenv
销毁变量: unset name
3)局部变量:生效范围为当前shell进程中某代码片段中,此片段通常指函数。
变量命名法则:
不能使用当前程序中的保留字(如if、for)。
只能使用数字、字母、下划线,不能以数字开头。
尽量做到见名知义。
只读变量的定义方式
readonly name
declare -r name
4)位置变量及特殊变量。
表示法 | 释义 |
---|---|
$0 | 调用命令本身,常用与调取当前脚本文件名称 |
$1-$9 | 调用对应的第1个到第9个参数 |
$@ | 调用传递给脚本的所有参数,将其作为一个列表对象 |
$* | 调用传递给脚本的所有参数,将其作为一个字符串 |
$# | 统计传递给脚本的参数的个数 |
$? | 脚本执行的返回值 |
三、补充
bash内建的环境变量
变量 | 意义 |
---|---|
$ | 当前shell的PID |
HISTSIZE | 历史命令记录上限 |
HOME | 当前用户的目录 |
HOSTTYPE | 当前主机cpu架构 |
LANG | 语言 |
MACHTYPE | 当前系统的核心参数 |
当前用户邮件存放路径,邮箱路径 | |
OSTYPE | 系统类型 |
PATH | 执行文件的路径 |
PS1 | 终端控制台提示符 |
RANDOM | 随机数 |
其他优秀博客:http://blog.sina.com.cn/s/blog_c2301e6e0102wwu9.html