查看: 1575|回复: 4
收起左侧

为什么这个程序死循环?

2014-3-12 10:09:53 | 显示全部楼层 |阅读模式
#!/bin/bash
a=2
b=1
while [ a > b ]; do
echo $a
echo $b
   if [ -f /home/pi/aaa.mp3 ]
      then
      cp /home/pi/aaa.mp3  /home/pi/aaa.mp3.0311
      a=1
      b=2
      echo a=    $a
      echo b=    $b
   fi
done
~

执行结果如下:
pi@raspberrypi:/etc/init.d$ sudo /etc/init.d/test1
2
1
a= 1
b= 2
1
2
a= 1
b= 2
1
2
a= 1
b= 2
1
2

循环第一次后,a b 值发生了变化,按理说不应继续执行啊
回复

使用道具 举报

 楼主| 2014-3-12 10:13:14 | 显示全部楼层
继续上个帖子,我把ab的初值设为: a=1,b=2 同样进入循环,说明,while后面条件判断的写法有问题。
回复 支持 反对

使用道具 举报

 楼主| 2014-3-12 10:19:58 | 显示全部楼层
#!/bin/bash
a=2
b=2
while [ $a -eq $b  ]; do
echo $a
echo $b
   if [ -f /home/pi/aaa.mp3 ]
      then
      cp /home/pi/aaa.mp3  /home/pi/aaa.mp3.0311
      a=1
      b=2
      echo a=    $a
      echo b=    $b
   fi
done
~
~

这样问题就解决了。
回复 支持 反对

使用道具 举报

2014-3-14 21:23:58 | 显示全部楼层
if [ -f /home/pi/aaa.mp3 ] cp /home/pi/aaa.mp3  /home/pi/aaa.mp3.0311

这样不是这个文件一直存在吗?
回复 支持 反对

使用道具 举报

 楼主| 2014-3-15 09:50:14 | 显示全部楼层
这个程序的目的就是为了检测文件在不在
回复 支持 反对

使用道具 举报

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

本版积分规则

热点推荐

关注我们,了解更多

官方微信

服务时间:10:00-16:00

13714503811

公司地址:深圳市龙岗区南湾街道东门头路8号

Copyright © 2012-2020 Powered by 树莓派论坛 2019.4  粤ICP备15075382号-1
快速回复 返回列表 返回顶部