本文运行环境ubuntu14.04. 如果其它环境测试不通过,请留言.
变量定义的格式: 变量名=变量值
变量命名规则
- 变量名只能使用英文字母,数字和下划线. 变量首字符不能以数字开头.
- 变量名,等号和值之间不能有空格.
- 严格区分大小写.
- 不能使用shell关键字.
正例:
反例:
注: 若变量的值中有空格,需要加双引号.
比如: country=“I come from China” 必须加双引号,否则解释器只把I作为country变量的值.
country=China 可省去双引号.
变量分类
变量可分为三类: 自定义变量, 位置变量 ,环境变量
-
自定义变量:用户在脚本或者命令行中定义的变量. 比如: where=“userdata”
-
位置变量:执行linux命令或shell脚本时带有的参数.
格式: 命令 参数1 参数2 参数3 …
比如: 执行脚本命令: ./build_8909.sh all msm8909go_xf -v user 其中 all msm8909go_xf -v user 是位置变量的值获取位置变量
以此命令为例: ./build_8909.sh all msm8909go_xf -v user
1. $0 :获取脚本文件名: build_8909.sh
2. ${1} : 获取命令行第一个参数:all . 小于10的参数,可省去{}
3. $# :获取命令行参数个数:4
4. $@ :返回命令行所有参数: all msm8909go_xf -v user
5. $* :返回命令行所有参数:all msm8909go_xf -v user注:$* 与 $@ 区别:相同点:都是返回命令行所有参数。不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 \"$* \" 等价于 \"1 2 3\"(传递了一个参数),而 \"$@\" 等价于 \"1\" \"2\" \"3\"(传递了三个参数)。
-
环境变量
1.对所有用户有效的环境变量(永久有效): 计算机 /etc/profile 文件存放的变量
2.对特定用户有效的环境变量(永久有效): 计算机 ~/.bashrc 或者 ~/.bash_profile 文件存放的变量.
3.临时有效的环境变量: 脚本或命令行中, 使用export修饰的变量
系统中默认的环境变量有:
HOSTNAME: 主机名
LOGNAME: 登录名
PWD:当前所在路径
HOME:用户主目录
PATH:系统环境变量
查看方式:echo $HOSTNAME
使用变量 :在变量名前面加美元符号
比如: your_name=“qinqin”
echo ${your_name}
注:大括号可省 , 但变量要和其它字符一起使用时,大括号不可省.如图
只读变量
使用关键字readonly修饰的变量是只读变量. 不可更改的(相当于java的final),如图:
删除变量
使用关键字unset . 变量被删除后不能再次使用. 如图:
unset 命令不能删除只读变量。如图: