我在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脚本,什么都不会回显。
但是,我注意到,当我将“返回a+b”的python代码改为"print(a+b)“时,在运行shell脚本时会得到"3”的回显值。
3因此,我的问题是,如果要在终端中执行python脚本,它是否总是必须打印输出,而不是使用返回关键字?
发布于 2021-01-22 03:31:05
是。除了Python的stdout之外,Bash没有(简单)与Python通信的方法,所以如果您想要bash知道输出是什么,就必须始终打印输出。
发布于 2021-01-22 03:32:11
是。
您需要print(...) (写到标准输出)来捕获变量中脚本的输出。
除此之外,您还可以在脚本成功运行时调用sys.exit(0),或者在脚本失败时调用sys.exit(1)。这符合common UNIX CLI patterns。
https://stackoverflow.com/questions/65838901
复制相似问题