shell 传参 $※ 和 $@ 区别

2022年4月15日16:21:44shell 传参 $※ 和 $@ 区别已关闭评论

当 $* 和 $@ 不被双引号" "包围时,它们之间没有任何区别,都是将接收到的每个参数看做一份数据,彼此之间以空格来分隔。但是当它们被双引号" "包含时,就会有区别了:

"$*"会将所有的参数从整体上看做一份数据,而不是把每个参数都看做一份数据。

"$@"仍然将每个参数都看作一份数据,彼此之间是独立的。

比如传递了 5 个参数,那么对于"$*"来说,这 5 个参数会合并到一起形成一份数据,它们之间是无法分割的;而对于"$@"来说,这 5 个参数是相互独立的,它们是 5 份数据。

#!/bin/bash
function exec_fun(){
    echo "$*"
    echo "$1"
}

echo "\$* 输出:"
exec_fun "$*"

echo "\$@ 输出:"
exec_fun "$@"
本文地址:http://81uyu.com/uyu/1194.html shell 传参 $※ 和 $@ 区别
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin