&引用;管道;将值转换为Bash变量
我有一个Python脚本,它输出两个类似的数字:&引用;管道;将值转换为Bash变量,bash,variables,piping,Bash,Variables,Piping,我有一个Python脚本,它输出两个类似的数字:1.0 2.0(这是两个数字之间的一个空格,但它可以是\t,或者其他任何形式。我需要一个bash变量来保存1.0,另一个变量来保存2.0。这可能吗 过去,我只将一个值“管道化”到变量中,如下所示: var=`python file.py` ; 但是现在,我想从python文件中保存两个值 var1,var2=`python file.py` ; 有什么建议/帮助吗 谢谢!您可以使用以下内容: read var1 var2 < <(
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)
read var1 var2<我用于拆分字段的一个线性行是
... | 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<这比下面我的awk废话好多了。@Mat:效果非常好。谢谢!