如何填写文件中的变量?
在/root/file
我有4行(数字和文字)
478
144
text
0
如何设置四个变量的值,即文件每行的一个值?
期望的结果:
ABC="478"
DEF="144"
GHI="text"
JKL="0"
答案 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
将从文件的开头读取,导致文件的第一行被分配四次。