linux一次性给多个变量赋值

2020-01-08  本文已影响0人  AibWang

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并不能实现,原因是管道线实际上是一个子进程,而子进程的变量无法传回父进程

上一篇 下一篇

猜你喜欢

热点阅读