关于$@
,"$@"
,$*
,"$*"
区别
测试代码
#!/bin/bash
for key in "$@"
do
echo '"$@"' $key
done
for key in $@
do
echo '$@' $key
done
for key in "$*"
do
echo '"$*"' $key
done
for key in $*
do
echo '$*' $key
done
测试用例一
./test.sh java c python "golang c++"
测试用例二
./test.sh java c python golang c++
总结:
$@
会忽略传入参数里面的"
,并且会以以IFS(默认为空格)来划分字段
"$@"
会把引号内容当成一个字段,忽略引号内部的IFS
$*
和$@
不管有没有引号是一样的
"$*"
把所有的命令行参数当做一个字符串
有疑问加站长微信联系(非本文作者)