树莓派论坛

 找回密码
 立即注册

为什么这个程序死循环?

北京孔夫子 发表于 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
~
~

这样问题就解决了。
whtech1 发表于 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 | 显示全部楼层
这个程序的目的就是为了检测文件在不在
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版 | Archiver | 树莓派论坛 ( 粤ICP备15075382号-1 )