执行下面的命令:
set -- "I am" handsome olsboy
for i in $*; do echo $i; done
for i in $@; do echo $i; done
for i in “$*”; do echo $i; done
for i in “$@”; do echo $i; done
这四种输出有什么区别?
执行下面的命令:
set -- "I am" handsome olsboy
for i in $*; do echo $i; done
for i in $@; do echo $i; done
for i in “$*”; do echo $i; done
for i in “$@”; do echo $i; done
这四种输出有什么区别?
$*和$@都是指函数或脚本后面带的所有参数
区别是 当"$*"和"$@"被双引号 引起来的时候,"$*"会被当做一个整体,"$@"还是会将参数分开
比如 你带入的参数是1 2 3,那么"$*"会把所有参数当成一个整体"1 2 3" "$@"会分开为:"1" "2" "3"
放在你的脚本里面 就是"$*"是一个整体,for循环一次,输出:
1 2 3
而"$@"会分开,会for循环3次,输出
1
2
3