首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将python脚本的输出返回到bash变量

将python脚本的输出返回到bash变量
EN

Stack Overflow用户
提问于 2021-01-22 03:26:45
回答 2查看 1.8K关注 0票数 0

我在shell脚本方面相对较新,我想对下面的内容做一些澄清。

如果我有一个python脚本,它可以执行以下操作:

代码语言:javascript
复制
def return_output():
    a = 1
    b = 2
    return a+b

if __name__ == "__main__":
    return_output()

并且假设我想在bash中运行这个脚本,其中我希望通过一个变量检索bash中的输出值:

代码语言:javascript
复制
summation=$(python total.py)
echo $summation

如果我运行下面的shell脚本,什么都不会回显。

但是,我注意到,当我将“返回a+b”的python代码改为"print(a+b)“时,在运行shell脚本时会得到"3”的回显值。

代码语言:javascript
复制
3

因此,我的问题是,如果要在终端中执行python脚本,它是否总是必须打印输出,而不是使用返回关键字?

EN

回答 2

Stack Overflow用户

发布于 2021-01-22 03:31:05

是。除了Python的stdout之外,Bash没有(简单)与Python通信的方法,所以如果您想要bash知道输出是什么,就必须始终打印输出。

票数 1
EN

Stack Overflow用户

发布于 2021-01-22 03:32:11

是。

您需要print(...) (写到标准输出)来捕获变量中脚本的输出。

除此之外,您还可以在脚本成功运行时调用sys.exit(0),或者在脚本失败时调用sys.exit(1)。这符合common UNIX CLI patterns

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

https://stackoverflow.com/questions/65838901

复制
相关文章

相似问题

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