shell调用python脚本、python传参给shell_shell脚本中怎么调用python脚本中的带参函数呀...

如题呀……我是小白,求各位大神解惑!build_using_xctool.sh

auto_send_email.py

build_using_xctool.sh 中运行 auto_send_email.py 中的 sendMessage(a,b,c,d,...) 函数,a,b,c,d,... 某些参数需要从 build_using_xctool.sh 中传过去!

事情是这样的,我在网上找了一个自动打包分发的shell脚本,然后我想在打包完成上传至fir上面之后发邮件通知自己和同事,然后又找了一个发送邮件的python脚本!

build_using_xctool.sh#!/bin/bash

#打包状态 Adhoc 0 / app_store 1

STATE=1

#计时

SECONDS=0

#假设脚本放置在与项目相同的路径下

project_path=$(pwd)

#取当前时间字符串添加到文件结尾

now=$(date +"%Y_%m_%d_%H_%M_%S")

#指定项目的scheme名称

scheme=""

#指定要打包的配置名

#指定打包所使用的provisioning profile名称

#ipa_name 包名称

configuration=""

provisioning_profile=""

ipa_name=""

if [ $STATE -eq 0 ]

then

configuration="Adhoc"

ipa_name="app_Demo"

provisioning_profile="..."

elif [ $STATE -eq 1 ]

then

configuration="app-store"

ipa_name="app_Store"

provisioning_profile="...."

fi

#指定打包所使用的provisioning profile名称

#指定项目地址

workspace_path="$project_path/app.xcworkspace"

#指定输出路径

output_path="/Users/gyd/Desktop/学习/1.脚本化打包/ipa_test"

#指定输出归档文件地址

archive_path="$output_path/${ipa_name}_${now}.xcarchive"

#指定输出ipa地址

ipa_path="$output_path/${ipa_name}_${now}.ipa"

#获取执行命令时的commit message

commit_msg="$1"

#输出设定的变量

echo "===workspace path: ${workspace_path}==="

echo "===archive path: ${archive_path}==="

echo "===ipa path: ${ipa_path}==="

echo "===profile: ${provisioning_profile}==="

echo "===commit msg: $1==="

#先清空前一次build

xctool clean -workspace ${workspace_path} -scheme ${scheme} -configuration ${configuration}

#根据指定的项目、scheme、configuration与输出路径打包出archive文件

xctool build -workspace ${workspace_path} -scheme ${scheme} -configuration ${configuration} archive -archivePath ${archive_path}

#使用指定的provisioning profile导出ipa

#我暂时没找到xctool指定provisioning profile的方法,所以这里用了xcodebuild

xcodebuild -exportArchive -archivePath ${archive_path} -exportPath ${ipa_path} -exportFormat ipa -exportProvisioningProfile "${provisioning_profile}"

#上传到fir

fir publish ${ipa_path} -T "token" 重新生成

-c "${commit_msg}"

#输出打包分发总用时

echo "===Finished. Total time: ${SECONDS}s==="

#以上都结束之后,调用auto_send_email.py 自动发送邮件通知

#python /Users/gyd/Desktop/auto_send_email.py

auto_send_email.py# -*- coding: UTF-8 -*-

import sys, os, re, urllib, urlparse

import smtplib

import traceback

from email.mime.text import MIMEText

from email.mime.multipart import MIMEMultipart

def sendmail(subject,msg,toaddrs,fromaddr,smtpaddr,password):

mail_msg = MIMEMultipart()

if not isinstance(subject,unicode):

subject = unicode(subject, 'utf-8')

mail_msg['Subject'] = subject

mail_msg['From'] =fromaddr

mail_msg['To'] = ','.join(toaddrs)

mail_msg.attach(MIMEText(msg, 'html', 'utf-8'))

try:

s = smtplib.SMTP_SSL("smtp.qq.com", 465)

# s.connect(smtpaddr) #连接smtp服务器

s.login(fromaddr,password) #登录邮箱

s.sendmail(fromaddr, toaddrs, mail_msg.as_string()) #发送邮件

s.quit()

print "发送成功"

except Exception,e:

print "Error: unable to send email"

print traceback.format_exc()

if __name__ == '__main__':

fromaddr = "@qq.com"

smtpaddr = "smtp.qq.com"

toaddrs = ["@qq.com"]

subject = "来自python脚本自动发送的邮件"

password = ""

msg = "2.4.4测试版已经上传,敬请下载测试!"

sendmail(subject,msg,toaddrs,fromaddr,smtpaddr,password)

还有一个问题就是,因为我在打包的时候基本是两种状态的.ipa ,我现在是用粉蓝色语句判断的,感觉好傻,但是这里面又不能用预编译!怎么搞比较好!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值