深入理解 $@
与 Bash 参数处理
在 Bash 脚本编写中,$@
和 $*
都用于处理 脚本参数(Positional Parameters),但它们的行为有所不同,理解它们的区别至关重要。本文将深入剖析它们的用法、适用场景,并对比 "$@"
和 "$*"
在不同场景下的表现。
1. $@
和 $*
的基本概念
在 Bash 中:
$@
代表所有参数,并保持参数的分割性。$*
也代表所有参数,但会将它们合并成一个字符串。
假设我们编写了一个 Bash 脚本 test.sh
,其内容如下:
#!/bin/bash
echo "Using \$*: $*"
echo "Using \$@: $@"
echo "Iterating over \$*:"
for arg in "$*"; do
echo "Arg: $arg"
done
echo "Iterating over \$@:"
for arg in "$@"; do
echo "Arg: $arg"
done
然后,我们执行:
bash test.sh "hello world" "foo bar" baz
让我们看看输出结果:
Using $*: hello world foo bar baz
Using $@: hello world foo bar baz
Iterating over $*:
Arg: hello world foo bar baz #
标签:bar,echo,world,array,foo,hello,Bash
From: https://www.cnblogs.com/smartljy/p/18686443