如何从文件读取并将其内容转换为bash中的多个变量

时间:2019-02-26 13:28:49

标签: bash file loops variables

我有一个具有以下格式的文件:
1个
2 b
3 c
 我想遍历它,将第二个参数转换为变量,并为每行将第一个参数存储在该变量中。  因此,在这种情况下,创建变量'a'并在其中存储1,创建b并在其中存储2,依此类推。有一个简单的方法吗?

2 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

while read line ; do
 Var=$(echo $line |awk '{print $2}')
 Value=$(echo $line |awk '{print $1}')
 export $Var=$Value
done < file

echo $a
echo $b
echo $c

哪个会产生:

> ./script.sh
1
2
3

答案 1 :(得分:0)

使用名称引用执行间接分配。

while read -r value name; do
    declare -n var=name
     var=$value
done
declare +n var  # optional; makes var stop being a nameref

bash 4.3之前,您可以更普遍地使用declare(但更脆弱)。

while read -r value name; do
    declare "$name=$var"
done < file