将python脚本的输出返回到bash变量[重复]
Posted
技术标签:
【中文标题】将python脚本的输出返回到bash变量[重复]【英文标题】:Returning output from python script to bash variable [duplicate] 【发布时间】:2021-01-22 03:26:45 【问题描述】:我在 shell 脚本方面相对较新,我想对以下内容进行一些澄清。
如果我有一个执行以下操作的 python 脚本:
def return_output():
a = 1
b = 2
return a+b
if __name__ == "__main__":
return_output()
说我想在 bash 中运行这个脚本,我想通过一个变量在 bash 中检索输出值:
summation=$(python total.py)
echo $summation
如果我运行以下 shell 脚本,则不会有任何响应。
但是,我注意到当我将“return a+b”的python代码更改为“print(a+b) " 相反,当我运行 shell 脚本时,我会得到 "3" 的回显值。
3
因此我的问题是,如果要在终端中执行 python 脚本,是否总是需要 print 输出而不是使用 return 关键字?
【问题讨论】:
【参考方案1】:是的。除了 Python 的 stdout
之外,Bash 没有(简单的)与 Python 通信的方式,因此如果您希望 bash 知道该输出是什么,则始终必须打印输出。
【讨论】:
【参考方案2】:是的。
您需要print(...)
(写入标准输出)以在变量中捕获脚本的输出。
除此之外,您还可以在脚本成功运行时调用sys.exit(0)
,或者在脚本失败时调用sys.exit(1)
。这符合common UNIX CLI patterns。
【讨论】:
以上是关于将python脚本的输出返回到bash变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章