脚本内容:
#!/bin/bash
echo 'Using "$*":'
for arg in "$*"; do
echo "$arg"
done
echo 'Using "$@":'
for arg in "$@"; do
echo "$arg"
done
执行方式:
假设脚本名为 test.sh
,你通过以下方式运行脚本,传入三个参数 arg1
、arg2
、arg3
:
./test.sh arg1 arg2 arg3
输出结果:
-
"$*"
的输出:"$*"
将所有参数作为一个整体,并以空格分隔,所以它只会输出一次:
Using "$*": arg1 arg2 arg3
-
"$@"
的输出:"$@"
会将每个参数独立处理,所以每个参数都会被单独输出:
Using "$@": arg1 arg2 arg3
解释:
"$*"
将所有参数合并为一个字符串,然后作为单个元素处理,因此它输出一行,内容是所有参数的组合。"$@"
保留了每个参数的独立性,逐个遍历和输出,所以每个参数占据一行。