关于$@,"$@",$*,"$*"区别
测试代码
#!/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
$*和$@ 不管有没有引号是一样的
"$*" 把所有的命令行参数当做一个字符串












网友评论