免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1288 | 回复: 7
打印 上一主题 下一主题

netman,请麻烦讲一下"$@"和"$#"的区别 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-09-19 11:17 |只看该作者 |倒序浏览
RT,有点搞不清

论坛徽章:
0
2 [报告]
发表于 2004-09-19 11:19 |只看该作者

netman,请麻烦讲一下"$@"和"$#"的区别


写错了

是"$@"和"$*"的区别

论坛徽章:
0
3 [报告]
发表于 2004-09-19 11:22 |只看该作者

netman,请麻烦讲一下"$@"和"$#"的区别

$@和($*相似,除了在加双引号时)是所有的位置参数
$#是所有的位置参数的个数

论坛徽章:
0
4 [报告]
发表于 2004-09-19 13:34 |只看该作者

netman,请麻烦讲一下"$@"和"$#"的区别

问题是有双引号的~

The “$*” special parameter takes the entire list as one argument with spaces between.

The “$@” special parameter takes the entire list and separates it into separate arguments.


有点不明白,BJGIRL能否举个例子?

论坛徽章:
0
5 [报告]
发表于 2004-09-19 17:07 |只看该作者

netman,请麻烦讲一下"$@"和"$#"的区别

请尝试比较
  1. $cat test.sh
  2. for i in "$@";do echo $i;done
  3. for i in $*;do echo $i;done
  4. $#./test.sh a b c d
  5. a
  6. b
  7. c
  8. d
  9. a
  10. b
  11. c
  12. d
  13. $./test.sh "a b" "c d"
  14. a b
  15. c d
  16. a
  17. b
  18. c
  19. d
复制代码

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2004-09-19 21:31 |只看该作者

netman,请麻烦讲一下"$@"和"$#"的区别

我記得在十三問有討論過啊, 再看看?

论坛徽章:
0
7 [报告]
发表于 2004-09-20 04:13 |只看该作者

netman,请麻烦讲一下"$@"和"$#"的区别

原帖由 "w662000" 发表:

写错了

是"$@"和"$*"的区别

设参数为1 2 3

"$*"="1 2 3"
"$@"="1" "2" "3"


for argv in "$*"
do
done
中循环1次


for argv in "$@"
do
done
中循环3次

论坛徽章:
0
8 [报告]
发表于 2004-09-20 21:49 |只看该作者

netman,请麻烦讲一下"$@"和"$#"的区别

good!

"$*"将整个参数表作为一个对象处理
"$@"将整个参数表以空格为分隔符分成几个对象分别处理


试了好多情况了~基本掌握

a b c d

"a b c d"

"a b""c d"

"a b" "c d"

"a b"c d

"a b" c d

用了a.sh:

  1. for i in $@;do echo $i;done
  2. for i in $*;do echo $i;done
  3. for i in "$@";do echo $i;done
  4. for i in "$*";do echo $i;done

复制代码


谢谢各位!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP