#!/bin/bash current=$(cd $(dirname $0); pwd -P) function zip_() { echo abc } function unzip_() { echo abc } function unzip_all() { local file_path=$1 echo ${file_path} if [ -z "${first_zip}" ];then first_zip=${file_path} fi local tmp_zip="${file_path}.tmp" mv ${file_path} ${tmp_zip} unzip ${tmp_zip} ${var} -d ${file_path} &>/dev/null local read_content="${file_path}.content" find ${file_path} -name "*.zip" -type f > ${read_content} while read zip_file do unzip_all ${zip_file} done < ${read_content} rm -rf ${read_content} if [ "X${file_path}" == "X${first_zip}" ];then mv ${first_zip} ${first_zip%.zip} mv ${tmp_zip} ${first_zip} else rm -rf ${tmp_zip} fi } function show_zip() { local file_path=$1 if [ -z "${first_zip}" ];then first_zip=${file_path} fi local zip_content=$(less ${file_path} | cat | awk '{print $NF}') local start_end=$(echo "${zip_content}" | grep -n "\---" | awk -F":" '{print $1}') local start=$(echo ${start_end} | awk '{print $1}'); let start++ local end=$(echo ${start_end} | awk '{print $2}'); let end-- local zip_content=$(echo "${zip_content}" | sed -n "${start},${end}p" | grep -v "/$") local read_content="${file_path}.content" echo "${zip_content}" > ${read_content} while read line do echo ${line} | grep -q "\.zip$" [ $? -ne 0 ] && echo ${file_path}/${line} && continue local tmp_zip="${file_path}.tmp" mv ${file_path} ${tmp_zip} unzip ${tmp_zip} ${line} -d ${file_path} &>/dev/null show_zip ${file_path}/${line} rm -rf ${file_path} if [ "X${file_path}" == "X${first_zip}" ];then cp -rpf ${tmp_zip} ${first_zip} fi rm -rf ${tmp_zip} done < ${read_content} rm -rf ${read_content} } function main() { show_zip $@ } main $@