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中.
感谢所有的答案!
我会将它打印到命令行中选择的文件,然后我会在bash中使用类似的东西获得该值cat.
所以你去:
python b.py tempfile.txt
var=`cat tempfile.txt`
rm tempfile.txt
Run Code Online (Sandbox Code Playgroud)
[编辑,基于其他答案的另一个想法]
您的另一个选择是仔细格式化您的输出,以便您可以使用head/或bash函数tail将第一行/最后一行只管理到下一个程序中.