bash逐行读取变量

如题,从变量中逐行读取的方法

该方法由于使用了管道,在循环内给变量的赋值无法传输到外部。

a=123
echo "$result" | while read line
do
    echo $line
    echo "xxxxxxxxxxx"
    a=456      # 赋值无效
done

下面的方法功能相同,但是可以对外面的变量赋值。

a=123
while read line
do 
    echo "LINE: '${line}'"
    a=456     # 赋值有效
done <<< "$x"

 

第三个方法: 设置变量IFS

#! /bin/bash

lines=`cat 1`

IFS='\n'
for i in $lines
do
        echo $i
done

 

posted on 2021-03-19 18:07  toong  阅读(122)  评论(0编辑  收藏  举报