赞
踩
1.$* $@
$*: 代表输入的所有参数 但是看做一个整体
$@: 代表输入的所有参数 但是每个区分对待
PS: 当$@ $* 不被双引号括起来的时候 都以$1 $2 …$n的形式输出所有参数。
也就是说 当你使用这两个特殊变量的时候
如果不适用双引号括起来 这两个特殊变量的功能就没有差异
示例:
for i in $@
等同于
for i in $*
for i in "$@"
不同于
for i in "$*"
效果展示:
##没有双引号 [lingji@zero shell_txt]$ cat for_spec.sh #!/bin/bash for i in $* do echo $i done echo "=============分割线============" for i in $@ do echo $i done ##执行脚本 [root@zero shell_txt]# bash for_spec.sh 1 2 3 4 1 2 3 4 =========分割线========= 1 2 3 4
##有双引号 [lingji@zero shell_txt]$ cat for_spec2.sh #!/bin/bash for i in "$*" do echo $i done echo "=============分割线============" for i in "$@" do echo $i done ##执行脚本 [root@zero shell_txt]# bash for_spec2.sh 1 2 3 4 1 2 3 4 ========分割线======== 1 2 3 4
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。