美文网首页
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