(批量)备份github仓库到本地

  1. shell脚本backup.sh
#!/bin/bash
# tool-script: backup repositories from github
if [[ $# -eq 0 ]] || [[ $1 = "-h" ]];then
   echo -e "\033[31m--------------------------------------------------------\033[0m"
   echo "Usage1: $0 URL"
   echo "   e.g: $0 https://github.com/cherrishccl?tab=repositories"
   echo ""
   echo "Usage2: $0 Username Page"
   echo "   e.g: $0 cherrishccl 1"
   echo -e "\033[31m--------------------------------------------------------\033[0m"
   exit 1;
fi

url=""
username=""
if [ $# == 1 ];then
   url="https://github.com/cherrishccl?tab=repositories"
   username=${url%\?*}
   username=${username##*/}
else
   username=$1
   url="https://github.com/${username}?page=${2}&tab=repositories"
fi

   patten1="a href=\"/"${username}"/"
   r_path=`curl "${url}" | grep "${patten1}"`

   # get repositories url path
   path_head="https://github.com/"
   for p in ${r_path}
   do
     if [[ $p =~ "href" ]];then
         p=${p#*/}
         p=${p%\"*}

         p=${path_head}${p}
         echo -e "\033[33m ====== Download ====================\033[0m"
         echo -e "\033[32m $p \033[0m"
         git clone ${p}
         echo -e "\033[33m ====== $p has been Finished =================\033[0m"
     fi
 done

 执行脚本:bash backup.sh https://github.com/cherrishccl?tab=repositories

猜你喜欢

转载自my.oschina.net/u/574036/blog/1624045