我有一个 Python 脚本,它输出两个数字,如下所示:(1.0 2.0
这是数字之间的空格,但它可以是\t
,或其他。我想要一个 bash 变量来保存1.0
,另一个变量来保存2.0
。这可能吗?
过去,我只将一个值“传送”到一个变量中,如下所示:
var=`python file.py` ;
但现在,我有兴趣从 python 文件中保存两个值。从概念上讲,类似于:
var1,var2=`python file.py` ;
有什么建议/帮助吗?
谢谢!
你可以使用这样的东西:
read var1 var2 < <(python file.py)
时髦的<( )
语法称为进程替换。
我用于分割字段的单线是
... | awk '{print $1}' | ... # or $2, $3, etc.
所以你可以做
var = `foo`
var1 = `echo "$var" | awk '{print $1}'`
var2 = `echo "$var" | awk '{print $2}'`
编辑:在 $var 周围添加引号
我想这里最有效和最优雅的事情是用来readarray
将值读入数组。当然,前提是您可以使用数组。你应该是,但你永远不知道。不过,这将要求分隔符是换行符。无论如何:
readarray -t values < <(python file.py)
将为您提供一个包含一个元素的数组,该数组由python file.py
删除尾随换行符的每一行输出。查看man bash
这个非常酷的内置的其他选项。