当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 8 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 关于shell 的递归函数的一道题···
帖子发表于 : 2009-05-24 15:02 
头像

注册: 2008-05-09 23:50
帖子: 427
送出感谢: 0 次
接收感谢: 0 次
因为学习,所以要完成一道用shell写的递归函数(maybe对很多人来说很简单的说)
要求输出结果是:
0
01
012
0123
01234
012345
0123456
01234567
012345678
0123456789
我写了一个脚本,如下
代码:
#/bin/sh
i=0
prnum(){
   echo -n "$i"
   if [ $i -lt $x ]
   then
     i=$((i+1))
     prnum $i
   fi
}
x=0
while [ $x -lt 10 ]
do
  prnum $x
  echo
  i=0
  x=$((x+1))
done

这个脚本已经实现了要求,只是我觉得应该不只一种方法,所以就放上来,希望各位大牛们( :em04 我知道你们不介意这个称呼的)帮忙看看,有意见的提意见,有想法的提想法····
ps:我知道很简单,但是我对递归函数的应用实在不够熟悉,所以希望学到更多~民那~多多指教拉~


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 关于shell 的递归函数的一道题···
帖子发表于 : 2009-05-24 15:14 
头像

注册: 2007-09-29 3:09
帖子: 5773
送出感谢: 0 次
接收感谢: 3
代码:
export a="";for i in `seq 0 9`;do a+=$i;echo $a;done

这种问题就不应该用递归...


_________________
HUNT Unfortunately No Talent...


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 关于shell 的递归函数的一道题···
帖子发表于 : 2009-05-24 17:20 
头像

注册: 2008-05-09 23:50
帖子: 427
送出感谢: 0 次
接收感谢: 0 次
呵呵···都说是学习需要咯~~也就是老师无聊,想让我们了解递归函数的说~~所以就要求用递归咯~
循环我也写出来了~
只是我还是希望有没有其他的递归方法而已~


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 关于shell 的递归函数的一道题···
帖子发表于 : 2009-05-24 21:49 
头像

注册: 2008-09-18 13:11
帖子: 2342
送出感谢: 1
接收感谢: 332
代码:
#!/bin/sh -
p(){
    [ "$1" -lt "$2" ] && echo -n "$1" && p $(($1+1)) $2
}
for i in 1 2 3 4 5 6 7 8 9 10;do p 0 $i;echo;done


or

代码:
#!/bin/sh -
p(){
    [ "$1" -lt "$2" ] && echo -n "$1" && p $(($1+1)) $2
    return 0
}
q(){
    [ "$1" -le 10 ] && p 0 $1 && echo && q $(($1+1))
}
q 1


or

代码:
#!/bin/sh -

p(){
    [ "$1" -lt "$2" ] && echo -n "$1" && p $(($1+1)) $2 || [ "$2" -lt 10 ] && echo && p 0 $(($2+1)) || echo && exit
}

p 0 1


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 关于shell 的递归函数的一道题···
帖子发表于 : 2009-05-26 15:43 
头像

注册: 2008-05-09 23:50
帖子: 427
送出感谢: 0 次
接收感谢: 0 次
:em04 ls真积极~~把所有的语句都整合到一句话里面····
有个问题,有没有办法将只用一个函数,和一个参数就完成以上的功能~~


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 关于shell 的递归函数的一道题···
帖子发表于 : 2009-05-26 17:05 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
代码:
xiooli(~)<< xx() { for a in `seq 0 9`;do b=$b$a;echo $b;done }
xiooli(~)>> xx
0
01
012
0123
01234
012345
0123456
01234567
012345678
0123456789


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 关于shell 的递归函数的一道题···
帖子发表于 : 2009-05-26 17:53 
头像

注册: 2008-05-09 23:50
帖子: 427
送出感谢: 0 次
接收感谢: 0 次
虽然ls大神你的代码很简洁的说···但是,我想说,能用递归函数嘛···
不过真的谢谢了ls的各位大神···让我学习了不少东西的说····


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 关于shell 的递归函数的一道题···
帖子发表于 : 2009-05-27 20:26 
头像

注册: 2008-09-18 13:11
帖子: 2342
送出感谢: 1
接收感谢: 332
非主流1987 写道:
:em04 ls真积极~~把所有的语句都整合到一句话里面····
有个问题,有没有办法将只用一个函数,和一个参数就完成以上的功能~~


那必须在函数里用循环或类似的方法,没什么意思了。
代码:
#!/bin/sh -
p(){
   [ $1 -lt 10 ] && seq -s' ' 0 $1 | sed 's/ //g' && p $(($1+1))
}
p 0


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 8 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译