问题描述
我有一个bash脚本,a.sh,并在其中我有一个叫python脚本b.py。
Python脚本计算的东西,我希望它返回将在后面a.sh中使用的值。
我知道我可以做
I have a bash script, a.sh , and in it I have call a python script b.py .The python script calculates something, and I want it to return a value that will be used later in a.sh .I know I can do
在a.sh:
var=`python b.py`
在b.py:
print x # when x is the value I want to pass
但是,这是不太方便,因为我也是在b.py打印其他消息
But this is not so convenient, because I also print other messages in b.py
有没有更好的办法呢?
编辑:
我现在正在做的就是
var=`python b.py | tail -n 1`
这意味着我可以打印内部b.py很多事情,但只有最后一行(最后的打印命令,假设它不包含在里面\\ n)将被保存在var中。
It means I can print many things inside b.py, but only the last line (the last print command, assuming it doesn't contain "\n" in it) will be stored in var.
感谢所有的答案!
推荐答案
我会把它打印到选择的命令行上的一个文件,然后我会得到与像猫。
I would print it to a file chosen on the command line then I'd get that value in bash with something like cat
.
所以,你会去:
python b.py tempfile.txt
var=`cat tempfile.txt`
rm tempfile.txt
您的其他选择是仔细格式化输出,所以你可以使用bash的功能,如头
/ 尾
来管只有第一个/最后一个行到下一个程序。
Your other option is to format your output carefully so you can use bash functions like head
/tail
to pipe only the first/last lines into your next program.
这篇关于如何通过从Python脚本的bash脚本变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!