免费注册 查看新帖 |

Chinaunix

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

请教一个shell实现的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-10-03 10:04 |只看该作者 |倒序浏览
举例:在一个shell里要实现一个功能需要分为20步进行
$ cat 11.sh
#step 1
...
#step 2
...


#step 20
...

请教如何通过以步骤号作为参数实现从指定的步骤开始一直往后运行
例如: 输入 11.sh 5时,shell从第5步开始运行直到执行完20步?

论坛徽章:
0
2 [报告]
发表于 2007-10-03 10:25 |只看该作者
你不如写个make file

论坛徽章:
0
3 [报告]
发表于 2007-10-03 12:56 |只看该作者
用if将每个step框起来


  1. #!/bin/bash

  2. if [ $# -ne 1 ] ; then
  3.         echo "Usage: command number"
  4.         exit 1
  5. fi

  6. if [ 1 -ge $1 ] ; then
  7.         echo "This is step 1"
  8. fi

  9. if [ 2 -ge $1 ] ; then
  10.         echo "This is step 2"
  11. fi

  12. if [ 3 -ge $1 ] ; then
  13.         echo "This is step 3"
  14. fi
复制代码

论坛徽章:
0
4 [报告]
发表于 2007-10-03 13:00 |只看该作者
原帖由 itryhangxh 于 2007-10-3 10:04 发表
举例:在一个shell里要实现一个功能需要分为20步进行
$ cat 11.sh
#step 1
...
#step 2
...


#step 20
...

请教如何通过以步骤号作为参数实现从指定的步骤开始一直往后运行
例如: 输入 11.sh 5时, ...

建议你使用cut类似的语法
-d5-         从第5步之后,所有的
-d5          只执行第五步
-d5-10     执行5到10步
-d5,9,13  执行5,9,13步

shell需要修改,
比如整个就用用awk生成菜单,然后用awk的system()函数
来驱动相应的命令。根据输入的来解析,执行相应的步骤。
应该不是很困难吧。

[ 本帖最后由 ivhb 于 2007-10-3 13:01 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2007-10-04 21:18 |只看该作者
可以详细说明一下吗?

论坛徽章:
0
6 [报告]
发表于 2007-10-04 21:36 |只看该作者

  1. i=1
  2. [ X$1 != X ] i=$1 #如果第一个参数是起始步骤,就给i赋值

  3. if [ $i -eq 1 ];then
  4.   #do step1
  5.   let i=$i+1 #如果成功,就将i增加1
  6. fi

  7. if [ $i -eq 2 ];then
  8.   #do step2
  9.   let i=$i+1 #如果成功,就将i增加1
  10. fi
  11. ......
  12. if [ $i -eq 20 ];then
  13.   #do step20
  14. fi
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP