在Linux中使用shell变量。变量是一个我们赋值给它的字符串。分配的值可以是数字、文本、文件名、设备或任何其他类型的数据。变量只不过是指向实际数据的指针。shell允许创建、分配和删除变量。

1、变量名

变量名只能包含字母(a ~ zA ~ 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正常运行所必需的。其中一些变量是环境变量,而另一些是局部变量。

推荐文档