Shell脚本中$0、$?、$!、$$、$*、$#、$@的意义

$0 当前脚本的文件名
$n 传递给脚本或者函数的参数,脚本后的第n个字符串,n=1…9
$# 传递给脚本或者函数的参数个数
$? 上一个命名的退出状态,或者函数的返回值(非0表示错误)
$$ shell本身的PID,即脚本运行的当前进程的ID号
$! shell后台运行的最后一个进程的PID
$- 显示shell使用的当前选项,与set命令功能相同
$* 传递给脚本或者函数的所有参数列表。"$*" 会把所有位置参数当成一个整体(或者说当成一个单词),如果没有位置参数,则"$*“为空,如果有两个位置参数并且IFS为空格时,”$*“相当于”$1 $2"
$@ 传递给脚本或者函数的所有参数列表。"$@" 会把所有位置参数当成一个单独的字段,如果没有位置参数("$#"),则"$@“展开为空(不是空字符串,而是空列表),如果存在一个位置参数,则”$@“相当于”$1",如果有两个参数,则"$@“相当于”$1" "$2"等等

原文地址:https://www.cnblogs.com/guarderming/p/11856603.html