linux --> Linux变量之$#, $*, $@含义

Linux变量之$#, $*, $@含义

一、介绍

$#   //是传给脚本的参数个数
$0   //是脚本本身的名字
$1   //是传递给该shell脚本的第一个参数
$2   //是传递给该shell脚本的第二个参数
$@   //是传给脚本的所有参数的列表
$*   //是以一个单字符串显示所有向脚本传递的参数,与位置变量不同,参数可超过9个
$$   //是脚本运行的当前进程ID号
$?   //是显示最后命令的退出状态,0表示没有错误,其他表示有错误
$!   //Shell最后运行的后台Process的PID 
‘@’ 和 ‘*’ 的区别:
  相同点:都是引用所有参数。
  不同点:只有在双引号中体现出来。假设在脚本运行时写了三个参数(分别存储在1 2 3)则"*" 等价于 “1 2 3"(传递了一个参数);而“@" 等价于 1” "2” "3"(传递了三个参数)。
 

二、示例

##dels.sh
echo "number:$#"
echo "scname:$0"
echo "first :$1"
echo "second:$2"
echo "argume:$@"
echo "show parm list:$*"
echo "show process id:$$"
echo "show precomm stat: $?"

执行结果:

[@jihite]$ sh del.sh 1 2 3
number:3
scname:del.sh
first: 1
second:2
argume:1 2 3
show parm list:1 2 3
show process id:21057
show precomm stat: 0

 

posted @ 2016-04-12 16:04  蚂蚁吃大象、  阅读(904)  评论(0编辑  收藏  举报