shell脚本等待gunzip完成然后转到下一行

时间:2015-01-24 23:21:21

标签: linux shell

我创建了一个shell脚本来遍历目录中的一些文件,解压缩它们,添加日期字段,将它们拉回来,然后将它们移动到hadoop文件系统。但是,当我运行脚本时,它似乎直接到下一行而不等待gunzip完成。如何告诉它在移动到下一行之前等待它完成?

FILENAME="/datatst/toproc/*"

for i in $FILENAME
do
    echo "file name is: " $i
    FILENAMEv2=$(basename "${i}" .gz )
    echo "Stripped file name is: " $FILENAMEv2
    DATEPART=$(echo $i| cut -d"." -f1| cut -d"-" -f2-)
    echo "Datepart is: " $DATEPART
    FileDir="/datatst/unzip/$FILENAMEv2"
    echo "unzip directory file is: " $FileDir
    echo "unzipping file..."
    gunzip $i > -c $FileDir && trash $i
    echo "unzipping done..."
    echo "sed operation begin..."
    sed -i 's/^/'$DATEPART' /g' $FileDir
    echo "sed operation done..."
    echo "zip operation begin..."
    gzip $FileDir -c > /datatst/tomove/$i && trash $FileDir
    su hadoop fs -put /datatst/tomove/$i /user/hdfs/
done

1 个答案:

答案 0 :(得分:0)

我认为你应该尝试改变......

gunzip $i > -c $FileDir && trash $i

...到......

gunzip $i -c > $FileDir && trash $i

......我不确定trash是什么。

根据用户*

的评论进行了更新