LinuxSir.cn,穿越时空的Linuxsir!

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

有关$的问题,请高手帮忙看一下,谢谢

[复制链接]
发表于 2007-11-29 19:58:41 | 显示全部楼层 |阅读模式
近几天在搞那个俄罗斯方块的那个老程序,发现几个问题搞不懂:
一:for ((j = 0; j < $; j++))
    这里j<$是什么意思呢???$在这里代表什么意思呢,运行的时候就这里报错了;
二:有时候变量赋值的时候直接赋一个$给变量,又是什么意思呢???

请帮忙指教一下,谢谢!!!
发表于 2007-11-29 20:09:40 | 显示全部楼层
哪个shell有类似C的for循环控制的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-11-29 20:29:56 | 显示全部楼层
我看的是bash
下面拷一部分代码如下:
function RandomBox()
{
  local i j t

  #更新当前移动的方块
  iBoxCurType=$
  iBoxCurRotate=$
  cBoxCur=$
  for ((j = 0; j < $; j++))
  do
    boxCur[$j]=$
  done
  

  #显示当前移动的方块
  if (( $ == 8 ))
  then
    #计算当前方块该从顶端哪一行"冒"出来
    for ((j = 0, t = 4; j < 8; j += 2))
    do
      if (($ < t)); then t=$; fi
    done
    ((boxCurY = -t))
    for ((j = 1, i = -4, t = 20; j < 8; j += 2))
    do
      if (($ > i)); then i=$; fi
      if (($ < t)); then t=$; fi
    done
    ((boxCurX = (iTrayWidth - 1 - i - t) / 2))

    #显示当前移动的方块
    echo -ne `DrawCurBox 1`

    #如果方块一出来就没处放,Game over!
    if ! BoxMove $boxCurY $boxCurX
    then
      kill -$sigExit $
      ShowExit
    fi
  fi
  
  

  #清除右边预显示的方块
  for ((j = 0; j < 4; j++))
  do
    ((i = iTop + 1 + j))
    ((t = iLeft + 2 * iTrayWidth + 7))
    echo -ne "[$;$H     "
  done

  #随机产生新的方块
  ((iBoxNewType = RANDOM % $))
  ((iBoxNewRotate = RANDOM % $))
  for ((j = 0, i = ($ + $iBoxNewRotate) * 8; j < 8; j++, i++))
  do
    boxNew[$j]=$;
  done

  ((cBoxNew = ${colorTable[RANDOM % $]}))
  
  #显示右边预显示的方块
  echo -ne "[1m[7m[3$m[4$m"
  for ((j = 0; j < 8; j += 2))
  do
    ((i = iTop + 1 + $))
    ((t = iLeft + 2 * iTrayWidth + 7 + 2 * ${boxNew[$j + 1]}))
    echo -ne "[$;$H[]"
  done
  echo -ne "[0m"
}
回复 支持 反对

使用道具 举报

发表于 2007-11-30 09:32:03 | 显示全部楼层
Post by Jockey;1789369
哪个shell有类似C的for循环控制的?


csh,ksh都有类似c的for控制吧
回复 支持 反对

使用道具 举报

发表于 2007-11-30 13:30:47 | 显示全部楼层
Post by flf21;1789603
csh,ksh都有类似c的for控制吧


你的签名很有意思,不知道第一个是什么意思,胆小,没敢试,呵呵,能不能解释下?
回复 支持 反对

使用道具 举报

发表于 2007-11-30 15:09:28 | 显示全部楼层
Post by whitelilis;1789711
你的签名很有意思,不知道第一个是什么意思,胆小,没敢试,呵呵,能不能解释下?

  1. a()
  2. {
  3. a;
  4. }
  5. a
复制代码

这样可以理解嘛
回复 支持 反对

使用道具 举报

发表于 2007-11-30 17:22:57 | 显示全部楼层
ulimit 设置好就行了
回复 支持 反对

使用道具 举报

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

本版积分规则

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