如何从文件中填充变量?

时间:2015-05-07 12:42:52

标签: bash

如何填写文件中的变量?

/root/file我有4行(数字和文字)

478
144
text
0

如何设置四个变量的值,即文件每行的一个值?

期望的结果:

ABC="478"
DEF="144"
GHI="text"
JKL="0"

1 个答案:

答案 0 :(得分:4)

假设文件名为file.txt。只需使用复合命令将每一行读入所需变量,一次一个。

{ IFS= read -r ABC; IFS= read -r DEF; IFS= read -r GHI; IFS= read -r JKL; } < file.txt

如果你知道file.txt是“简单的”,也就是说,你不关心行上的空格或尾随空格或反斜杠转义的续行,你可以放弃IFS=-r混乱,只需使用

{ read ABC; read DEF; read GHI; read JKL; } < file.txt

我们使用复合命令{ ... }在所有读取中共享来自file.txt的输入;没有它,使用像

这样的东西
read ABC < file.txt
read DEF < file.txt
read GHI < file.txt
read JKL < file.txt

每个read将从文件的开头读取,导致文件的第一行被分配四次。