Bash 如何从文件中填充变量?
如何从文件中填充变量 在Bash 如何从文件中填充变量?,bash,Bash,如何从文件中填充变量 在/root/file中,我有4行(数字和文本) 如何设置四个变量的值,文件每行一个值 预期结果: ABC="478" DEF="144" GHI="text" JKL="0" 假设文件名为file.txt。只需使用复合命令将每一行读入所需的变量,一次读入一行即可 { IFS= read -r ABC; IFS= read -r DEF; IFS= read -r GHI; IFS= read -r JKL; } < file.txt 我们使用复合命令{…}在所
/root/file
中,我有4行(数字和文本)
如何设置四个变量的值,文件每行一个值
预期结果:
ABC="478"
DEF="144"
GHI="text"
JKL="0"
假设文件名为
file.txt
。只需使用复合命令将每一行读入所需的变量,一次读入一行即可
{ IFS= read -r ABC; IFS= read -r DEF; IFS= read -r GHI; IFS= read -r JKL; } < file.txt
我们使用复合命令
{…}
在所有读取中共享file.txt
的输入;如果没有它,使用类似
read ABC < file.txt
read DEF < file.txt
read GHI < file.txt
read JKL < file.txt
读取ABC
每次
读取
都会从文件开始读取,导致文件的第一行被分配四次。ABC、DEF
等从何而来?!文件中的行数是固定的吗?如果行数是静态的,您可以像这样使用awk:ABC=$(awk'NR==1'/root/file)
wow这很酷。它能工作,但我不明白read做什么。thnxread
只需从其标准输入中读取一行,并将其分配给由其参数命名的变量。在本例中,我们将四个read
s包装在一个复合命令中,以便它们共享来自文件的单个输入流;第一个read
看到第一行,第二个read
看到第二行,以此类推。
{ read ABC; read DEF; read GHI; read JKL; } < file.txt
read ABC < file.txt
read DEF < file.txt
read GHI < file.txt
read JKL < file.txt