首先来看一段BASH代码:
echo "\$@=" $@
echo "\"\$@\"=" "$@"
echo "print each param from \$@"
for var in $@
do
echo $var
done
echo "print each param from \"\$@\""
for var in "$@"
do
echo "$var"
done
echo "print each param from \$*"
for var in $*
do
echo "$var"
done
echo "print each param from \"\$*\""
for var in "$*"
do
echo "$var"
done
执行./test.sh "a a" b c d,将会得到以下输出:
$@= a a b c d
"$@"= a a b c d
print each param from $@
a
a
b
c
d
print each param from "$@"
a a
b
c
d
print each param from $*
a
a
b
c
d
print each param from "$*"
a a b c d
本文通过一段Bash脚本示例详细解释了$@与$*在处理命令行参数时的不同行为。演示了如何使用这两个变量来分别获取未被合并的参数列表及合并后的参数字符串。
37

被折叠的 条评论
为什么被折叠?



