Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义

  1. $# 是传给脚本的参数个数

  2. $0 是脚本本身的名字

  3. $1 是传递给该shell脚本的第一个参数

  4. $2 是传递给该shell脚本的第二个参数

  5. $@ 是传给脚本的所有参数的列表

  6. $* 是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个

  7. $$ 是脚本运行的当前进程ID号

  8. $? 是显示最后命令的退出状态,0表示没有错误,其他表示有错误

相同点:都是引用所有参数

不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数(分别存储在123)则"*" 等价于“123"(传递了一个参数);而“@" 等价于 "$1"、"$2"、"$3"(传递了三个参数)


你可能感兴趣的:($#,$?,$1,$0,$@,$2,$$,$*)