Chinaunix

标题: 求一段BASH Shell script纠错 [打印本页]

作者: max44    时间: 2008-08-25 20:16
标题: 求一段BASH Shell script纠错
菜鸟求助
There is a shell script of chanaging suffix of files,But cannot work at the moment.

!#/bin/bash
#
# change the suffix (extension name) of files

wronqPMTR=20
inputPMTR=2
oneFileConverted=1
numberOfFilesConverted=0                  

if [ $? -ne "$inputPMTR" ]
then
  echo "Usage: `basename $0` old-suffix-name new-suffix-name"
  exit $wrongPMTR

for fileName in *$1*      
do
   if [ -f "#fileName" ]  
   then
     originName=`basename fileName`
     changeSuffix=`echo $originName | sed -e "s/$1/$2/"`   
     mv $originName $changeSuffix                          
     let "numberOfFilesConverted += 1"
   fi

   if ["$numberOfFilesConverted" -eq "$oneFileConverted"]
done
then
echo "$numberOfFilesConverted file renamed."
esle
echo "$numberOfFilesConverted files renamed."
fi

exit 0

逻辑错误和使用错误都请指出了,多谢。

补充: 发现了几处很白痴的错误,其他就不知道了,应该有10处错误。

[ 本帖最后由 max44 于 2008-8-25 20:18 编辑 ]
作者: finddream    时间: 2008-08-25 21:11
排错题?
bash -x scriptfilename
作者: ly5066113    时间: 2008-08-25 21:25
这个脚本意义不大。

man rename
作者: 爱知    时间: 2008-08-25 21:29
楼主这么多错误啊
建议多看看shell基础篇章

#!/bin/bash
wronqPMTR=20
inputPMTR=2
numberOfFilesConverted=0      
if [ $# -ne "$inputPMTR" ]
then
  echo "Usage: `basename $0` old-suffix-name new-suffix-name"
  exit $wrongPMTR
fi

for fileName in *.$1
do
   if [ -f "$fileName" ]  
   then
     mv $fileName `echo $fileName | sed  "s/$1$/$2/"`                  
     let "numberOfFilesConverted += 1"
   fi
done

echo "$numberOfFilesConverted file renamed."

exit 0

[ 本帖最后由 爱知 于 2008-8-25 21:32 编辑 ]
作者: max44    时间: 2008-08-25 21:45
谢谢楼上各位。。。刚刚开始自己学。。。的确还要再看看基础知识




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2