LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1048|回复: 4

奇怪的问题, 我运行一个 shell 一段时间后会打印 "out of string space&

[复制链接]
发表于 2009-3-27 15:12:34 | 显示全部楼层 |阅读模式
code: test.sh

#!/bin/sh
num=0
while [ $num -lt $1 ]
do
echo  ""
echo  "*********************************"
echo -n "  times($num): "
date    "+%Y.%m.%d-%H:%M:%S"
echo  "*********************************"
echo  ""
          ls
echo  ""
sleep 5
num=`expr $num + 1`
done


#sh test.sh 5000

执行到一半就出问题。 我是在开发板上运行的。在主机上运行没有问题。(使用的是 msh).

请指点迷津。  Thanks
 楼主| 发表于 2009-3-28 17:09:17 | 显示全部楼层

这脚本执行一段时间后, ps 发现我的ps进程号已经大于 10000了。能否让这个脚本始终只

这脚本执行一段时间后, ps 发现我的ps进程号已经大于 10000了。能否让这个脚本始终只用一个 id
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-30 09:37:54 | 显示全部楼层
发现打印的地方。在msh.c 中。
char *space(n)
int n;
{
        register char *cp;

        if ((cp = getcell(n)) == 0)
                err("out of string space");
        return (cp);
}
回复 支持 反对

使用道具 举报

发表于 2009-3-30 10:34:50 | 显示全部楼层
num=`expr $num + 1`

这里expr是新开一个shell来做运算的,改成
num=$(($num + 1))
试试
回复 支持 反对

使用道具 举报

发表于 2009-3-30 19:32:18 | 显示全部楼层
  1. let "num = $num + 1"
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表