$0    文件名及路径

$1,$2    参数1,参数2

$#    传递给脚本或函数的参数个数

$$    当前Shell进程ID

$?    判断上个命令的执行成功与否0为成功

$@    传递脚本或函数的所有参数

$*    传递脚本或函数的所有参数

${}

注:$@$*都是传递脚本或函数的所有参数。被双引号" "包含时,两者有区别如下

[root@web01 shell]# cat 007.sh

#!/bin/bash

for var in $@

do

echo "$var"

done

[root@web01 shell]# sh 007.sh feng cx xiao

feng

cx

xiao

[root@web01 shell]# cat 007.sh

#!/bin/bash

for var in "$*"

do

echo "$var"

done

[root@web01 shell]# sh 007.sh feng cx xiao

feng cx xiao

 

$var${var}区别

如:当你要显示变量值加随意的字符时

echo $var_AA$var会将后面的_AA也当做变量的一部分

echo ${var}_AA${var}不会将后面的_AA当作变量的一部分