+ -
当前位置:首页 → 问答吧 → 请帮我看一下这个脚本有什么问题

请帮我看一下这个脚本有什么问题

时间:2011-04-07

来源:互联网

我想把硬盘里的数据用DVD备份,每张光盘用4400M,而且每张光盘需要有个list,于是我写了以下脚本:
#!/bin/bash

let fileSize=0
let totalSize=0
let diskCount=1

backupDate=`date +%Y-%m-%d`

if [ -d "$1" ];then
        find "$1" -type f | while read fileName
        do
                {
                fileSize=`ls -l "$1$flieName" | awk '{print $5}'`
                ((totalSize+=fileSize))
                if [ $totalSize -lt 4613734400 ]
                then
                        echo ${fileName} >> /home/list_DVD${diskCount}_$backupDate.txt
                        echo "Adding File: \"$fileName\". Current Size: $((totalSize/1024/1024))Mb"
                        continue
                fi
                        echo "-----------------------------------------------"
                        echo $((totalSize/1024/1024))Mb in Disk ${diskCount}
                        echo
                        let totalSize=0
                        ((diskCount++))
                        echo "Now Make Disk $diskCount"
                        echo "-----------------------------------------------"
                        continue
                }
        done
else
        echo 'Wrong backup directory!'
        exit 1
fi
能执行,可是结果是错误的,最后只有一个文件生成。但我直接在命令行执行的话:

let fileSize=0
let totalSize=0
let diskCount=1

backupDate=`date +%Y-%m-%d`

find /data -type f | while read fileName
do
{
fileSize=`ls -l "$flieName" | awk '{print $5}'`
((totalSize+=fileSize))
if [ $totalSize -lt 4613734400 ]
then
echo ${fileName} >> /home/list_DVD${diskCount}_$backupDate.txt
echo "Adding File: \"$fileName\". Current Size: $((totalSize/1024/1024))Mb"
continue
fi
echo "-----------------------------------------------"
echo $((totalSize/1024/1024))Mb in Disk ${diskCount}
let totalSize=0
((diskCount++))
echo "Now Make Disk $diskCount"
echo "-----------------------------------------------"
continue
}
done
这个却是正确的。纠结中,请懂的兄弟指点一下

作者: demornov   发布时间: 2011-04-07

回复 demornov


    第一个代码的ls -l $1$fileName错了,fileName已经是全路径表示的了

作者: liion631818   发布时间: 2011-04-07