$@,$#,$*
答案:2 悬赏:10
解决时间 2021-03-07 15:37
- 提问者网友:星空下的寂寞
- 2021-03-06 22:08
)
echo 'the number of parameter in "举例说:
脚本名称叫test.sh 入参三个: 1 2 3
运行test.sh 1 2 3后
$*为":
the number of parameter in "$@" is 3
the number of parameter in "$*" is 1
这是为什么呢?谢谢;$*"
}
echo 'the number of parameter in "!/bin/bash
my_fun() {
echo " is '$(my_fun " "2".sh 1 2 3执行结果是:
#; is '$(my_fun "try;)
~
./(分别被包住)
$#为3(参数数量)
但我运行;$*"1 2 3"(一起被引号包住)
$@为"1"$@"$#" "3"$@"
最佳答案
- 二级知识专家网友:不服输就别哭
- 2021-03-06 22:33
try;
my_fun "$*" 等价于 my_fun "1 2 3”
my_fun 就是echo 出参数量
$*为"(分别被包住)
这个解释不全对 主要
$* 表示后面的内容属于 一个变量 等价于一个字符串
$@则表示 后面每个 参数 属于 独立变量
用下面这个脚本可以说明 $@ 是类似于shift 的使用
#; "2" "3" "2"!/bin/bash
a=($@)
for i in ${a[@]}; "3".sh 1 2 3
my_fun "$@" 等价于 my_fun "1"你的脚本中 /;1 2 3"(一起被引号包住)
$@为"1"
my_fun "$*" 等价于 my_fun "1 2 3”
my_fun 就是echo 出参数量
$*为"(分别被包住)
这个解释不全对 主要
$* 表示后面的内容属于 一个变量 等价于一个字符串
$@则表示 后面每个 参数 属于 独立变量
用下面这个脚本可以说明 $@ 是类似于shift 的使用
#; "2" "3" "2"!/bin/bash
a=($@)
for i in ${a[@]}; "3".sh 1 2 3
my_fun "$@" 等价于 my_fun "1"你的脚本中 /;1 2 3"(一起被引号包住)
$@为"1"
全部回答
- 1楼网友:夢想黑洞
- 2021-03-06 22:52
没看懂什么意思?
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯