一、
1、命名变量
变量名=值
变量名命名规则:
a、命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
b、中间不能有空格,可以使用下划线 _。
c、不能使用标点符号。
d、不能使用bash里的关键字(可用help命令查看保留关键字)
例:
name="name"
2、使用变量
$变量名 或 ${变量名}
第二种使用方式是为了将变量名与其他字符串分开
例:
#! /bin/bash
a="test1"
echo "bbbbbb$abbbbbb" #解释器认为abbbbbb是一个变量,却有找不到(因为没定义它)这个变量所以这里只打印bbbbbb
b="test2"
echo "aaaaaa${b}aaaaaa" #这里打印aaaaaatest2aaaaaa
结果:
只读变量(readonly)
readonly name="test"
变量名前面加了readonly变量就只可以读取,不能在修改了。
例:
#! /bin/bash
readonly a="test1"
echo "bbbbbb${a}bbbbbb"
a="test2" #由于前面定义变量a时加了readonly,这里就执行不聊了。
echo "aaaaaa${a}aaaaaa"
结果:
删除变量
unset name
变量被删除后就不能用了。unset 命令不能删除只读变量。
例:
#! /bin/bash
a="test1"
echo $a
readonly b="test2"
echo $b
unset a
echo $a #变量a被删除了,所以这里不会输出内容。
unset b #b是只读变量,无法unset,会报错。
echo $b
结果:
二、
分类
1、局部变量
局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
2、环境变量
所有的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。
3、shell变量
shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行