shell unzip,zip

#! /bin/bash

#脚本参数
#$1:母包路径  $2:渠道包路径  $3:ipa包名  $4:渠道号

if [ $# == 0 ];then
echo '##{"msg":"缺少参数", "code":255}##'
exit 0
fi

#定义变量
ipapath=$1
destpath=$2
ipaname=$3
agentid=$4

#母包完整路径, 带文件名
ppackage="$ipapath/$ipaname"_test11.ipa
echo $ppackage
#渠道包完整路径, 带文件名
cpackage="$destpath/$ipaname"_"$agentid".ipa
#echo $cpackage
#判断母包是否存在
if [ ! -f "$ppackage" ]; then
echo '##{"msg":"原包不存在", "code":100}##'
exit 0
fi

#复制母包创建渠道包
echo "正在创建渠道包..."
cp -f -n "$ppackage" "$cpackage"
echo "渠道包[$cpackage]创建完成..."

#进入渠道包文件夹
echo "切换至渠道包目录[$destpath]..."
cd "$destpath"

#创建 BT.plist 路径模板
echo "创建渠道包[$cpackage] BT.plist 路径模板"
unzip -q -d "$ipaname"_"$agentid"  "$cpackage"  "Payload/*.app/_CodeSignature/" "Payload/*.app/BT.plist"

#修改渠道号
cd "$ipaname"_"$agentid"
/usr/libexec/PlistBuddy -c "Set BT_AGENT $agentid" Payload/*.app/BT.plist
echo "渠道号修改为: $agentid"

##移动BT.plis到_CodeSignature
signpath=`dirname Payload/*.app/BT.plist`/_CodeSignature
mv -f -n Payload/*.app/BT.plist "$signpath"/BT.plist

#BT.plist写回 ipa
zip -ruq "$cpackage" Payload

#删除 BT.plist 模板路径
cd ../
rm -rf "$ipaname"_"$agentid"

echo '##{"msg":"success", "code":0}##'

 /mnt/www/DIVIDE_PKG/Lib/dividePkg/divide.sh "/Volumes/VMware Shared Folders/subpackage/modaojianghumanVban/vers_1318" "/Volumes/VMware Shared Folders/subpackage/modaojianghumanVban/vers_1318" modaojianghumanVban test55

 

Linux shell 中提取zip或jar文件中的某个文件

假如有个压缩包 abc.jar, 里面文件如下 (可以用unzip -l abc.jar 查看):

data/1.txt

data/2.txt

那就可以如下提取里面指定的文件到指定的位置,但上级目录将不会被创建。不加-d参数就解压到当前目录,-d参数可以指定不存在的目录,会自动创建。解压得到的文件名不变。

unzip -j abc.jar data/2.txt -d /tmp/data_in_abc

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值