Bash 从一个awk命令设置多个变量?

Bash 从一个awk命令设置多个变量?,bash,awk,Bash,Awk,这是一个非常常见的脚本: #!/bin/bash teststr="col1 col2" var1=`echo ${teststr} | awk '{print $1}'` var2=`echo ${teststr} | awk '{print $2}'` echo var1=${var1} echo var2=${var2} 但是我不喜欢这样,尤其是当有更多的字段需要解析时。 我想应该有更好的方法,比如: (var1,var2)=`echo${teststr}awk'{print$1$

这是一个非常常见的脚本:

#!/bin/bash

teststr="col1 col2"

var1=`echo ${teststr} | awk '{print $1}'`
var2=`echo ${teststr} | awk '{print $2}'`

echo var1=${var1}
echo var2=${var2}
但是我不喜欢这样,尤其是当有更多的字段需要解析时。 我想应该有更好的方法,比如:

(var1,var2)=`echo${teststr}awk'{print$1$2}' (在我的想象中)

是这样吗?
感谢您提供帮助,以提高效率并节省一些CPU电源。

这可能适合您:

var=(col0 col1 col2)
echo "${var[1]}"
col1

Bash支持数组,我们只需要动态提供值:)


Bash数组文档:

您还可以使用shell
set
内置来将空格分隔(或者更准确地说,如果是
IFS
separated)放入变量
$1
$2
,依此类推:

#!/bin/bash

teststr="col1 col2"
set -- $teststr
echo "$1" # col1
echo "$2" # col2

谢谢你提醒我参加舞会。这就是解决办法。你也可以这样写:var=(
echo${blablabla}awk-F“{print$1”“$3}”
)。。。
#!/bin/bash

teststr="col1 col2"
set -- $teststr
echo "$1" # col1
echo "$2" # col2