1、变量名
变量名只能包含字母(a ~ z
或A ~ Z
)、数字(0 ~ 9
)或下划线(_
)。
一般情况下,Linux shell变量的名称是大写的。
正确的变量命名,
例如,
_CJAVAPY VAL_C PARM_1 PARM_2
错误的变量命令,
例如,
2_VAL -CJAVAPY PARAM1-VAL2 NAME_DEF!
注意:不能使用的特殊字符,如!
、*
或-
的原因是这些字符对shell有特殊的含义。
2、定义变量
变量的定义如下,
var_name=var_value
例如,
NAME="Levi"
定义了变量NAME
并将值"Levi"
赋给它。这种类型的变量称为标量变量。标量变量一次只能保存一个值。shell允许在变量中存储任何想要的值。
例如,
Name="CJAVAPY" AGE=100
3、访问变量值
要访问存储在变量中的值,需要在变量名前加上美元符号($
),
例如,访问已定义变量NAME
的值,并将其打印到STDOUT
上,
#!/bin/bash NAME="CJAVAPY" echo $NAME
输出:
CJAVAPY
4、只读变量
shell提供了一种使用只读命令将变量标记为只读的方法。当变量被标记为只读后,其值将不可更改。
试图更改NAME的值时生成一个错误,
例如,
#!/bin/bash NAME="Levi" readonly NAME NAME="CJAVAPY"
输出:
bash: NAME: readonly variable
5、取消删除变量
取消或删除一个变量指示shell从它所跟踪的变量列表中删除该变量。一旦取消了变量的设置,就不能访问变量中存储的值。
使用unset
命令取消已定义变量设置的语法:
unset var_name
取消设置已定义变量的值,
例如,
#!/bin/bash NAME="CJAVAPY" unset NAME echo $NAME
注意:不能使用unset
命令取消标记为只读的变量的设置。
6、变量类型
当shell运行时,会出现三种主要类型的变量,
局部变量:局部变量是当前shell实例中存在的变量。它对由shell启动的程序不可用。需要在命令提示符处设置的。
环境变量:环境变量可用于shell的任何子进程。有些程序需要环境变量才能正常运行。通常,shell脚本只定义它所运行的程序所需要的环境变量。
shell变量:shell变量是shell设置的特殊变量,是shell正常运行所必需的。其中一些变量是环境变量,而另一些是局部变量。