如何将变量从python脚本传递给bash脚本

Riv*_*vka 11 python variables bash

我有一个bash脚本,a.sh,在其中我调用了一个python脚本b.py. python脚本计算一些东西,我希望它返回一个稍后将在a.sh中使用的值.我知道我能做到

在a.sh中:

var=`python b.py`
Run Code Online (Sandbox Code Playgroud)

在b.py中:

print x # when x is the value I want to pass
Run Code Online (Sandbox Code Playgroud)

但这不太方便,因为我还在b.py中打印其他消息

有没有更好的方法呢?

编辑:

我现在正在做的只是

var=`python b.py | tail -n 1`
Run Code Online (Sandbox Code Playgroud)

这意味着我可以在b.py中打印很多东西,但只有最后一行(最后一个打印命令,假设它中不包含"\n")将存储在var中.

感谢所有的答案!

Cri*_*ole 8

我会将它打印到命令行中选择的文件,然后我会在bash中使用类似的东西获得该值cat.

所以你去:

python b.py tempfile.txt
var=`cat tempfile.txt`
rm tempfile.txt
Run Code Online (Sandbox Code Playgroud)

[编辑,基于其他答案的另一个想法]

您的另一个选择是仔细格式化您的输出,以便您可以使用head/或bash函数tail将第一行/最后一行只管理到下一个程序中.