问题描述
所以我写了一个 python 脚本 login_email.py 用“imaplib”和“email”模块阅读电子邮件。
import sys
import imaplib
import email
def login(user,pwd):
mail = imaplib.IMAP4_SSL('imap.gmail.com')
try:
mail.login(user,pwd)
except imaplib.IMAP4.error:
sys.exit(1)
if __name__ == "__main__":
mail_usr = "tester@gmail.com"
mail_pwd = sys.argv[1] #password will be provided as an argument in the bash
login(mail_usr,mail_pwd)
我想模拟一个失败的登录过程,所以如果登录失败,sys.exit(1) 将被触发。 在我的 bash 脚本中:
function catch() {
echo "Error"
}
trap 'catch $? $LINENO $BASH_COMMAND' ERR
set -e
password="12345"
python login_email.py $password
echo $?
但是,当我运行脚本时,我得到没有输出,正如我所期望的那样 $?为 1,因为我在 python 脚本中定义了 sys.exit(1)。出了什么问题?
编辑 我刚刚发现,我用来在出现任何脚本错误时中止脚本的“set -e”导致“$?”不可回声。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)