尋找一些幫助我的bash腳本。我試圖寫這個shell腳本執行以下操作:幫助shell腳本根據條件查找和移動文件
找到一個名爲DIR文件:
server1-date.done
server2-date.done
server3-date.done
...
server10-date.done
打印到
listA
- 在dir(* .gz)中查找文件並打印到
listB
- 如果
listA
有10
計數(發現基本上10個.done
文件),然後 入手移動從listB
文件後,在listB
將文件移動到新目錄 - ,然後刪除舊的目錄,其名稱類似(
server1-date
,server2-date
,...)和.done文件。
到目前爲止,我已經在作品中了。我無法獲得if
部分工作的條件。我認爲我沒有正確編碼。任何代碼建議,改進等,將不勝感激。謝謝。
#Directories
GZDIR=/mydumps/mytest
FINALDIR=/mydumps/mytest/final
FLGDIR=/backup/mytest/flags
export GZDIR FINALDIR FLGDIR
#lists
FLGLIST="/mydumps/mytest/lists/userflgs.lst"
GZLIST="/mydumps/mytest/lists/gzfiles.lst"
export FLGLIST GZLIST
#Find files
find $FLGDIR -name \*.done -print > $FLGLIST
find $GZDIR -name \*.gz -print > $GZLIST
#Get need all (10) flags found before we do the move
FLG_VAL =`cat $FLGLIST | wc -l`
export $FLG_VAL
if [ "$FLG_VAL" = "10" ]; then
for FILE in $GZLIST
do
echo "mv $GZLIST $FINALDIR" 2>&1
for FLAG in $FLGLIST
do
echo "rmdir -f $FLAG" 2>&1
done
done
else
echo "Cannot move file" 2>&1
exit 0
fi
'$出口是FLG_VAL'都完全沒有必要的,而且也很可能沒有做任何事情,甚至接近到什麼你認爲它在做。 – Omnifarious 2011-03-11 23:47:43
不需要導出任何這些變量(或間接地,它們的內容)。 – 2011-03-12 04:38:40
有沒有辦法在執行之前檢查所有語法? – jdamae 2011-03-12 22:59:16