linux中$#,$0,$1,$2,$@,$*,$$,$?的含义

$# 是传给脚本的参数个数
$0 是脚本本身的文件名
$1 是脚本后接的第一个参数
$2 是脚本后接的第二个参数
$@ 是传给脚本的所有参数列表,"$1" "$2" "$3" … "$n"
$* 是以一个单字符串显示传给脚本的所有参数,"$1 $2 $3 … $n"
$$ 是脚本运行的当前进程ID号
$? 是最后运行命令的结束状态码,0表示没有错误,其他表示有错误

shift 造成参数变量号码偏移,第二个参数变为$1,以此类推。

原文地址:https://www.cnblogs.com/houyongchong/p/7880163.html