我是 bash 的新手,我正在学习它,我对使用$@
和之间的真正区别表示怀疑S*
。
我在这里红色Bash 特殊参数
我知道两者都扩展到位置参数,但差异出现在双引号内。顺便说一句"$@" = "$1" "$2"..."$n"
,可能不同于"S*" = "$1$2...$n".
我尝试用一个简单的脚本来理解它:
if [ $# -gt 0 ]; then
echo "Your command line contains $# arguments"
else
echo "Your command line contains no arguments"
exit fi
echo "Params are: "
echo $@
echo $*
echo "$@"
echo "$*"
如果我像这样在终端中执行我的脚本~./my_script par1 par2 par3
结果总是一样的:
Params are:
par1 par2 par3
par1 par2 par3
par1 par2 par3
par1 par2 par3
也许我不了解这两个特殊变量的真正用途以及我的示例是否正确。我也想用一个很好的例子来说明这一点。