变量的类型:

本地变量:只对当前shell进程有效,对其子shell以及其它shell都无效;

定义变量: [set]Var_Name="Value"

引用变量: ${Var_Name}

撤销变量: unset Var_Name

   

局部变量:仅对局部代码生效

local Var_Name="Value"

   

环境变量:对当shell进程及其子shell有效;

export Var_Name="Value"

先赋值Var_Name="Value"

再导出export Var_Name

   

位置变量:

$1, ..., $n

./first.sh 2 8

特殊变量:

$0: 脚本名称自身

$?: 上一条命令的执行状态;

状态用数字来表示:0-255; 0: 成功 1-255: 失败

$$ 脚本的进程ID(PID)

$! 运行在后台的最后一个作业的进程ID(PID)

$# 位置参数的个数

$* 所有的位置参数(作为单个字符串)

$@ 所有的位置参数(每个都作为独立的字符串)


变量的命名要求:

只能使用数字、字母和下划线组成;

不能以数字开头;

不能使用程序中的关键字;

见名知义;totalWeight


变量的默认值:

a=${a:-100}

echo $a

知识点:给变量默认值

varName=${varName:-value}

如果varName不空,则返回varName的值;否则,则返回value;

如果varName不空,则其值不变;否则,varName会使用value作为其值;


[root@iZ28in7vtawZ tmp]# echo ${a:-10}

10

[root@iZ28in7vtawZ tmp]# echo $a


[root@iZ28in7vtawZ tmp]# a=1

[root@iZ28in7vtawZ tmp]# echo $a

1

[root@iZ28in7vtawZ tmp]# echo ${a:-10}