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