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

这个程序的目的就是为了检测文件在不在
页: [1]
查看完整版本: 为什么这个程序死循环?