shell中$*与$@的区别
$*
所有的位置参数,被作为一个单词.
注意:"$*"必须被""引用.
$@
与$*同义,但是每个参数都是一个独立的""引用字串,这就意味着参数被完整地传递,
并没有被解释和扩展.这也意味着,每个参数列表中的每个参数都被当成一个独立的
单词.
注意:"$@"必须被引用.
$@ $* 只在被双引号包起来的时候才会有差异
双引号括起来的情况:
$*将所有的参数认为是一个字段
$@以IFS(默认为空格)来划分字段,如果空格在“”里面,不划分。
#!/bin/bash for i in $* do echo "Parameter is $i" done echo "===============================" for i in "$*" do echo "Parameter is $i" done echo "===============================" for i in $@ do echo "Parameter is $i" done echo "===============================" for i in "$@" do echo "Parameter is $i" done
运行结果如下:
spongewxy@spongewxy-Aspire-E1-571G:~/文档/Shell脚本编程诀窍/第三章-变量$ ./compare_var.sh one "two three" four five
Parameter is one
Parameter is two
Parameter is three
Parameter is four
Parameter is five
===============================
Parameter is one two three four five
===============================
Parameter is one
Parameter is two
Parameter is three
Parameter is four
Parameter is five
===============================
Parameter is one
Parameter is two three
Parameter is four
Parameter is five
posted on 2015-01-21 11:44 sponge_wxy 阅读(75) 评论(0) 收藏 举报
浙公网安备 33010602011771号