shell脚本之位置和特殊参量

位置和特殊参量
首先说说参量与变量的区别:参量(parameter)是储存值的实体,它可以是一个名字、一
个数或者特殊的字符;变量(variable)是以名字命名的参量。变量有一个值和0或多个属性,
属性通过以上declare选项来设置。

位置和特殊参量                
$0 脚本名
$# 位置参数个数
$* 所有的位置参数
$@ 未加引号时与$*的含义相同
$1…${N}                        单独的位置变量
$$ 当前shell的PID
$- 当前的sh选项设置
$? 已执行的上一条命令的退出值
$! 最后一个进入后台的作业PID
$_ 上一条命令的最后一个参数

说明:以上参量除了$*和$@的区别外都容易理解。以下重点说明这两者的区别:
$*是一个由所有位置参量组成的单一的字符串,由环境变量IFS第一个字符分隔;相当于”$1c$2c…”, c是 IFS的第一个字符;

$@是N个独立的双引字符串,由空格Bash分隔,即相当于”$1” “$2”…“$N”。

举例说明:
set a b c d
echo “$*”     # a b c d
echo “$@”     #a b c d
IFS=’,’         
echo “$*”     # a,b,c,d
echo “$@”     #a b c d
function countargs
{
    echo “$# args”
}
countargs “$*”  #1 args
countargs “$@”  #3 args

你可能感兴趣的:(职场,休闲,位置和特殊参量)