shell shift 使用一例

这段代码的作用是:

当输入 ./Export.sh 是将当前目录进行打包,当输入./Export.sh XX1 XX2 XX3 .... XXn 时,如果XXn存在,则依次将存在的目录进行打包,打包文件都放在上一级目录,其中使用到了shift命令:

Export.sh的源码如下:

  

#!/bin/bash

CUR="`pwd`"


echo -e "CUR = $CUR\n"

if [ -z $1 ]; then
    cd ../
    cp debugTools .debugTools_tmp -arf
    find .debugTools_tmp -name .svn | xargs rm -rf
    tar -czf debugTools.tar.gz .debugTools_tmp
    rm -rf .debugTools_tmp
    cd -
else
    while [ $# -gt 0 ]; do

        if [ -f $CUR/$1 ] || [ -d $CUR/$1 ]; then
            tmp="`basename $1`"  #去掉结尾的/
            cp $tmp  .${tmp}  -raf
            find .$tmp -name .svn | xargs rm -rf 
            tar -czf $tmp.tar.gz .$tmp
            rm -rf .$tmp
            mv $tmp.tar.gz ../
        else
            echo -e "\e[1;31mCan find $CUR/$1\n\e[0m"
        fi
        shift 
    done

fi

echo -e "\e[1;33mEND!!\e[0m"

 

posted @ 2014-01-06 19:42  摩斯电码  阅读(234)  评论(0编辑  收藏  举报