免费注册 查看新帖 |

Chinaunix

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

能否通过函数实现对外部变量实现对Count的++ [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-24 11:57 |只看该作者 |正序浏览
-----------------------
function.sh

func()
{
...
}

call.sh

. ./function.sh

Count="0"

func $Count
echo $Count
func $Count
echo $Count

------------------------

现在有这样结构的脚本.
能否通过函数实现对外部变量实现对Count的++?
也就是说func每执行一次Count就+1。

期待call.sh的输出结果是
-------------------------
1
2
-------------------------

论坛徽章:
0
9 [报告]
发表于 2006-08-25 10:36 |只看该作者
原帖由 nhjidle 于 2006-8-25 10:25 发表
function.sh

func()
{
  count=`expr $count + 1`
}

call.sh

count=0

. function.sh

func $count
echo $count


你忘记了,是外部变量,你不可能知道它的名字,所以你不能在func里面用 $COUNT
应用中,可能是 $COUNT1, $COUNT2,$DISCOUTNT,
你不能总去改脚本

论坛徽章:
0
8 [报告]
发表于 2006-08-25 10:25 |只看该作者
function.sh

func()
{
  count=`expr $count + 1`
}

call.sh

count=0

. function.sh

func $count
echo $count

论坛徽章:
0
7 [报告]
发表于 2006-08-25 10:01 |只看该作者
原帖由 stephen412 于 2006-8-24 21:23 发表
func1()
{
   for((i=1;i<10;i++))
      do
           XXXXXXXXX
      done
}


这位老兄不要胡闹

论坛徽章:
0
6 [报告]
发表于 2006-08-24 21:23 |只看该作者
func1()
{
   for((i=1;i<10;i++))
      do
           XXXXXXXXX
      done
}

论坛徽章:
0
5 [报告]
发表于 2006-08-24 16:03 |只看该作者
楼上的意思是func()里面度进来的是$COUNT的地址?
我怎么没看出来,请详细解释一下,如何修改 $COUNT的,谢谢了

论坛徽章:
0
4 [报告]
发表于 2006-08-24 15:22 |只看该作者
可以的,不过在call.sh中不能通过./function.sh来执行function.sh,而应该通过 source function.sh 或者 . function.sh来把function.sh包含进来

论坛徽章:
0
3 [报告]
发表于 2006-08-24 15:02 |只看该作者
烈火老兄的代码我没看懂,在func内没对 $COUNT 操作
echo 的时候会变?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2006-08-24 12:07 |只看该作者
example:

  1. #!/bin/bash
  2. trap 'echo Number of function has executed:$n ;exit' 2
  3. func(){
  4. read
  5. }
  6. n=0
  7. while :;do
  8.         func
  9.         ((n+=1))
  10. done
复制代码
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP