shell $*与$@的区别

 1 #! /bin/bash
 2 test() {
 3         echo "未加引号,二者相同"
 4         echo $*
 5         echo $@
 6         echo "加入引号后对比"
 7         for N in "$*"
 8         do
 9            echo $N
10         done
11 
12         echo "----------"
13         for N in "$@"
14         do
15            echo $N
16         done
17 }
18 test  12 123  3424 546

可以看到不加引号时,二者都是返回传入的参数,但加了引号后,此时$*把参数作为一个字符串整体(单字符串)返回,$@把每个参数作为一个字符串返回

posted @ 2018-05-23 22:32  tele  阅读(8448)  评论(1编辑  收藏  举报