美文网首页
linux一次性给多个变量赋值

linux一次性给多个变量赋值

作者: AibWang | 来源:发表于2020-01-08 17:12 被阅读0次

1. 通过read和字符串输入重定向here string<<<实现

给一个文本文件input.txt,如下:

LYS    PG 2008 06 01 00 01 34.200
LYS    SG 2008 06 01 00 01 36.800
BAY    PG 2008 06 01 00 01 34.800

现在需要逐行抽取每一行的前两个字段(以空格为分隔符)并赋值给两个变量,后续进行两个变量相关的commands,当然可以使用awk一个变量一个变量的实现,同时也可以通过同时多个变量赋值的形式实现。
直接上例子:

for line in `cat  input.txt`
do
    str1=`echo $line | awk '{print $1,$2}'`
    read var1 var2 <<< $str1
    # command 1
    # ...
done

NOTE: 通过管道线|read并不能实现,原因是管道线实际上是一个子进程,而子进程的变量无法传回父进程

  • 上述过程似乎绕了一个弯,但当要抽取的变量较多时,上述实现过程可以使得代码更简洁。

相关文章

网友评论

      本文标题:linux一次性给多个变量赋值

      本文链接:https://www.haomeiwen.com/subject/alpsactx.html