总结:linux中shell变量$#,$@,$0,$1,$2的含义解释

$$      Shell本身的PID(ProcessID) 
$!       Shell最后运行的后台Process的PID 
$?       最后运行的命令的结束代码(返回值) 
$-      使用Set命令设定的Flag一览 
$*       所有参数列表,即参数的全部内容。显示为 "$1 $2 … $n"
$@     所有参数列表,即参数的全部内容。代表"$1" 、"$2"、 … 、"$n"之意,每个变量都是独立的(用双引号括起来) 
$#       添加到Shell的参数个数 
$0       Shell本身的文件名 
$1~$n 添加到Shell的各参数值。$1是第1参数、$2是第2参数…

总结:
对于echo来说:$* $@ "$*" "$@"是一样的,都是:"$1 $2 $3 $4"
对于printf来说:$* $@ "$@"是一样的,都是:"$1" "$2" "$3" "$4"
                    "$*"是:"$1 $2 $3 $4"

示例:

  1 #!/bin/bash
  2 #
  3 printf "The complete list is %s\n" "$$"
  4 printf "The complete list is %s\n" "$!"
  5 printf "The complete list is %s\n" "$?"
  6 printf "The complete list is %s\n" "$*"
  7 printf "The complete list is %s\n" "$@"
  8 printf "The complete list is %s\n" $*
  9 printf "The complete list is %s\n" $@
  8 printf "The complete list is %s\n" "$#"
  9 printf "The complete list is %s\n" "$0"
 10 printf "The complete list is %s\n" "$1"
 11 printf "The complete list is %s\n" "$2"

结果:
[Aric@localhost ~]$ bash params.sh 123456 QQ
The complete list is 24249                                         //"$$"
The complete list is                                                    //"$!"
The complete list is 0                                                 //"$?"
The complete list is 123456 QQ                                 //"$*"
The complete list is 123456                                       //"$@"
The complete list is QQ                                              //"$@"  这两行都是"$@"的结果
The complete list is 123456                                       //$*
The complete list is QQ                                              //$*  这两行都是$*的结果
The complete list is 123456                                       //$@
The complete list is QQ                                              //$@  这两行都是$@的结果
The complete list is 2
The complete list is params.sh
The complete list is 123456
The complete list is QQ

总结:
即:对于echo来说:$* $@ "$*" "$@"是一样的,都是:"$1 $2 $3 $4"
    对于printf来说:$* $@ "$@"是一样的,都是:"$1" "$2" "$3" "$4"
                    "$*"是:"$1 $2 $3 $4"
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值