变量说明: 
$$    //Shell本身的PID(ProcessID) 
$!     //Shell最后运行的后台Process的PID 
$?    //最后运行的命令的执行状态返回值
$-     //使用Set命令设定的Flag一览 
$*    //所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 
$@   //所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 
$#    //添加到Shell的参数个数 
$0     //Shell本身的文件名 
$1~$n      //
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。


查看当前shell中的变量  set

查看当前shell中的环境变量printenv/env/export

env set (显示系统环境变量)

a=1
echo  $a
变量名可以是英文数字下划线,不可以数字开头,不要使用系统的命令作为变量名,例ls=12   关键字也不要使用(if,for,do,done)
变量有空格时,需加单引号,例:b='ls /tmp/'
反引号的时候是引用引号内命令的结果,例:myvim=`which vim`
可以多个变量一起,例:a=1    c="$a"12 或 d="$myvim"$a


全局变量
输入bash,会进入一个全新的环境中,所有的新定义的shell都为空
export:如想在子shell也即bash中显示,则需要定义全局变量,全局变量格式为: export a=1

本地变量

local a=1       局部变量,作用域为当前shell进程及其子进程.

取消变量: unset 变量名


补充修改变量:

使用 : 增加             

例: 

[root@localhost ~]# animals=pig

[root@localhost ~]# echo $animals

pig

[root@localhost ~]# animals=$animals:goat

[root@localhost ~]# echo $animals

pig:goat

[root@localhost ~]# animals=$animals:sheep

[root@localhost ~]# echo $animals

pig:goat:sheep