首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么对于退出1的Python函数,bash回显输出0

为什么对于退出1的Python函数,bash回显输出0
EN

Stack Overflow用户
提问于 2018-06-14 04:14:33
回答 2查看 67关注 0票数 3

testreturn.py中的Python函数定义为:

代码语言:javascript
复制
import sys
def main():
    sys.exit(1)

当从scrip.sh中的bash函数调用时,定义如下:

代码语言:javascript
复制
#!/bin/bash
function test()
{  
   python testreturn.py
   echo $?
}

为什么执行以下命令:

test

打印

0

我希望bash函数打印python脚本的退出代码。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-14 04:18:23

因为默认情况下python不会调用main。您必须显式地调用它。

您需要:

代码语言:javascript
复制
import sys
def main():
    sys.exit(1)

if __name__ == "__main__":
    main()
票数 4
EN

Stack Overflow用户

发布于 2018-06-14 04:17:03

因为您正在定义,但从未调用过main()函数。代码正常结束(到达文件末尾),在本例中返回代码为0。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50845531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档