shell根據文件大小備份文件( integer expression expected)

手動備份數據比較麻煩,簡單寫一個備份的腳本

sum=`du -sh|awk '{printf $1}'|cut -d "M" -f 1`
echo 文件大小:$sum M
filename=`date +%Y%m%d`
echo filename=$filename
if [ $sum -gt 10 ]
then
        echo "存儲滿10M,開始備份... ..."
        cd $HOME/bak
        mkdir $filename
        cd $filename
        cp -rf $HOME/wjy/* .
else   
        echo "存儲不滿10M,不進行備份... ..."
fi

記憶中gt,lt 和eq只能對整數操作
小數與整數對比出錯:
 integer expression expected
改進程序:

sum=`du -sh|awk '{printf $1}'|cut -d "M" -f 1`
echo 文件大小:$sum M
filename=`date +%Y%m%d`
echo filename=$filename
flag=0
flag=`du -sh|awk '{printf $1}'|cut -d "M" -f 1|awk -v b=10 '{print($1>b)?"1":"0"}'`
if [ $flag -eq 1 ]
then
        echo "存儲滿10M,開始備份... ..."
        cd $HOME/bak
        mkdir $filename
        cd $filename
        cp -rf $HOME/wjy/* .
else   
        echo "存儲不滿10M,不進行備份... ..."
fi

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章