以下有4个bash代码片段,我使用./script.sh a b c
进行调用。
for arg in $@; do
echo "$arg"
done ## output "a\nb\nc"
for arg in "$@"; do
echo "$arg"
done ## output "a\nb\nc" -- I don't know why
for arg in $*; do
echo "$arg"
done ## output "a\nb\nc"
for arg in "$*"; do
echo "$arg"
done ## output "abc"
我不知道$@
和$*
之间的确切区别,
我认为"$@"
和"$*"
应该是相同的,但它们并不相同。为什么呢?