$0 文件名及路径
$1,$2 参数1,参数2 , 也可以用${1} 和 ${2} 来表示
$# 传递给脚本或函数的参数个数
$$ 当前Shell进程ID
$? 判断上个命令的执行成功与否,0为成功。
$@ 传递脚本或函数的所有参数
$* 传递脚本或函数的所有参数
${}
注:
1.$@和$*都是传递脚本或函数的所有参数。被双引号" "包含时,两者有区别如下
[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
2.$var和${var}区别
如:当你要显示变量值加随意的字符时
echo $var_AA $var会将后面的_AA也当做变量的一部分
echo ${var}_AA ${var}不会将后面的_AA当作变量的一部分
3.${@:2} 在shell脚本中代表什么意思
示例:
#!/bin/bash echo ${@:2} variable=${@:3} echo $variable
运行
./ex.bash 1 2 3 4 5 2 3 4 5 3 4 5
获取指定位置之后的参数列表(例如ip列表),可以用来进行for循环。