免费注册 查看新帖 |

Chinaunix

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

[求救]while循环中执行动作[solaris] [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-14 11:20 |只看该作者 |倒序浏览
代码如下:平台是solaris
需要传入一个整数,表示时间,用来在该循环内执行一个动作。
我现在觉得 是这个循环有问题

  1. #!/bin/sh
  2. echo "hello"

  3. count=$1

  4. echo "the time limit1 is:$count"

  5. count=`expr  $count \* 60`

  6. echo "the time limit2 is:$count \n "

  7. sta_sec=`perl -e '$t=time();{print "$t\n";}'`

  8. echo "the time is:$sta_sec \n "

  9. while (  $end_sec != `expr $sta_sec + $count` )
  10. [
  11.         echo "give me a shell"

  12.         end_sec=`perl -e '$t=time();{print "$t\n";}'`

  13.         echo $end_sec

  14. ]
  15. end
  16. date
  17. exit 0





复制代码

[ 本帖最后由 PERR 于 2005-12-14 14:09 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2005-12-14 14:08 |只看该作者

没有人愿意帮我看一眼吗!

我真的是已经花费了太多时间,也没有找到相关的参考资料呀。。。。

论坛徽章:
0
3 [报告]
发表于 2005-12-14 14:12 |只看该作者
while(1)
    do
           ...
   done

论坛徽章:
0
4 [报告]
发表于 2005-12-14 14:18 |只看该作者

$end_sec != `expr $sta_sec + $count`

这一句报错,我要比较这两个值
还要用一次expr?

论坛徽章:
0
5 [报告]
发表于 2005-12-14 14:21 |只看该作者
man expr

记得好象要个括号.你再仔细看下man doc

论坛徽章:
0
6 [报告]
发表于 2005-12-14 15:07 |只看该作者
干脆全部用perl写么好了  省得搞不清楚。。。

论坛徽章:
0
7 [报告]
发表于 2005-12-14 15:13 |只看该作者

报错部门是说 !=,这里的操作运算符有什么特殊要求吗?

expr这一块查了man没有说要加上括号

论坛徽章:
0
8 [报告]
发表于 2005-12-14 15:16 |只看该作者
主要是我不能用shell写,我只是把实现处理这一块有问题的部分拿出来测试。其它部分需要用shell呀

原帖由 cnwalker 于 2005-12-14 15:07 发表
干脆全部用perl写么好了  省得搞不清楚。。。

论坛徽章:
0
9 [报告]
发表于 2005-12-14 15:54 |只看该作者

??

我以为是呢,刚学习,请指教

原帖由 寂寞烈火 于 2005-12-14 15:28 发表
这是shell吗? ;

论坛徽章:
0
10 [报告]
发表于 2005-12-14 16:07 |只看该作者

已经改成如下形式了


  1. #!/bin/sh

  2. count=$1

  3. echo "the time limit1 is:$count"

  4. count=`expr  $count \* 60`

  5. echo "the time limit2 is:$count \n "

  6. sta_sec=`perl -e '$t=time();{print "$t\n";}'`

  7. echo "the time is:$sta_sec \n "

  8. $sta_sec = `expr $sta_sec + $count`

  9. while (` $end_sec \< $sta_sec` )
  10. do
  11.         echo "give me a shell"

  12.         end_sec=`perl -e '$t=time();{print "$t\n";}'`

  13.         echo $end_sec

  14. done

  15. date
  16. exit 0
复制代码


现在的报错如下:
loop.sh: 1134546899: not found
loop.sh: <: not found

非常的莫名其妙,这个操作符不行吗?大侠能否给个明确一点的回复呢,谢谢~
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP