shell shift 使用一例

这段代码的作用是:

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

Export.sh的源码如下:

  

#!/bin/bash

CUR="`pwd`"


echo -e "CUR = $CUR
"

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
e[0m"
        fi
        shift 
    done

fi

echo -e "e[1;33mEND!!e[0m"
原文地址:https://www.cnblogs.com/pengdonglin137/p/3507790.html