1.Shell特殊位置变量

$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循环。

 

posted @ 2019-10-08 14:37  番茄土豆西红柿  阅读(206)  评论(0编辑  收藏  举报
TOP