| 发表于:2007-10-20 15:57:3617楼 得分:0 |
我他妈的要崩溃了,这个程序我实在是不知道错在哪! suse10.0,bash, #!/bin/bash mypath="test/" myfiles="`ls $mypath ¦ grep '^[^\.]'`" echo $myfiles newname=1 sufix=".mp3" for onename in "$myfiles" do echo "$onename" if [ -f "$newname$sufix" ] then echo "$newname$sufix exits" newname=$(($newname+1)) continue fi mv $mypath$onename $mypath$newname".mp3" newname=$(($newname+1)) done myfiles="`ls $mypath`" echo "$myfiles" 当前路径下有一个test文件夹,下面有1.mp3 2.mp3 3.mp3 d这四个文件 输出结果是 1.mp3 2.mp3 3.mp3 d 1.mp3 2.mp3 3.mp3 d mv: target `test/1.mp3' is not a directory 1.mp3 2.mp3 3.mp3 d 也就是说if和fi中间的语句没有执行,这是为什么啊,万能的祌啊,救救我吧 ps: newname=$(($newname+1))这个可能有问题,我的目的就是newname自增一,我不知道`expr $newname+1`为什么使newname变成了1+1,而不是2 | | |
|