当前位置: > shell编程 >

linux系统中关于shell变量$*与$@的区别

时间:2016-12-29 23:21来源:linux.it.net.cn 作者:IT

在我们初学linux系统shell时,可能会感觉$@与$*没什么区别,如下面shell脚本:

#!/bin/bash
# name:a.sh
#
echo 'this script $* is: '$*
echo 'this script $@ is: '$@

执行结果表面上是一样的、如下图所示:

其实$*和$@还有一些区别的

$*(强调整体)       //所有参数列表,代表"$1 $2 … $n",即当成一个整体输出,每一个变量参数之间以空格隔开。 

$@(强调独立)      //所有参数列表,代表"$1" "$2" … "$n" ,即每一个变量参数是独立的 。也是全部输出。

 

我们可以在for语句中使用双引号""看出两个变量的区别,shell脚本如下:

#!/bin/bash
# script name:b.sh author:qq5201351
# 
for i in "$*";do
echo $i
done

echo "================="

for i in "$@";do
echo $i
done

执行结果如下所示,由结果可见$@每一个参数都是独立的,所以在进行迭代时,也是单独输出的。

 



(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容